@difizen/magent-chat
Version:
114 lines • 3.59 kB
TypeScript
import type { PrioritizedContribution } from '@difizen/magent-core';
import { Syringe } from '@difizen/mana-app';
import type { DefaultChatMessageItemModel } from './chat-message-item-model.js';
import type { DefaultChatMessageModel } from './chat-message-model.js';
import type { DefaultChatMessageSummary } from './chat-messasge-summary.js';
import type { DefaultConversationModel } from './conversation-model.js';
export interface IChatMessageSender {
id?: string;
type: 'HUMAN' | 'AI';
avatar?: string;
}
export interface IChatMessageItem {
/**
* 唯一标识
*/
id?: string;
sender: IChatMessageSender;
content: string;
created?: string;
modified?: string;
[key: string]: any;
}
export interface IChatMessageCreate {
id: string;
input: string;
stream?: boolean;
[key: string]: any;
}
export interface IChatMessageRecord {
id: string;
created?: string;
messages: IChatMessageItem[];
modified?: string;
token?: any;
stream?: boolean;
[key: string]: any;
}
export interface IChatMessage {
id?: string;
created?: string;
input?: string;
messages?: IChatMessageItem[];
modified?: string;
stream?: boolean;
token?: any;
[key: string]: any;
}
export declare const ChatProtocol: {
isChatMessageCreate: (data: IChatMessage) => data is IChatMessageCreate;
isChatMessageRecord: (data: IChatMessage) => data is IChatMessageRecord;
};
export interface IConversation {
id?: string;
created?: string;
modified?: string;
messages?: IChatMessage[];
[key: string]: any;
}
export type BaseChatMessageItemModel = DefaultChatMessageItemModel;
export type BaseChatMessageModel = DefaultChatMessageModel;
export type BaseConversationModel = DefaultConversationModel;
export type BaseChatMessageSummary = DefaultChatMessageSummary;
export declare enum QuestionState {
SENDING = "sending",
VALIDATING = "validating",
FAIL = "fail",
SUCCESS = "success"
}
export declare enum AnswerState {
WAITING = "waiting",
RECEIVING = "receiving",
FAIL = "fail",
SUCCESS = "success"
}
export type ChatMessageItemContribution<O extends IChatMessageItem = IChatMessageItem, T extends BaseChatMessageItemModel = BaseChatMessageItemModel> = PrioritizedContribution<O, T>;
export declare const ChatMessageItemContribution: Syringe.DefinedToken;
export interface IChatEvent {
type: string;
[key: string]: any;
}
export interface ChatEventChunk extends IChatEvent {
output: string;
type: 'chunk';
msgId?: string;
[key: string]: any;
}
export interface ErrorMessage {
message: string;
}
export interface ChatEventError extends IChatEvent, ErrorMessage {
type: 'error';
}
export interface ChatEventDone extends IChatEvent {
type: 'done';
}
export interface ChatEventResult extends IChatEvent {
output: string;
type: 'result';
}
export declare const ChatEvent: {
isChunk: (event: IChatEvent) => event is ChatEventChunk;
isError: (event: IChatEvent) => event is ChatEventError;
isResult: (e: IChatEvent) => e is ChatEventResult;
isDone: (event: IChatEvent) => event is ChatEventDone;
format: (e: string, data: any) => ChatEventResult | ChatEventChunk | ChatEventError | ChatEventDone;
};
export interface ConversationOption extends IConversation {
id: string;
}
export declare const ConversationOption: {
is(data?: Record<string, any>): data is ConversationOption;
isFull(data?: Record<string, any>): data is ConversationOption;
};
//# sourceMappingURL=protocol.d.ts.map