""" 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="Iver", 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()