Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -72,7 +72,8 @@ def answer_question(question, knowledge_state):
|
|
72 |
# Etapa de Recuperação (sem alterações)
|
73 |
question_embedding = retriever_model.encode(question, convert_to_tensor=True)
|
74 |
cosine_scores = util.cos_sim(question_embedding, knowledge_base_embeddings)
|
75 |
-
|
|
|
76 |
top_results = torch.topk(cosine_scores, k=top_k, dim=-1)
|
77 |
retrieved_context = "\n---\n".join([knowledge_base[i] for i in top_results.indices[0]])
|
78 |
|
@@ -84,9 +85,13 @@ def answer_question(question, knowledge_state):
|
|
84 |
print(f"Pergunta: {question}")
|
85 |
print(f"Contexto Recuperado (Top {top_k}):\n{retrieved_context}")
|
86 |
|
87 |
-
# MUDANÇA PRINCIPAL: Prompt
|
88 |
prompt = f"""### Instruction:
|
89 |
-
|
|
|
|
|
|
|
|
|
90 |
|
91 |
**Contexto:**
|
92 |
{retrieved_context}
|
@@ -103,7 +108,8 @@ Use estritamente a informação fornecida no 'Contexto' para responder à 'Pergu
|
|
103 |
# Ajuste nos parâmetros de geração
|
104 |
outputs = generator_model.generate(
|
105 |
input_ids,
|
106 |
-
|
|
|
107 |
do_sample=False,
|
108 |
eos_token_id=generator_tokenizer.eos_token_id,
|
109 |
pad_token_id=generator_tokenizer.eos_token_id
|
@@ -120,7 +126,7 @@ with gr.Blocks(theme=gr.themes.Soft()) as interface:
|
|
120 |
knowledge_state = gr.State()
|
121 |
gr.Markdown(
|
122 |
"""
|
123 |
-
# 🤖 RAG - Auditor de Documentos (
|
124 |
**1. Carregue seus arquivos**: Envie um ou mais certificados ou documentos nos formatos `.pdf` ou `.txt`.
|
125 |
**2. Processe os arquivos**: Clique no botão para criar a base de conhecimento.
|
126 |
**3. Faça perguntas**: Após o processamento, faça perguntas sobre o conteúdo dos documentos.
|
|
|
72 |
# Etapa de Recuperação (sem alterações)
|
73 |
question_embedding = retriever_model.encode(question, convert_to_tensor=True)
|
74 |
cosine_scores = util.cos_sim(question_embedding, knowledge_base_embeddings)
|
75 |
+
# MUDANÇA: Aumentado para 7 para mais contexto
|
76 |
+
top_k = min(7, len(knowledge_base))
|
77 |
top_results = torch.topk(cosine_scores, k=top_k, dim=-1)
|
78 |
retrieved_context = "\n---\n".join([knowledge_base[i] for i in top_results.indices[0]])
|
79 |
|
|
|
85 |
print(f"Pergunta: {question}")
|
86 |
print(f"Contexto Recuperado (Top {top_k}):\n{retrieved_context}")
|
87 |
|
88 |
+
# MUDANÇA PRINCIPAL: Prompt mais inteligente para interpretar documentos técnicos
|
89 |
prompt = f"""### Instruction:
|
90 |
+
Você é um assistente de IA especialista em análise de documentos técnicos. Sua tarefa é analisar o 'Contexto' para responder à 'Pergunta'.
|
91 |
+
Regras importantes:
|
92 |
+
1. Use APENAS a informação do 'Contexto'. Não invente nada.
|
93 |
+
2. Não use cabeçalhos de tabelas ou definições de siglas (como 'VI' ou 'VRef') como respostas. Encontre os valores reais associados a eles no texto.
|
94 |
+
3. Responda de forma direta e concisa.
|
95 |
|
96 |
**Contexto:**
|
97 |
{retrieved_context}
|
|
|
108 |
# Ajuste nos parâmetros de geração
|
109 |
outputs = generator_model.generate(
|
110 |
input_ids,
|
111 |
+
# MUDANÇA: Aumentado para permitir respostas mais detalhadas
|
112 |
+
max_new_tokens=350,
|
113 |
do_sample=False,
|
114 |
eos_token_id=generator_tokenizer.eos_token_id,
|
115 |
pad_token_id=generator_tokenizer.eos_token_id
|
|
|
126 |
knowledge_state = gr.State()
|
127 |
gr.Markdown(
|
128 |
"""
|
129 |
+
# 🤖 RAG - Auditor de Documentos (v7 - Prompt Inteligente)
|
130 |
**1. Carregue seus arquivos**: Envie um ou mais certificados ou documentos nos formatos `.pdf` ou `.txt`.
|
131 |
**2. Processe os arquivos**: Clique no botão para criar a base de conhecimento.
|
132 |
**3. Faça perguntas**: Após o processamento, faça perguntas sobre o conteúdo dos documentos.
|