Skip to content

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.