ai-utils.js
Version:
Build AI applications, chatbots, and agents with JavaScript and TypeScript.
28 lines (27 loc) • 1.55 kB
TypeScript
import { FunctionOptions } from "./FunctionOptions.js";
import { Model, ModelSettings } from "./Model.js";
import { ModelCallFinishedEvent, ModelCallFinishedEventMetadata, ModelCallStartedEvent, ModelCallStartedEventMetadata } from "./ModelCallEvent.js";
export type CallMetadata<MODEL extends Model<unknown>> = {
callId: string;
runId?: string;
sessionId?: string;
userId?: string;
functionId?: string;
model: MODEL["modelInformation"];
startEpochSeconds: number;
durationInMs: number;
};
export declare function executeCall<SETTINGS extends ModelSettings, MODEL extends Model<SETTINGS>, OUTPUT, RESPONSE>({ model, options, getStartEvent, getAbortEvent, getFailureEvent, getSuccessEvent, generateResponse, extractOutputValue, }: {
model: MODEL;
options?: FunctionOptions<SETTINGS>;
getStartEvent: (metadata: ModelCallStartedEventMetadata, settings: SETTINGS) => ModelCallStartedEvent;
getAbortEvent: (metadata: ModelCallFinishedEventMetadata, settings: SETTINGS) => ModelCallFinishedEvent;
getFailureEvent: (metadata: ModelCallFinishedEventMetadata, settings: SETTINGS, error: unknown) => ModelCallFinishedEvent;
getSuccessEvent: (metadata: ModelCallFinishedEventMetadata, settings: SETTINGS, response: RESPONSE, output: OUTPUT) => ModelCallFinishedEvent;
generateResponse: (options: FunctionOptions<SETTINGS>) => PromiseLike<RESPONSE>;
extractOutputValue: (response: RESPONSE) => OUTPUT;
}): Promise<{
output: OUTPUT;
response: RESPONSE;
metadata: CallMetadata<MODEL>;
}>;