iver / src /main.py
hevold's picture
Update src/main.py
5ffe81a verified
"""
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()