DHEIVER commited on
Commit
ebafa8f
·
verified ·
1 Parent(s): 0c1a656

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -14
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
- messages = [{"role": "system", "content": system_message},
102
- {"role": "user", "content": rag_prompt}]
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
- for message_chunk in client.chat_completion(
112
- messages,
113
- max_tokens=max_tokens,
114
- stream=True,
115
- temperature=temperature,
116
- top_p=top_p,
117
- ):
118
- token = message_chunk.choices[0].delta.content
119
- response += token
120
- yield response, context, ""
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)