@plastichub/osr-ai-tools
Version:
CLI and library for LLM tools
21 lines (20 loc) • 1.02 kB
TypeScript
import { ChatCompletion, ChatCompletionMessage, ChatCompletionMessageParam } from 'openai/resources';
import { IKBotOptions } from './types_kbot';
import OpenAI from 'openai';
import { RunnableFunctionWithParse } from 'openai/lib/RunnableFunction';
export type onToolBefore = (ctx: RunnableFunctionWithParse<any>, args: any) => Promise<any>;
export type onToolAfter = (ctx: RunnableFunctionWithParse<any>, args: any, result?: any) => Promise<any>;
export interface ICollector {
onMessage: (message: ChatCompletionMessageParam) => void;
onToolCall: (tool: ChatCompletionMessage.FunctionCall) => void;
onFunctionCallResult: (content: string) => void;
onChatCompletion: (completion: ChatCompletion) => void;
onContent: (content: string) => void;
onTool: (category: string, name: string, args: any, result?: any) => void;
onToolBefore: onToolBefore;
onToolAfter: onToolAfter;
}
export interface IKBotTask extends IKBotOptions {
client: OpenAI;
collector: ICollector;
}