inference-server
Version:
Libraries and server to build AI applications. Adapters to various native bindings allowing local inference. Integrate it with your application, or use as a microservice.
48 lines (47 loc) • 1.57 kB
TypeScript
import type { SomeJSONSchema } from 'ajv/dist/types/json-schema';
import { Image } from './index.js';
export type CompletionFinishReason = 'maxTokens' | 'toolCalls' | 'eogToken' | 'stopTrigger' | 'abort' | 'cancel' | 'timeout';
export interface AssistantToolCall {
id: string;
name: string;
parameters?: Record<string, any>;
}
export type ChatMessage = UserMessage | SystemMessage | AssistantMessage | ToolCallResultMessage;
export interface MessageTextContentPart {
type: 'text';
text: string;
}
export interface MessageImageContentPart {
type: 'image';
image: Image;
}
export type MessageContentPart = MessageTextContentPart | MessageImageContentPart;
export interface UserMessage {
role: 'user';
content: string | MessageContentPart[];
}
export interface SystemMessage {
role: 'system';
content: string | MessageContentPart[];
}
export interface AssistantMessage {
role: 'assistant';
content: string;
toolCalls?: AssistantToolCall[];
}
export interface ToolCallResultMessage {
role: 'tool';
content: string | MessageContentPart[];
callId: string;
}
export type ToolDefinitionParams<TParams> = SomeJSONSchema;
export interface ToolCallResultObject {
text: string;
preventFurtherCalls?: boolean;
}
export type ToolCallResult = string | ToolCallResultObject;
export interface ToolDefinition<TParams extends Record<string, any> = any> {
description?: string;
parameters?: ToolDefinitionParams<TParams>;
handler?: (params: TParams, leadingResponse?: string) => Promise<ToolCallResult>;
}