56 lines
1.0 KiB
TypeScript
56 lines
1.0 KiB
TypeScript
export type ModelInfo = {
|
|
name: string;
|
|
family?: string | null;
|
|
parameter_size?: string | null;
|
|
quantization?: string | null;
|
|
};
|
|
|
|
export type ModelsResponse = {
|
|
models: ModelInfo[];
|
|
};
|
|
|
|
export type Role = 'system' | 'user' | 'assistant';
|
|
|
|
export type Message = {
|
|
role: Role;
|
|
content: string;
|
|
};
|
|
|
|
export type ChatRequest = {
|
|
model: string;
|
|
stream?: boolean;
|
|
temperature?: number;
|
|
top_p?: number;
|
|
top_k?: number;
|
|
repeat_penalty?: number;
|
|
seed?: number;
|
|
num_ctx?: number;
|
|
num_predict?: number;
|
|
stop?: string[];
|
|
keep_alive?: string;
|
|
messages: Message[];
|
|
};
|
|
|
|
export type ChatCompletionResponse = {
|
|
id: string;
|
|
object: string;
|
|
created: number;
|
|
model: string;
|
|
choices: ChatChoice[];
|
|
usage?: Usage;
|
|
};
|
|
|
|
export type FinishReason = 'Stop' | 'Length' | 'ContentFilter' | 'ToolCalls';
|
|
|
|
export type ChatChoice = {
|
|
index: number;
|
|
message: Message;
|
|
finish_reason: FinishReason;
|
|
};
|
|
|
|
export type Usage = {
|
|
prompt_tokens: number;
|
|
completion_tokens: number;
|
|
total_tokens: number;
|
|
};
|