Spaces:
Running
Running
File size: 1,490 Bytes
9f75075 edd4e93 9f75075 edd4e93 56d99ec edd4e93 0bcd21d edd4e93 56d99ec 64e1651 edd4e93 |
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 |
import os
from typing import Dict, List
import gradio as gr
from src.rag_pipeline.rag_system import RAGSystem
os.environ["TOKENIZERS_PARALLELISM"]="true"
class ChatInterface:
def __init__(self, rag_system: RAGSystem):
self.rag_system = rag_system
self.chat_history: List[Dict] = []
def respond(self, message: str, history: List[List[str]]):
result = ""
for text in self.rag_system.query(message, history):
result += text
yield result
return result
def create_interface(self):
chat_interface = gr.ChatInterface(
fn=self.respond,
type="messages",
title="Medivocate",
description="Medivocate est une application qui offre des informations claires et structurées sur l'histoire de l'Afrique et sa médecine traditionnelle, en s'appuyant exclusivement sur un contexte issu de documentaires sur l'histoire du continent africain.",
# retry_btn=None,
# undo_btn=None,
# clear_btn="Clear",
# chatbot=gr.Chatbot(show_copy_button=True),
)
return chat_interface
def launch(self, share=False):
interface = self.create_interface()
interface.launch(share=share)
# Usage example:
if __name__ == "__main__":
rag_system = RAGSystem(top_k_documents=12)
rag_system.initialize_vector_store()
chat_interface = ChatInterface(rag_system)
chat_interface.launch(share=False)
|