llmatic
Version:
Use self-hosted LLMs with an OpenAI compatible API
73 lines (71 loc) • 2.47 kB
TypeScript
type FinishReason = undefined | "length" | "stop";
declare enum Role {
Assistant = "assistant",
System = "system",
User = "user"
}
type LlmAdapterModel = {
id: string;
created: number;
ownedBy: string;
};
type LlmAdapterCreateEmbeddingRequest = {
model: string;
input: string;
};
type LlmAdapterCreateEmbeddingResponse = number[];
type LlmAdapterCreateCompletionRequest = {
bestOf?: number;
echo?: boolean;
frequencyPenalty?: number;
logitBias?: Record<string, any>;
logprobs?: number;
maxTokens?: number;
model: string;
n?: number;
presencePenalty?: number;
prompt: string[];
stop?: string[];
suffix?: string;
temperature?: number;
topP?: number;
};
type LlmAdapterCreateChatCompletionRequest = {
frequencyPenalty?: number;
logitBias?: Record<string, any>;
maxTokens?: number;
messages: Array<{
content: string;
name?: string;
role: Role;
}>;
model: string;
n?: number;
presencePenalty?: number;
stop?: string[];
temperature?: number;
topP?: number;
};
type LlmAdapterCreateCompletionResponse = {
index: number;
logprobs?: unknown;
text: string;
finishReason: FinishReason;
};
type ChatCompletionDelta = {
role?: Role;
content?: string;
};
type LlmAdapterCreateChatCompletionResponse = {
index: number;
delta: ChatCompletionDelta;
finishReason?: string;
};
declare abstract class LlmAdapter {
static get defaultConfig(): Record<string, unknown>;
abstract listModels(): Promise<LlmAdapterModel[]>;
abstract createEmbedding({ model, input, }: LlmAdapterCreateEmbeddingRequest): Promise<LlmAdapterCreateEmbeddingResponse>;
abstract createCompletion(createCompletionRequest: LlmAdapterCreateCompletionRequest, abortSignal: AbortSignal, onData: (data: LlmAdapterCreateCompletionResponse) => void): Promise<void>;
abstract createChatCompletion(createChatCompletionRequest: LlmAdapterCreateChatCompletionRequest, abortSignal: AbortSignal, onData: (data: LlmAdapterCreateChatCompletionResponse) => void): Promise<void>;
}
export { type ChatCompletionDelta, type FinishReason, LlmAdapter, type LlmAdapterCreateChatCompletionRequest, type LlmAdapterCreateChatCompletionResponse, type LlmAdapterCreateCompletionRequest, type LlmAdapterCreateCompletionResponse, type LlmAdapterCreateEmbeddingRequest, type LlmAdapterCreateEmbeddingResponse, type LlmAdapterModel, Role };