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