FastAPI is incredibly fast, easy to learn, and auto-generates documentation (Swagger UI). Here is the absolute minimum boilerplate you need to expose your LLM agent.
The Code
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
# Assume we have an agent object from LangGraph or LangChain
from my_agent_logic import agent_graph
# 1. Initialize FastAPI
app = FastAPI(title="My AI Agent API")
# 2. Define the Request format
class ChatRequest(BaseModel):
user_message: str
session_id: str
# 3. Define the Response format
class ChatResponse(BaseModel):
ai_response: str
tokens_used: int
# 4. Create the Endpoint
@app.post("/api/chat", response_model=ChatResponse)
async def chat_endpoint(request: ChatRequest):
try:
# Pass the input to your agent
# (This syntax depends on your specific agent framework)
result = await agent_graph.ainvoke(
{"messages": [("user", request.user_message)]},
config={"configurable": {"thread_id": request.session_id}}
)
# Extract the final message content
final_text = result["messages"][-1].content
return ChatResponse(
ai_response=final_text,
tokens_used=0 # You can extract token metadata if needed
)
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))
How to Run It
Save the code above as main.py. Then run the Uvicorn server:
uvicorn main:app --reload
Navigate to http://localhost:8000/docs in your browser. You will see an interactive Swagger UI where you can immediately test your endpoint!
