FabioSantos commited on
Commit
cccd0d4
·
verified ·
1 Parent(s): e0db555

Upload 4 files

Browse files
Files changed (4) hide show
  1. Dockerfile +16 -0
  2. app.py +49 -0
  3. pizzas.csv +5 -0
  4. requirements.txt +4 -0
Dockerfile ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Read the doc: https://huggingface.co/docs/hub/spaces-sdks-docker
2
+ # you will also find guides on how best to write your Dockerfile
3
+
4
+ FROM python:3.9
5
+
6
+ RUN useradd -m -u 1000 user
7
+ USER user
8
+ ENV PATH="/home/user/.local/bin:$PATH"
9
+
10
+ WORKDIR /app
11
+
12
+ COPY --chown=user ./requirements.txt requirements.txt
13
+ RUN pip install --no-cache-dir --upgrade -r requirements.txt
14
+
15
+ COPY --chown=user . /app
16
+ CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]
app.py ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from fastapi import FastAPI, Request
2
+ from fastapi.middleware.cors import CORSMiddleware
3
+ import openai
4
+ import csv
5
+ import os
6
+ import json
7
+
8
+ app = FastAPI()
9
+
10
+ app.add_middleware(
11
+ CORSMiddleware,
12
+ allow_origins=["*"],
13
+ allow_credentials=True,
14
+ allow_methods=["*"],
15
+ allow_headers=["*"],
16
+ )
17
+
18
+ openai.api_key = os.getenv("OPENAI_API_KEY")
19
+
20
+ # Carregar dados das pizzas do CSV
21
+ pizzas = []
22
+ with open('pizzas.csv', newline='', encoding='utf-8') as csvfile:
23
+ reader = csv.DictReader(csvfile)
24
+ for row in reader:
25
+ pizzas.append(row)
26
+
27
+ @app.post("/chat")
28
+ async def chat(request: Request):
29
+ data = await request.json()
30
+ user_message = data.get("message")
31
+
32
+ # Consultar os dados das pizzas caso uma pizza específica seja mencionada
33
+ pizza_info = ""
34
+ for pizza in pizzas:
35
+ if pizza['nome'].lower() in user_message.lower():
36
+ pizza_info = f"{pizza['nome']} - Ingredientes: {pizza['ingredientes']}, Valor: R${pizza['valor']}\n"
37
+ break
38
+
39
+ # Criação da mensagem para o GPT-4
40
+ 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:"
41
+
42
+ response = openai.Completion.create(
43
+ engine="gpt-4",
44
+ prompt=prompt,
45
+ max_tokens=150
46
+ )
47
+
48
+ reply = response.choices[0].text.strip()
49
+ return {"reply": reply}
pizzas.csv ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ nome,ingredientes,valor
2
+ Margherita,Molho de tomate, mussarela, manjericão,20.00
3
+ Pepperoni,Molho de tomate, mussarela, pepperoni,25.00
4
+ Calabresa,Molho de tomate, mussarela, calabresa, cebola,23.00
5
+ Quatro Queijos,Molho de tomate, mussarela, gorgonzola, parmesão, provolone,28.00
requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ fastapi
2
+ uvicorn
3
+ openai
4
+ python-dotenv