|
""" |
|
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() |
|
|