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.
73 lines (72 loc) • 3.75 kB
TypeScript
import { TextCompletionParams, ChatCompletionParams, EmbeddingParams, ObjectDetectionParams, ImageToTextParams, SpeechToTextParams, TextToSpeechParams, TextToImageParams, ImageToImageParams, TextClassificationParams, TaskResult } from '../types/engine.js';
export type TaskKind = 'text-completion' | 'chat-completion' | 'embedding' | 'image-to-text' | 'image-to-image' | 'text-to-image' | 'speech-to-text' | 'text-to-speech' | 'object-detection' | 'text-classification';
export interface TextCompletionChunk {
tokens: number[];
text: string;
}
export interface ProcessingOptions {
timeout?: number;
signal?: AbortSignal;
}
export interface TextCompletionProcessingOptions extends ProcessingOptions {
onChunk?: (chunk: TextCompletionChunk) => void;
}
export interface SpeechToTextProcessingOptions extends ProcessingOptions {
onChunk?: (chunk: {
text: string;
}) => void;
}
export interface TextToSpeechProcessingOptions extends ProcessingOptions {
onChunk?: (chunk: {
audio: Buffer;
}) => void;
}
export type TextCompletionTaskArgs = TextCompletionParams & TextCompletionProcessingOptions;
export type ChatCompletionTaskArgs = ChatCompletionParams & TextCompletionProcessingOptions;
export type EmbeddingTaskArgs = EmbeddingParams & ProcessingOptions;
export type ObjectDetectionTaskArgs = ObjectDetectionParams & ProcessingOptions;
export type TextClassificationTaskArgs = TextClassificationParams & ProcessingOptions;
export type ImageToTextTaskArgs = ImageToTextParams & ProcessingOptions;
export type SpeechToTextTaskArgs = SpeechToTextParams & SpeechToTextProcessingOptions;
export type TextToSpeechTaskArgs = TextToSpeechParams & TextToSpeechProcessingOptions;
export type TextToImageTaskArgs = TextToImageParams & ProcessingOptions;
export type ImageToImageTaskArgs = ImageToImageParams & ProcessingOptions;
export type TaskArgs = TextCompletionTaskArgs | ChatCompletionTaskArgs | EmbeddingTaskArgs | ObjectDetectionTaskArgs | ImageToTextTaskArgs | ImageToImageTaskArgs | TextToImageTaskArgs | TextToSpeechTaskArgs | SpeechToTextTaskArgs | TextClassificationTaskArgs;
export interface TextCompletionInferenceTaskArgs extends TextCompletionTaskArgs {
task: 'text-completion';
}
export interface ChatCompletionInferenceTaskArgs extends ChatCompletionTaskArgs {
task: 'chat-completion';
}
export interface EmbeddingInferenceTaskArgs extends EmbeddingTaskArgs {
task: 'embedding';
}
export interface TextToImageInferenceTaskArgs extends TextToImageTaskArgs {
task: 'text-to-image';
}
export interface ImageToTextInferenceTaskArgs extends ImageToTextTaskArgs {
task: 'image-to-text';
}
export interface ImageToImageInferenceTaskArgs extends ImageToImageTaskArgs {
task: 'image-to-image';
}
export interface ObjectDetectionInferenceTaskArgs extends ObjectDetectionTaskArgs {
task: 'object-detection';
}
export interface TextClassificationInferenceTaskArgs extends TextClassificationTaskArgs {
task: 'text-classification';
}
export interface TextToSpeechInferenceTaskArgs extends TextToSpeechTaskArgs {
task: 'text-to-speech';
}
export interface SpeechToTextInferenceTaskArgs extends SpeechToTextTaskArgs {
task: 'speech-to-text';
}
export type InferenceTaskArgs = TextCompletionInferenceTaskArgs | ChatCompletionInferenceTaskArgs | EmbeddingInferenceTaskArgs | ObjectDetectionInferenceTaskArgs | ImageToTextInferenceTaskArgs | ImageToImageInferenceTaskArgs | TextToImageInferenceTaskArgs | TextToSpeechInferenceTaskArgs | SpeechToTextInferenceTaskArgs | TextClassificationInferenceTaskArgs;
export interface InferenceTask<TResult = TaskResult> {
id: string;
model: string;
createdAt: Date;
result: Promise<TResult>;
cancel: () => void;
}