robyramos's picture
Update app.py
e9870c2 verified
import gradio as gr
import openai
import pandas as pd
import os
# Substitua pela sua chave de API da OpenAI
#OPENAI_API_KEY = os.getenv('token')
openai.api_key = os.getenv("OPENAI_API_KEY")
def categorizar_transacoes(transacoes):
print("=== NOVA REQUISIÇÃO RECEBIDA ===")
print(transacoes)
categorias = {
"Alimentação": [],
"Transporte": [],
"Lazer": [],
"Compras": [],
"Assinaturas": [],
"Outros": []
}
for transacao in transacoes:
descricao = transacao.get("descricao", "")
valor = float(transacao.get("valor", 0))
prompt = f"Classifique a seguinte descrição de transação financeira em uma das categorias: Alimentação, Transporte, Lazer, Compras, Assinaturas ou Outros. Pesquise pela descrição da transação na internet no que se refere a transação. \nDescrição: {descricao}\nCategoria:"
try:
response = openai.Completion.create(
engine="gpt-3.5-turbo-instruct",
prompt=prompt,
max_tokens=10,
temperature=0
)
categoria = response.choices[0].text.strip()
if categoria not in categorias:
categoria = "Outros"
except Exception as e:
print(f"Erro ao classificar transação : {e}")
categoria = "Outros"
categorias[categoria].append({
"descricao": descricao,
"valor": valor
})
print("Categorias finais :", categorias) # <<< imprime o resultado final categorizado
return categorias
iface = gr.Interface(fn=categorizar_transacoes, inputs="json", outputs="json", api_name="categorizar_transacoes")
if __name__ == "__main__":
iface.launch(mcp_server=True)