UNPKG

ai-utils.js

Version:

Build AI applications, chatbots, and agents with JavaScript and TypeScript.

109 lines (108 loc) 4.75 kB
import z from "zod"; import { Tool } from "../../../composed-function/use-tool/Tool.js"; import { GenerateJsonPrompt } from "../../../model-function/generate-json/GenerateJsonModel.js"; import { GenerateJsonOrTextPrompt } from "../../../model-function/generate-json/GenerateJsonOrTextModel.js"; import { SchemaDefinition } from "../../../model-function/generate-json/SchemaDefinition.js"; import { OpenAIChatMessage } from "./OpenAIChatMessage.js"; import { OpenAIChatResponse } from "./OpenAIChatModel.js"; export type OpenAIFunctionDescription<T> = { name: string; description?: string; parameters: z.Schema<T>; }; export declare const OpenAIChatFunctionPrompt: { forOpenAIFunctionDescription<T>(options: { messages: OpenAIChatMessage[]; fn: OpenAIFunctionDescription<T>; }): OpenAIChatSingleFunctionPrompt<T>; forSchema<STRUCTURE>({ messages, schemaDefinition, }: { messages: OpenAIChatMessage[]; schemaDefinition: SchemaDefinition<any, STRUCTURE>; }): OpenAIChatSingleFunctionPrompt<STRUCTURE>; forSchemaCurried<STRUCTURE_1>(messages: OpenAIChatMessage[]): (schemaDefinition: SchemaDefinition<any, STRUCTURE_1>) => OpenAIChatSingleFunctionPrompt<STRUCTURE_1>; forTool<INPUT, OUTPUT>({ messages, tool, }: { messages: OpenAIChatMessage[]; tool: Tool<any, INPUT, OUTPUT>; }): OpenAIChatSingleFunctionPrompt<INPUT>; forToolCurried<INPUT_1, OUTPUT_1>(messages: OpenAIChatMessage[]): (tool: Tool<any, INPUT_1, OUTPUT_1>) => OpenAIChatSingleFunctionPrompt<INPUT_1>; forOpenAIFunctionDescriptions<FUNCTIONS extends OpenAIFunctionDescription<any>[]>(options: { messages: OpenAIChatMessage[]; fns: FUNCTIONS; }): OpenAIChatAutoFunctionPrompt<FUNCTIONS>; forSchemas<SCHEMAS extends SchemaDefinition<any, any>[]>({ messages, schemaDefinitions, }: { messages: OpenAIChatMessage[]; schemaDefinitions: SCHEMAS; }): OpenAIChatAutoFunctionPrompt<{ name: any; description: string | undefined; parameters: z.ZodType<any, z.ZodTypeDef, any>; }[]>; forSchemasCurried<SCHEMAS_1 extends SchemaDefinition<any, any>[]>(messages: OpenAIChatMessage[]): (schemaDefinitions: SCHEMAS_1) => OpenAIChatAutoFunctionPrompt<{ name: any; description: string | undefined; parameters: z.ZodType<any, z.ZodTypeDef, any>; }[]>; forTools<TOOLS extends Tool<any, any, any>[]>({ messages, tools, }: { messages: OpenAIChatMessage[]; tools: TOOLS; }): OpenAIChatAutoFunctionPrompt<{ name: any; description: string | undefined; parameters: z.ZodType<any, z.ZodTypeDef, any>; }[]>; forToolsCurried<TOOLS_1 extends Tool<any, any, any>[]>(messages: OpenAIChatMessage[]): (tools: TOOLS_1) => OpenAIChatAutoFunctionPrompt<{ name: any; description: string | undefined; parameters: z.ZodType<any, z.ZodTypeDef, any>; }[]>; }; export declare class OpenAIChatSingleFunctionPrompt<T> implements GenerateJsonPrompt<OpenAIChatResponse> { readonly messages: OpenAIChatMessage[]; readonly fn: OpenAIFunctionDescription<T>; constructor({ messages, fn, }: { messages: OpenAIChatMessage[]; fn: OpenAIFunctionDescription<T>; }); extractJson(response: OpenAIChatResponse): any; get functionCall(): { name: string; }; get functions(): { name: string; description: string | undefined; parameters: import("zod-to-json-schema/src/parseDef.js").JsonSchema7Type & { $schema?: string | undefined; definitions?: { [key: string]: import("zod-to-json-schema/src/parseDef.js").JsonSchema7Type; } | undefined; }; }[]; } export declare class OpenAIChatAutoFunctionPrompt<FUNCTIONS extends Array<OpenAIFunctionDescription<any>>> implements GenerateJsonOrTextPrompt<OpenAIChatResponse> { readonly messages: OpenAIChatMessage[]; readonly fns: FUNCTIONS; constructor({ messages, fns, }: { messages: OpenAIChatMessage[]; fns: FUNCTIONS; }); extractJsonAndText(response: OpenAIChatResponse): { schema: null; value: null; text: string; } | { schema: string; value: any; text: string | null; }; get functionCall(): "auto"; get functions(): { name: string; description: string | undefined; parameters: import("zod-to-json-schema/src/parseDef.js").JsonSchema7Type & { $schema?: string | undefined; definitions?: { [key: string]: import("zod-to-json-schema/src/parseDef.js").JsonSchema7Type; } | undefined; }; }[]; }