• Creates a runnable sequence that calls OpenAI functions.

    Type Parameters

    • RunInput extends Record<string, any> = Record<string, any>

    • RunOutput extends Record<string, any> = Record<string, any>


    Returns Toolkit<RunInput, RunOutput>

    A runnable sequence that will pass the given functions to the model when run.


    const openAIFunction = {
    name: "get_person_details",
    description: "Get details about a person",
    parameters: {
    title: "Person",
    description: "Identifying information about a person.",
    type: "object",
    properties: {
    name: { title: "Name", description: "The person's name", type: "string" },
    age: { title: "Age", description: "The person's age", type: "integer" },
    fav_food: {
    title: "Fav Food",
    description: "The person's favorite food",
    type: "string",
    required: ["name", "age"],

    const model = new ChatOpenAI();
    const prompt = ChatPromptTemplate.fromMessages([
    ["human", "Human description: {description}"],
    const outputParser = new JsonOutputFunctionsParser();

    const runnable = createOpenAIFnRunnable({
    functions: [openAIFunction],
    llm: model,
    enforceSingleFunctionUsage: true, // Default is true
    const response = await runnable.invoke({
    "My name's John Doe and I'm 30 years old. My favorite kind of food are chocolate chip cookies.",


    // { name: 'John Doe', age: 30, fav_food: 'chocolate chip cookies' }

Generated using TypeDoc