FastAPI
Minimal route¶
from fastapi import FastAPI
from pydantic import BaseModel
from runforge import RunForge
from openai import OpenAI
import os
app = FastAPI()
rf = RunForge(api_key=os.environ['RUNFORGE_API_KEY'], endpoint=os.environ.get('RUNFORGE_ENDPOINT','http://localhost:3000/api/ingest'), project_id=os.environ.get('RUNFORGE_PROJECT_ID'))
client = OpenAI(api_key=os.environ['OPENAI_API_KEY'])
class ChatBody(BaseModel):
messages: list
@app.post('/chat')
def chat(body: ChatBody):
out = rf.track({"model":"gpt-4o-mini"}, lambda: client.chat.completions.create(model='gpt-4o-mini', messages=body.messages))
return {"ok": True, "choices": out.choices}
Notes: run server‑side; do not send prompts/outputs to RunForge.