EddyGiusepe commited on
Commit
dc6e5a8
·
1 Parent(s): 921d498

Testando API da OpenAI com FastAPI

Browse files
Files changed (1) hide show
  1. main-2.py +61 -0
main-2.py ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ Data Scientist.: Dr.Eddy Giusepe Chirinos Isidro
3
+
4
+ Objetivo: Aqui vamos aprender a usar a API da OpenAI.
5
+ Através do Swagger - Uvicorn vamos
6
+ a realizar algumas queries e testar a plataforma da
7
+ OpenAI 🤗.
8
+ """
9
+ import os
10
+ import openai
11
+ from dotenv import load_dotenv, find_dotenv
12
+ from fastapi import FastAPI
13
+ from pydantic import BaseModel
14
+
15
+
16
+ app = FastAPI(title='🤗 Fazendo queries à API da OpenAI 🤗',
17
+ version='1.0.0',
18
+ description="""Data Scientist.: PhD. Eddy Giusepe Chirinos Isidro""")
19
+
20
+ # Configuração da OpenAI:
21
+ _ = load_dotenv(find_dotenv()) # read local .env file
22
+ openai.api_key = os.getenv('OPENAI_API_KEY')
23
+
24
+ # Classe para nossa entrada:
25
+ class QueryRequest(BaseModel):
26
+ query: str
27
+
28
+
29
+ # Rota de teste para verificar se a API está em execução:
30
+ @app.get("/")
31
+ def root():
32
+ return {"message": "API da OpenAI está em execução 🤗!"}
33
+
34
+
35
+ # Rota para obter a resposta:
36
+ @app.post("/get_completion")
37
+ def get_completion(query_request: QueryRequest):
38
+ query = query_request.query
39
+
40
+ messages = [{"role": "user", "content": query}]
41
+
42
+ response = openai.ChatCompletion.create(
43
+ model="gpt-3.5-turbo",
44
+ messages=messages,
45
+ temperature=0
46
+ )
47
+
48
+ return {"Resposta": response.choices[0].message["content"]}
49
+
50
+
51
+
52
+
53
+ # Podemo executar assim, no terminal:
54
+ # $ uvicorn main-2:app --host 0.0.0.0 --port 8000 --reload
55
+
56
+ # ou assim:
57
+
58
+ # Executar a API usando o servidor Uvicorn:
59
+ if __name__ == "__main__":
60
+ import uvicorn
61
+ uvicorn.run(app, host="0.0.0.0", port=8000, reload=True)