File size: 1,975 Bytes
b34efa5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5ffe81a
b34efa5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
"""
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()