Update app.py
Browse files
app.py
CHANGED
@@ -76,7 +76,6 @@ class AdvancedPDFKnowledgeBase:
|
|
76 |
# Inicializa a base de conhecimento
|
77 |
knowledge_base = AdvancedPDFKnowledgeBase()
|
78 |
|
79 |
-
# Função principal de resposta
|
80 |
def respond(
|
81 |
message: str,
|
82 |
history: List[Tuple[str, str]],
|
@@ -93,32 +92,41 @@ def respond(
|
|
93 |
|
94 |
context = knowledge_base.get_relevant_context(message, k_initial, k_final)
|
95 |
|
|
|
96 |
rag_prompt = f"""Você é Grok 3, criado por xAI. Use o contexto dos documentos para responder:
|
97 |
{context}
|
98 |
Pergunta: {message}
|
99 |
Responda com base no contexto quando relevante."""
|
100 |
|
101 |
-
|
102 |
-
|
103 |
|
|
|
104 |
for user_msg, assistant_msg in history:
|
105 |
if user_msg:
|
106 |
messages.append({"role": "user", "content": user_msg})
|
107 |
if assistant_msg:
|
108 |
messages.append({"role": "assistant", "content": assistant_msg})
|
|
|
|
|
|
|
109 |
|
110 |
response = ""
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
|
|
|
|
|
|
|
|
122 |
# Função para carregar PDFs
|
123 |
def load_pdfs(pdf_files: List[gr.File]):
|
124 |
status = knowledge_base.load_pdfs(pdf_files)
|
|
|
76 |
# Inicializa a base de conhecimento
|
77 |
knowledge_base = AdvancedPDFKnowledgeBase()
|
78 |
|
|
|
79 |
def respond(
|
80 |
message: str,
|
81 |
history: List[Tuple[str, str]],
|
|
|
92 |
|
93 |
context = knowledge_base.get_relevant_context(message, k_initial, k_final)
|
94 |
|
95 |
+
# Constrói o prompt RAG
|
96 |
rag_prompt = f"""Você é Grok 3, criado por xAI. Use o contexto dos documentos para responder:
|
97 |
{context}
|
98 |
Pergunta: {message}
|
99 |
Responda com base no contexto quando relevante."""
|
100 |
|
101 |
+
# Inicializa a lista de mensagens
|
102 |
+
messages = [{"role": "system", "content": system_message}]
|
103 |
|
104 |
+
# Adiciona mensagens do histórico
|
105 |
for user_msg, assistant_msg in history:
|
106 |
if user_msg:
|
107 |
messages.append({"role": "user", "content": user_msg})
|
108 |
if assistant_msg:
|
109 |
messages.append({"role": "assistant", "content": assistant_msg})
|
110 |
+
|
111 |
+
# Adiciona a nova mensagem do usuário
|
112 |
+
messages.append({"role": "user", "content": rag_prompt})
|
113 |
|
114 |
response = ""
|
115 |
+
try:
|
116 |
+
for message_chunk in client.chat_completion(
|
117 |
+
messages=messages,
|
118 |
+
max_tokens=max_tokens,
|
119 |
+
stream=True,
|
120 |
+
temperature=temperature,
|
121 |
+
top_p=top_p,
|
122 |
+
):
|
123 |
+
token = message_chunk.choices[0].delta.content
|
124 |
+
if token:
|
125 |
+
response += token
|
126 |
+
yield response, context, ""
|
127 |
+
except Exception as e:
|
128 |
+
yield f"Erro ao gerar resposta: {str(e)}", context, ""
|
129 |
+
|
130 |
# Função para carregar PDFs
|
131 |
def load_pdfs(pdf_files: List[gr.File]):
|
132 |
status = knowledge_base.load_pdfs(pdf_files)
|