@h-lumos/llm-sdk
Version:
196 lines (194 loc) • 6.61 kB
TypeScript
import { default as OpenAI } from 'openai';
import { Stream } from 'openai/streaming';
import { APIResource } from '../../../resource';
export declare class Completions extends APIResource {
protected resources: Record<ChatModel, {
model: ChatModel;
endpoint: string;
}>;
protected system: string;
/**
* Creates a model response for the given chat conversation.
*
* See https://api.minimax.chat/document/guides/chat-model/chat/api
*/
create(body: ChatCompletionCreateParamsNonStreaming, options?: OpenAI.RequestOptions): Promise<OpenAI.ChatCompletion>;
create(body: ChatCompletionCreateParamsStreaming, options?: OpenAI.RequestOptions): Promise<Stream<OpenAI.ChatCompletionChunk>>;
protected buildCreateParams(params: ChatCompletionCreateParams): ChatCompletions.ChatCompletionCreateParams;
static fromResponse(model: ChatModel, data: ChatCompletions.ChatCompletion): OpenAI.ChatCompletion;
static fromSSEResponse(model: ChatModel, response: Response, controller: AbortController): Stream<OpenAI.ChatCompletionChunk>;
}
export interface ChatCompletionCreateParamsNonStreaming extends OpenAI.ChatCompletionCreateParamsNonStreaming {
model: ChatModel;
}
export interface ChatCompletionCreateParamsStreaming extends OpenAI.ChatCompletionCreateParamsStreaming {
model: ChatModel;
}
export type ChatCompletionCreateParams = ChatCompletionCreateParamsNonStreaming | ChatCompletionCreateParamsStreaming;
export type ChatModel = 'abab5-chat' | 'abab5.5-chat' | 'abab5.5-chat-pro';
export declare namespace ChatCompletions {
type ChatMessage = {
sender_type: 'USER' | 'BOT' | 'FUNCTION';
sender_name?: string;
text: string;
};
interface ChatCompletionCreateParams {
/**
* 模型名称
*/
model: ChatModel;
/**
* 对话背景、人物或功能设定
*
* 和 bot_setting 互斥
*/
prompt?: string | null;
/**
* 对话 meta 信息
*
* 和 bot_setting 互斥
*/
role_meta?: {
/**
* 用户代称
*/
user_name: string;
/**
* AI 代称
*/
bot_name: string;
};
/**
* pro 模式下,可以设置 bot 的名称和内容
*
* 和 prompt 互斥
*/
bot_setting?: {
bot_name: string;
content: string;
}[];
/**
* pro 模式下,设置模型回复要求
*/
reply_constraints?: {
sender_type: string;
sender_name: string;
};
/**
* 对话内容
*/
messages: ChatMessage[];
/**
* 如果为 true,则表明设置当前请求为续写模式,回复内容为传入 messages 的最后一句话的续写;
*
* 此时最后一句发送者不限制 USER,也可以为 BOT。
*/
continue_last_message?: boolean | null;
/**
* 内容随机性
*/
temperature?: number | null;
/**
* 生成文本的多样性
*/
top_p?: number | null;
/**
* 最大生成token数,需要注意的是,这个参数并不会影响模型本身的生成效果,
*
* 而是仅仅通过以截断超出的 token 的方式来实现功能需要保证输入上文的 token 个数和这个值加一起小于 6144 或者 16384,否则请求会失败
*/
tokens_to_generate?: number | null;
/**
* 对输出中易涉及隐私问题的文本信息进行脱敏,
*
* 目前包括但不限于邮箱、域名、链接、证件号、家庭住址等,默认 false,即开启脱敏
*/
skip_info_mask?: boolean | null;
/**
* 对输出中易涉及隐私问题的文本信息进行打码,
*
* 目前包括但不限于邮箱、域名、链接、证件号、家庭住址等,默认true,即开启打码
*/
mask_sensitive_info?: boolean | null;
/**
* 生成多少个结果;不设置默认为1,最大不超过4。
*
* 由于 beam_width 生成多个结果,会消耗更多 token。
*/
beam_width?: number | null;
/**
* 是否以流式接口的形式返回数据,默认 false
*/
stream?: boolean | null;
/**
* 是否使用标准 SSE 格式,设置为 true 时,
* 流式返回的结果将以两个换行为分隔符。
*
* 只有在 stream=true 时,此参数才会生效。
*/
use_standard_sse?: boolean | null;
}
type ChatCompletionChoice = {
index?: number;
text: string;
messages: {
sender_type: 'BOT';
sender_name: string;
text: string;
}[];
finish_reason: 'stop' | 'length' | 'tool_calls' | 'content_filter' | 'function_call';
};
interface ChatCompletion {
id: string;
created: number;
model: ChatModel;
reply: string;
choices: ChatCompletionChoice[];
usage: {
/**
* Number of tokens in the generated completion.
*/
completion_tokens: number;
/**
* Number of tokens in the prompt.
*/
prompt_tokens: number;
/**
* Total number of tokens used in the request (prompt + completion).
*/
total_tokens: number;
};
input_sensitive: boolean;
output_sensitive: boolean;
base_resp: {
status_code: number;
status_msg: string;
};
}
type ChatCompletionChunkChoice = {
index: number;
delta: string;
messages: {
sender_type: 'BOT';
sender_name: string;
text: string;
}[];
finish_reason: 'stop' | 'length' | 'content_filter' | 'function_call' | null;
};
interface ChatCompletionChunk {
request_id: string;
created: number;
model: ChatModel;
reply: string;
choices: ChatCompletionChunkChoice[];
usage: {
total_tokens: number;
};
input_sensitive: false;
output_sensitive: false;
base_resp: {
status_code: number;
status_msg: string;
};
}
}