agsamantha/node_modules/langchain/dist/chains/openai_functions/structured_output.d.ts
2024-10-02 15:15:21 -05:00

60 lines
3.7 KiB
TypeScript

import { z } from "zod";
import { JsonSchema7Type } from "zod-to-json-schema";
import { Validator } from "@langchain/core/utils/json_schema";
import { ChatOpenAI } from "@langchain/openai";
import { BasePromptTemplate } from "@langchain/core/prompts";
import { BaseLLMOutputParser } from "@langchain/core/output_parsers";
import { ChatGeneration } from "@langchain/core/outputs";
import type { BaseChatModel } from "@langchain/core/language_models/chat_models";
import type { BaseFunctionCallOptions } from "@langchain/core/language_models/base";
import { LLMChain, type LLMChainInput } from "../llm_chain.js";
import { OutputFunctionsParser } from "../../output_parsers/openai_functions.js";
/**
* Type representing the input for creating a structured output chain. It
* extends the LLMChainInput type and includes an additional
* 'outputSchema' field representing the JSON schema for the expected
* output.
*/
export type StructuredOutputChainInput<T extends z.AnyZodObject = z.AnyZodObject> = Omit<LLMChainInput, "outputParser" | "llm"> & {
outputSchema?: JsonSchema7Type;
prompt: BasePromptTemplate;
llm?: BaseChatModel<BaseFunctionCallOptions>;
zodSchema?: T;
};
export type FunctionCallStructuredOutputParserFields<T extends z.AnyZodObject = z.AnyZodObject> = {
jsonSchema?: JsonSchema7Type;
zodSchema?: T;
};
/**
* Class that extends the BaseLLMOutputParser class. It provides
* functionality for parsing the structured output based on a JSON schema.
*/
export declare class FunctionCallStructuredOutputParser<T extends z.AnyZodObject> extends BaseLLMOutputParser<z.infer<T>> {
lc_namespace: string[];
protected functionOutputParser: OutputFunctionsParser;
protected jsonSchemaValidator?: Validator;
protected zodSchema?: T;
constructor(fieldsOrSchema: JsonSchema7Type);
constructor(fieldsOrSchema: FunctionCallStructuredOutputParserFields<T>);
/**
* Method to parse the result of chat generations. It first parses the
* result using the functionOutputParser, then parses the result against a
* zod schema if the zod schema is available which allows the result to undergo
* Zod preprocessing, then it parses that result against the JSON schema.
* If the result is valid, it returns the parsed result. Otherwise, it throws
* an OutputParserException.
* @param generations Array of ChatGeneration instances to be parsed.
* @returns The parsed result if it is valid according to the JSON schema.
*/
parseResult(generations: ChatGeneration[]): Promise<any>;
}
/**
* @deprecated Use {@link https://api.js.langchain.com/functions/langchain.chains_openai_functions.createStructuredOutputRunnable.html | createStructuredOutputRunnable} instead
* Create a chain that returns output matching a JSON Schema.
* @param input Object that includes all LLMChainInput fields except "outputParser"
* as well as an additional required "outputSchema" JSON Schema object.
* @returns OpenAPIChain
*/
export declare function createStructuredOutputChain<T extends z.AnyZodObject = z.AnyZodObject>(input: StructuredOutputChainInput<T>): LLMChain<any, BaseChatModel<BaseFunctionCallOptions, import("@langchain/core/messages").BaseMessageChunk> | ChatOpenAI<BaseFunctionCallOptions>>;
/** @deprecated Use {@link https://api.js.langchain.com/functions/langchain.chains_openai_functions.createStructuredOutputRunnable.html | createStructuredOutputRunnable} instead */
export declare function createStructuredOutputChainFromZod<T extends z.AnyZodObject>(zodSchema: T, input: Omit<StructuredOutputChainInput<T>, "outputSchema">): LLMChain<any, BaseChatModel<BaseFunctionCallOptions, import("@langchain/core/messages").BaseMessageChunk> | ChatOpenAI<BaseFunctionCallOptions>>;