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)