rwayz commited on
Commit
495c331
·
verified ·
1 Parent(s): 860e61b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -27
app.py CHANGED
@@ -56,43 +56,39 @@ sql_agent = create_sql_agent(llm, db=db, agent_type="openai-tools", verbose=True
56
 
57
  def generate_initial_context(db_sample):
58
  return (
59
- f"Você é um assistente que gera queries SQL objetivas e eficientes. Sempre inclua `LIMIT 20` nas queries. Aqui está o banco de dados:\n\n"
 
60
  f"Exemplos de valores:\n{db_sample.head().to_string(index=False)}\n\n"
61
 
62
  "**📌 Estrutura do Banco de Dados:**\n"
63
- "A base de dados contém informações sobre perguntas e respostas relacionadas à reforma tributária, bem como artigos e leis tributárias.\n\n"
64
 
65
  "**📍 Colunas e seus Significados:**\n"
66
- "- `instruction` → Pergunta do usuário\n"
67
- "- `response` → Resposta correspondente à pergunta\n"
68
- "- `text` → Explicação detalhada da resposta\n"
69
- "- `title` → Título da lei\n"
70
- "- `chapter` → Capítulo da lei\n"
71
- "- `section` → Seção da lei\n"
72
- "- `content` → Aritgo e texto completo da lei\n\n"
73
 
74
  "**📌 Importante:**\n"
75
- "- Nem todas as colunas estarão preenchidas em todos os registros. Por exemplo, leis não têm `instruction` ou `response`, enquanto perguntas não têm `title`, `chapter`, `section` ou `content`.\n"
76
- "- Ao buscar perguntas e respostas, utilize as colunas `instruction` e `response`.\n"
77
- "- Ao buscar informações sobre leis, use `title`, `chapter`, `section` e `content`.\n\n"
78
-
 
 
 
 
 
 
79
  "**📝 Exemplo de Queries SQL Bem Formadas:**\n"
80
- "1️⃣ **Buscar uma pergunta e resposta específica:**\n"
81
- "```sql\n"
82
- "SELECT response FROM perguntas_respostas WHERE instruction = 'Qual é o objetivo da reforma tributária?' LIMIT 20;\n"
83
- "```\n"
84
- "2️⃣ **Buscar um artigo de lei específico pelo seu conteúdo:**\n"
85
  "```sql\n"
86
- "SELECT content FROM perguntas_respostas WHERE content LIKE '%Art. 146%' LIMIT 20;\n"
 
 
87
  "```\n\n"
88
-
89
- "**🔎 Instruções para a Geração da Query SQL:**\n"
90
- "- Analise a pergunta do usuário e determine se a resposta deve vir de `instruction/response` (perguntas e respostas) ou `content` (leis e artigos).\n"
91
- "- Se a pergunta estiver relacionada a um artigo de lei, use `content` e busque por palavras-chave relevantes.\n"
92
- "- Pode realizar a busca por perguntas nos artigos de lei também caso seja conveniente.\n"
93
- "- Se a pergunta for aberta e não encontrar correspondência exata, use `LIKE` para busca aproximada.\n\n"
94
-
95
- "**🔄 Formato de Saída Esperado:**\n"
96
  "Pergunta: <pergunta do usuário>\n"
97
  "Opção de Query SQL:\n<query SQL>\n"
98
  "Idioma: Português"
 
56
 
57
  def generate_initial_context(db_sample):
58
  return (
59
+ f"Você é um assistente que gera queries SQL objetivas e eficientes. Sempre inclua `LIMIT 10` nas queries. Aqui está o banco de dados:\n\n"
60
+ f"Colunas: {', '.join(db_sample.columns)}\n"
61
  f"Exemplos de valores:\n{db_sample.head().to_string(index=False)}\n\n"
62
 
63
  "**📌 Estrutura do Banco de Dados:**\n"
64
+ "A base contém perguntas e respostas sobre a reforma tributária, bem como o texto completo de leis, artigos, capítulos e seções.\n\n"
65
 
66
  "**📍 Colunas e seus Significados:**\n"
67
+ "- `instruction` → Pergunta feita por usuários\n"
68
+ "- `response` → Resposta à pergunta\n"
69
+ "- `text` → Explicação expandida da resposta\n"
70
+ "- `title` / `chapter` / `section` Estrutura das leis\n"
71
+ "- `content` → Texto completo dos artigos de lei\n\n"
 
 
72
 
73
  "**📌 Importante:**\n"
74
+ "- Nem todos os registros têm todas as colunas preenchidas. Perguntas não têm `content`; leis não têm `instruction`.\n"
75
+ "- Respostas para uma mesma pergunta podem existir tanto nas respostas diretas (`response`) quanto nos textos legais (`content`).\n"
76
+ "- Sempre que possível, procure **também** nos textos legais (`content`) e nas explicações (`text`), mesmo se a pergunta parecer simples ou direta.\n"
77
+
78
+ "**📝 Estratégia de Consulta:**\n"
79
+ "- Use `LIKE '%<palavras-chave>%'` para buscas por similaridade nas colunas `instruction`, `text` e `content`.\n"
80
+ "- Dê preferência à coluna `instruction` + `response` para perguntas diretas, mas não deixe de verificar se `text` ou `content` também contém respostas relevantes.\n"
81
+ "- Quando a pergunta for ampla, use múltiplas colunas na cláusula WHERE (ex: `instruction`, `text`, `content`).\n"
82
+ "- Sempre inclua `LIMIT 20` ao final da query.\n"
83
+
84
  "**📝 Exemplo de Queries SQL Bem Formadas:**\n"
 
 
 
 
 
85
  "```sql\n"
86
+ "SELECT response FROM perguntas_respostas WHERE instruction LIKE '%objetivos da reforma%' LIMIT 20;\n"
87
+ "SELECT content FROM perguntas_respostas WHERE content LIKE '%Art. 145%' LIMIT 20;\n"
88
+ "SELECT text FROM perguntas_respostas WHERE text LIKE '%transparência%' OR content LIKE '%transparência%' LIMIT 20;\n"
89
  "```\n\n"
90
+
91
+ "**📌 Formato de saída desejado:**\n"
 
 
 
 
 
 
92
  "Pergunta: <pergunta do usuário>\n"
93
  "Opção de Query SQL:\n<query SQL>\n"
94
  "Idioma: Português"