File size: 1,330 Bytes
793fb4f
 
bcb075a
 
793fb4f
 
 
 
 
 
0f21016
bcb075a
793fb4f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
bcb075a
 
 
 
 
 
 
793fb4f
bcb075a
793fb4f
cbda7da
414e8f4
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
from fastapi import FastAPI, Request


from openai import OpenAI
import csv
import os
import json

app = FastAPI()

client = OpenAI(api_key = os.getenv("OPENAI_API_KEY"))

# Carregar dados das pizzas do CSV
pizzas = []
with open('pizzas.csv', newline='', encoding='utf-8') as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
        pizzas.append(row)

@app.post("/chat")
async def chat(request: Request):
    data = await request.json()
    user_message = data.get("message")

    # Consultar os dados das pizzas caso uma pizza específica seja mencionada
    pizza_info = ""
    for pizza in pizzas:
        if pizza['nome'].lower() in user_message.lower():
            pizza_info = f"{pizza['nome']} - Ingredientes: {pizza['ingredientes']}, Valor: R${pizza['valor']}\n"
            break

    # Criação da mensagem para o GPT-4
    prompt = f"Você é um chatbot de atendimento de uma pizzaria. Se o cliente perguntar sobre uma pizza específica, forneça os detalhes. Caso contrário, responda normalmente.\nCliente: {user_message}\n{pizza_info}Chatbot:"
     
   
    response = client.chat.completions.create(
        model="gpt-4o",
        messages=[
            {"role": "user", "content": prompt}
        ]
    )
    

    reply = response.choices[0].message.content
    return {"reply": reply}