import { agentSpan, setup } from "@inference/tracing";
import OpenAI from "openai";
const tracing = await setup({ modules: { openai: OpenAI } });
const client = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
await agentSpan(
tracing.tracer,
{ name: "RefundReviewAgent", system: "openai" },
async (span) => {
const ticket = { id: "ticket_123", orderId: "ABC-123" };
span.setInput(ticket);
const response = await client.chat.completions.create({
model: "gpt-4o-mini",
messages: [
{ role: "user", content: `Review refund for ${ticket.orderId}` },
],
});
span.setOutput({ decision: response.choices[0]?.message.content });
if (response.usage != null) {
span.recordTokens({
prompt: response.usage.prompt_tokens ?? 0,
completion: response.usage.completion_tokens ?? 0,
});
}
},
);
await tracing.shutdown();