import { PromptLayer } from "@promptlayer/promptlayer";
import { OpenAI } from "openai";
const plClient = new PromptLayer({ apiKey: "pl_..." });
const openai = new OpenAI();
// Helper function
function openaiToBlueprint(messages, completion = null) {
const inputBlueprint = {
type: "chat",
messages: messages.map(msg => ({
role: msg.role,
content: typeof msg.content === "string"
? [{ type: "text", text: msg.content }]
: msg.content
}))
};
let outputBlueprint = null;
if (completion) {
outputBlueprint = {
type: "chat",
messages: [{
role: "assistant",
content: [{
type: "text",
text: completion.choices[0].message.content
}]
}]
};
}
return { inputBlueprint, outputBlueprint };
}
async function main() {
const messages = [
{ role: "user", content: "Hello world" }
];
const requestStartTime = Date.now();
const completion = await openai.chat.completions.create({
model: "gpt-4o",
messages
});
const requestEndTime = Date.now();
const { inputBlueprint, outputBlueprint } = openaiToBlueprint(messages, completion);
await plClient.logRequest({
provider: "openai",
model: "gpt-4o",
input: inputBlueprint,
output: outputBlueprint,
requestStartTime,
requestEndTime,
inputTokens: completion.usage.prompt_tokens,
outputTokens: completion.usage.completion_tokens
});
}
main();