import OpenAI from "openai";
const openai = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
baseURL: "https://oai.helicone.ai/v1",
defaultHeaders: {
"Helicone-Auth": `Bearer ${process.env.HELICONE_API_KEY}`,
},
});
// In your chat handler
async function handleChatMessage(userId: string, message: string) {
const requestId = crypto.randomUUID();
const response = await openai.chat.completions.create(
{
model: "gpt-4o-mini",
messages: [
{ role: "system", content: "You are a helpful assistant." },
{ role: "user", content: message }
]
},
{
headers: {
"Helicone-Request-Id": requestId,
"Helicone-User-Id": userId,
"Helicone-Property-Feature": "chat"
}
}
);
// Store request ID for later feedback
await storeRequestMapping(userId, requestId, response.id);
return response;
}
// When user clicks thumbs up/down
async function handleUserFeedback(userId: string, responseId: string, isPositive: boolean) {
const requestId = await getRequestId(userId, responseId);
await fetch(
`https://api.helicone.ai/v1/request/${requestId}/feedback`,
{
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.HELICONE_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ rating: isPositive }),
}
);
}