iver / src /main.py
hevold's picture
Upload 29 files
b34efa5 verified
raw
history blame
1.99 kB
"""
Main application entry point for Norwegian RAG chatbot.
"""
import os
import argparse
from typing import Dict, Any, Optional
from src.api.huggingface_api import HuggingFaceAPI
from src.document_processing.processor import DocumentProcessor
from src.rag.retriever import Retriever
from src.rag.generator import Generator
from src.web.app import ChatbotApp
from src.web.embed import EmbedGenerator, create_embed_html_file
def main():
"""
Main entry point for the Norwegian RAG chatbot application.
"""
# Parse command line arguments
parser = argparse.ArgumentParser(description="Norwegian RAG Chatbot")
parser.add_argument("--host", type=str, default="0.0.0.0", help="Host to run the server on")
parser.add_argument("--port", type=int, default=7860, help="Port to run the server on")
parser.add_argument("--share", action="store_true", help="Create a public link for sharing")
parser.add_argument("--debug", action="store_true", help="Enable debug mode")
args = parser.parse_args()
# Initialize API client
api_key = os.environ.get("HF_API_KEY", "")
api_client = HuggingFaceAPI(api_key=api_key)
# Initialize components
document_processor = DocumentProcessor(api_client=api_client)
retriever = Retriever(api_client=api_client)
generator = Generator(api_client=api_client)
# Create app
app = ChatbotApp(
api_client=api_client,
document_processor=document_processor,
retriever=retriever,
generator=generator,
title="Norwegian RAG Chatbot",
description="En chatbot basert på Retrieval-Augmented Generation (RAG) for norsk språk."
)
# Create embedding example
embed_generator = EmbedGenerator()
create_embed_html_file(embed_generator)
# Launch app
app.launch(
server_name=args.host,
server_port=args.port,
share=args.share,
debug=args.debug
)
if __name__ == "__main__":
main()