
Here's the pattern for a production-ready chatbot API using OpenAI and FastAPI:
from fastapi import FastAPI
from openai import OpenAI
from pydantic import BaseModel
app = FastAPI()
client = OpenAI()
class ChatRequest(BaseModel):
message: str
history: list = []
@app.post("/chat")
def chat(req: ChatRequest):
messages = [
{"role": "system", "content": "You are a helpful assistant."},
*req.history,
{"role": "user", "content": req.message}
]
response = client.chat.completions.create(
model="gpt-4o", messages=messages
)
return {"reply": response.choices[0].message.content}Reference:
TaskLoco™ — The Sticky Note GOAT