import Instructor from "@instructor-ai/instructor";
import OpenAI from "openai";
import { z } from "zod";
import { PORTKEY_GATEWAY_URL, createHeaders } from "portkey-ai";
const portkey = new OpenAI({
baseURL: PORTKEY_GATEWAY_URL,
defaultHeaders: createHeaders({
apiKey: "PORTKEY_API_KEY",
virtualKey: "OPENAI_API_KEY",
}),
});
const client = Instructor({
client: portkey,
mode: "TOOLS",
});
const UserSchema = z.object({
age: z.number().describe("The age of the user"),
name: z.string(),
});
const user = await client.chat.completions.create({
messages: [{ role: "user", content: "Jason Liu is 30 years old" }],
model: "claude-3-sonnet-20240229",
// model: "gpt-4",
max_tokens: 512,
response_model: {
schema: UserSchema,
name: "User",
},
});
console.log(user);