| """ |
| 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. |
| """ |
| |
| 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() |
| |
| |
| api_key = os.environ.get("HF_API_KEY", "") |
| api_client = HuggingFaceAPI(api_key=api_key) |
| |
| |
| document_processor = DocumentProcessor(api_client=api_client) |
| retriever = Retriever(api_client=api_client) |
| generator = Generator(api_client=api_client) |
| |
| |
| 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." |
| ) |
| |
| |
| embed_generator = EmbedGenerator() |
| create_embed_html_file(embed_generator) |
| |
| |
| app.launch( |
| server_name=args.host, |
| server_port=args.port, |
| share=args.share, |
| debug=args.debug |
| ) |
|
|
| if __name__ == "__main__": |
| main() |
|
|