@tsailab/xai
Version:
The loto-xai is an openai nodejs sdk compatible extension library.
68 lines (67 loc) • 2.23 kB
TypeScript
import { ChatCompletionAssistantMessageParam, ChatCompletionChunk, ChatCompletionDeveloperMessageParam, ChatCompletionSystemMessageParam, ChatCompletionToolMessageParam, ChatCompletionUserMessageParam } from 'openai/resources/chat/completions';
import { ModelProviderType } from '../ai-provider';
import { XaiModelBaseOption } from './model-types';
export type ChatRoleType = 'user' | 'assistant' | 'system';
export type ChatRoleExtendType = ChatRoleType | 'tool' | 'developer' | string;
/**
* front user request body messages
*/
export type XaiChatRequestMessage = ChatCompletionDeveloperMessageParam | ChatCompletionSystemMessageParam | ChatCompletionUserMessageParam | ChatCompletionAssistantMessageParam | ChatCompletionToolMessageParam;
/**
*
*/
export type XaiChatBody = {
model?: string;
messages?: Array<XaiChatRequestMessage>;
[k: string]: any;
};
export type XaiChatExtraData = {
reqid: string;
uno?: string;
username?: string;
ip?: string;
cliid?: string | string[];
[k: string]: any;
};
/**
* @public
* xai streaming request body properties
* @property chatid front conversation id,if simle can set with user name.
* @property uuid refer backend prompt template uuid
* @property text front user input text
* @property compatible openai beta like systemMessage
* @property extra is request header and extra data
*/
export interface XaiChatRequestBody<E extends XaiChatExtraData = XaiChatExtraData, O extends XaiModelBaseOption = XaiModelBaseOption> extends XaiChatBody {
chatid: string;
provider: ModelProviderType | string;
uuid?: number;
text?: string;
instructions?: string;
extra?: E;
template?: string;
aiopts?: O;
}
/**
* Extend Base openai Delta
*/
export interface XChoiceDelta extends ChatCompletionChunk.Choice.Delta {
reasoning_content?: string;
[k: string]: any;
}
/**
* Extend Base openai Choice
*/
export interface XChoice extends Omit<ChatCompletionChunk.Choice, 'delta'> {
delta: XChoiceDelta;
[k: string]: any;
}
/**
*
* Extend Base openai CompletionChunk
*
*/
export interface XChatCompletionChunk extends Omit<ChatCompletionChunk, 'choices'> {
choices: Array<XChoice>;
[k: string]: any;
}