File size: 1,793 Bytes
780d158
 
 
3c91bb3
780d158
3c91bb3
7d20554
 
780d158
 
8942343
 
 
780d158
 
 
 
 
 
 
 
 
 
 
 
 
e9870c2
780d158
 
 
29814fd
780d158
 
 
 
 
 
 
 
38580c7
780d158
 
 
 
 
 
851a388
780d158
 
 
c34e0d9
fbf7093
 
221f868
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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)