ai-utils.js
Version:
Build AI applications, chatbots, and agents with JavaScript and TypeScript.
109 lines (108 loc) • 4.75 kB
TypeScript
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;
};
}[];
}