langchain.js
    Preparing search index...
    • 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>

      Parameters

      Returns Runnable<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,
      prompt,
      enforceSingleFunctionUsage: true, // Default is true
      outputParser
      });
      const response = await runnable.invoke({
      description:
      "My name's John Doe and I'm 30 years old. My favorite kind of food are chocolate chip cookies.",
      });

      console.log(response);

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