rwayz commited on
Commit
16e8eb3
·
1 Parent(s): 20b5908

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +9 -10
app.py CHANGED
@@ -31,7 +31,7 @@ LLAMA_MODELS = {
31
 
32
  MAX_TOKENS_MAP = {
33
  "meta-llama/Llama-3.3-70B-Instruct": 900,
34
- "meta-llama/Llama-3.1-8B-Instruct": 600,
35
  "Qwen/QwQ-32B": 8192
36
  }
37
 
@@ -64,16 +64,13 @@ def create_engine_and_load_db(csv_path, sql_db_path):
64
  df = pd.read_csv(csv_path, sep=";", on_bad_lines="skip")
65
  df.to_sql("tabela", engine, index=False, if_exists="replace")
66
  logging.info(f"[ENGINE] Banco criado com sucesso com {len(df)} linhas e {len(df.columns)} colunas")
 
67
  return engine
68
 
69
  def handle_csv_upload(file):
70
  global engine, db, sql_agent
71
 
72
  try:
73
- if file is None or not hasattr(file, "name"):
74
- logging.warning("[UPLOAD] Nenhum arquivo CSV foi carregado.")
75
- return
76
-
77
  file_path = file.name
78
  shutil.copy(file_path, UPLOADED_CSV_PATH)
79
  logging.info(f"[UPLOAD] CSV salvo como: {UPLOADED_CSV_PATH}")
@@ -104,13 +101,15 @@ def handle_csv_upload(file):
104
 
105
  def reset_app():
106
  global engine, db, sql_agent, query_cache, history_log, recent_history
 
107
  try:
108
  if os.path.exists(UPLOADED_CSV_PATH):
109
  os.remove(UPLOADED_CSV_PATH)
110
  logging.info("[RESET] CSV personalizado removido.")
 
111
  engine = create_engine_and_load_db(DEFAULT_CSV_PATH, SQL_DB_PATH)
112
  db = SQLDatabase(engine=engine)
113
- sql_agent = create_sql_agent(ChatOpenAI(model="gpt-4o-mini", temperature=0), db=db, agent_type="openai-tools")
114
  query_cache.clear()
115
  history_log.clear()
116
  recent_history.clear()
@@ -130,8 +129,8 @@ def generate_initial_context(db_sample):
130
  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"
131
  f"Exemplos do banco de dados:\n{db_sample.head().to_string(index=False)}\n\n"
132
  "\n***IMPORTANTE***: Detecte automaticamente o idioma da pergunta do usuário e responda sempre no mesmo idioma.\n"
133
- "Essa base de dados representa o sellout de 2025, janeiro, fevereiro e março até dia 11, de uma farmácia.\n"
134
- "Cada linha representa a venda de um SKU em uma determinada data.\n"
135
  "\nRetorne apenas a pergunta e a query SQL mais eficiente para entregar ao agent SQL do LangChain para gerar uma resposta. O formato deve ser:\n"
136
  "\nPergunta: <pergunta do usuário>\n"
137
  "\nOpção de Query SQL:\n<query SQL>"
@@ -232,11 +231,11 @@ def toggle_history():
232
  with gr.Blocks(theme=gr.themes.Soft()) as demo:
233
  with gr.Row():
234
  with gr.Column(scale=1):
235
- gr.Markdown("## ⚙️ Configurações")
236
  model_selector = gr.Dropdown(list(LLAMA_MODELS.keys()), value="LLaMA 70B", label="")
237
  csv_file = gr.File(file_types=[".csv"], label="")
238
  upload_feedback = gr.Markdown()
239
- reset_btn = gr.Button("🔄 Resetar")
240
 
241
  with gr.Column(scale=4):
242
  gr.Markdown("## Reasoning Agent")
 
31
 
32
  MAX_TOKENS_MAP = {
33
  "meta-llama/Llama-3.3-70B-Instruct": 900,
34
+ "meta-llama/Llama-3.1-8B-Instruct": 700,
35
  "Qwen/QwQ-32B": 8192
36
  }
37
 
 
64
  df = pd.read_csv(csv_path, sep=";", on_bad_lines="skip")
65
  df.to_sql("tabela", engine, index=False, if_exists="replace")
66
  logging.info(f"[ENGINE] Banco criado com sucesso com {len(df)} linhas e {len(df.columns)} colunas")
67
+
68
  return engine
69
 
70
  def handle_csv_upload(file):
71
  global engine, db, sql_agent
72
 
73
  try:
 
 
 
 
74
  file_path = file.name
75
  shutil.copy(file_path, UPLOADED_CSV_PATH)
76
  logging.info(f"[UPLOAD] CSV salvo como: {UPLOADED_CSV_PATH}")
 
101
 
102
  def reset_app():
103
  global engine, db, sql_agent, query_cache, history_log, recent_history
104
+
105
  try:
106
  if os.path.exists(UPLOADED_CSV_PATH):
107
  os.remove(UPLOADED_CSV_PATH)
108
  logging.info("[RESET] CSV personalizado removido.")
109
+
110
  engine = create_engine_and_load_db(DEFAULT_CSV_PATH, SQL_DB_PATH)
111
  db = SQLDatabase(engine=engine)
112
+ sql_agent = create_sql_agent(ChatOpenAI(model="gpt-4o-mini", temperature=0), db=db, agent_type="openai-tools", verbose=True, max_iterations=40, return_intermediate_steps=True)
113
  query_cache.clear()
114
  history_log.clear()
115
  recent_history.clear()
 
129
  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"
130
  f"Exemplos do banco de dados:\n{db_sample.head().to_string(index=False)}\n\n"
131
  "\n***IMPORTANTE***: Detecte automaticamente o idioma da pergunta do usuário e responda sempre no mesmo idioma.\n"
132
+ #"Essa base de dados representa o sellout de 2025, janeiro, fevereiro e março até dia 11, de uma farmácia.\n"
133
+ #"Cada linha representa a venda de um SKU em uma determinada data.\n"
134
  "\nRetorne apenas a pergunta e a query SQL mais eficiente para entregar ao agent SQL do LangChain para gerar uma resposta. O formato deve ser:\n"
135
  "\nPergunta: <pergunta do usuário>\n"
136
  "\nOpção de Query SQL:\n<query SQL>"
 
231
  with gr.Blocks(theme=gr.themes.Soft()) as demo:
232
  with gr.Row():
233
  with gr.Column(scale=1):
234
+ gr.Markdown("## Configurações")
235
  model_selector = gr.Dropdown(list(LLAMA_MODELS.keys()), value="LLaMA 70B", label="")
236
  csv_file = gr.File(file_types=[".csv"], label="")
237
  upload_feedback = gr.Markdown()
238
+ reset_btn = gr.Button("Resetar")
239
 
240
  with gr.Column(scale=4):
241
  gr.Markdown("## Reasoning Agent")