|
from fastapi import FastAPI, Request |
|
from pydantic import BaseModel |
|
import openai |
|
import os |
|
|
|
openai.api_key = os.getenv("OPENAI_API_KEY") |
|
|
|
app = FastAPI() |
|
|
|
class ChatRequest(BaseModel): |
|
message: str |
|
history: list = [] |
|
|
|
@app.post("/chat") |
|
async def chat(data: ChatRequest): |
|
messages = [{"role": "system", "content": "You are a helpful assistant."}] |
|
messages += data.history |
|
messages.append({"role": "user", "content": data.message}) |
|
|
|
response = openai.ChatCompletion.create( |
|
model="gpt-3.5-turbo", |
|
messages=messages |
|
) |
|
|
|
reply = response['choices'][0]['message']['content'] |
|
return { |
|
"reply": reply, |
|
"history": messages + [{"role": "assistant", "content": reply}] |
|
} |