@tdesign-react/chat 1.0.1 → 1.0.2-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/_util/reactify.js +1 -1
- package/es/_util/useDynamicStyle.js +1 -1
- package/es/chat-actionbar/_example-js/base.d.ts +2 -0
- package/es/chat-actionbar/_example-js/custom.d.ts +2 -0
- package/es/chat-actionbar/_example-js/style.d.ts +2 -0
- package/es/chat-actionbar/index.js +1 -1
- package/es/chat-attachments/_example-js/base.d.ts +2 -0
- package/es/chat-attachments/_example-js/scroll-x.d.ts +2 -0
- package/es/chat-attachments/_example-js/scroll-y.d.ts +2 -0
- package/es/chat-attachments/index.js +1 -1
- package/es/chat-engine/_example-js/agui-basic.d.ts +10 -0
- package/es/chat-engine/_example-js/agui-comprehensive.d.ts +2 -0
- package/es/chat-engine/_example-js/agui-test.d.ts +11 -0
- package/es/chat-engine/_example-js/agui-toolcall.d.ts +5 -0
- package/es/chat-engine/_example-js/agui-videoclip.d.ts +8 -0
- package/es/chat-engine/_example-js/agui.d.ts +1 -0
- package/es/chat-engine/_example-js/basic.d.ts +9 -0
- package/es/chat-engine/_example-js/components/HotelCard.d.ts +3 -0
- package/es/chat-engine/_example-js/components/HumanInputForm.d.ts +6 -0
- package/es/chat-engine/_example-js/components/HumanInputResult.d.ts +3 -0
- package/es/chat-engine/_example-js/components/ItineraryCard.d.ts +3 -0
- package/es/chat-engine/_example-js/components/PlanningStatePanel.d.ts +4 -0
- package/es/chat-engine/_example-js/components/Toolcall.d.ts +4 -0
- package/es/chat-engine/_example-js/components/WeatherCard.d.ts +3 -0
- package/es/chat-engine/_example-js/components/login.d.ts +1 -0
- package/es/chat-engine/_example-js/comprehensive.d.ts +12 -0
- package/es/chat-engine/_example-js/custom-content.d.ts +1 -0
- package/es/chat-engine/_example-js/hookComponent.d.ts +1 -0
- package/es/chat-engine/_example-js/initial-messages.d.ts +9 -0
- package/es/chat-engine/_example-js/instance-methods.d.ts +13 -0
- package/es/chat-engine/_example-js/travel-actions.d.ts +91 -0
- package/es/chat-engine/_example-js/travelToolcall.d.ts +1 -0
- package/es/chat-engine/components/provider/agent-state.js +1 -1
- package/es/chat-engine/components/toolcall/index.js +1 -1
- package/es/chat-engine/components/toolcall/registry.js +1 -1
- package/es/chat-engine/components/toolcall/render.js +1 -1
- package/es/chat-engine/components/toolcall/types.js +1 -1
- package/es/chat-engine/core/adapters/agui/event-mapper.d.ts +104 -0
- package/es/chat-engine/core/adapters/agui/event-mapper.js +348 -0
- package/es/chat-engine/core/adapters/agui/event-mapper.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/events.d.ts +1394 -0
- package/es/chat-engine/core/adapters/agui/events.js +181 -0
- package/es/chat-engine/core/adapters/agui/events.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/index.d.ts +75 -0
- package/es/chat-engine/core/adapters/agui/index.js +165 -0
- package/es/chat-engine/core/adapters/agui/index.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/state-manager.d.ts +99 -0
- package/es/chat-engine/core/adapters/agui/state-manager.js +168 -0
- package/es/chat-engine/core/adapters/agui/state-manager.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/types.d.ts +760 -0
- package/es/chat-engine/core/adapters/agui/types.js +89 -0
- package/es/chat-engine/core/adapters/agui/types.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/utils.d.ts +180 -0
- package/es/chat-engine/core/adapters/agui/utils.js +302 -0
- package/es/chat-engine/core/adapters/agui/utils.js.map +1 -0
- package/es/chat-engine/core/index.d.ts +132 -0
- package/es/chat-engine/core/index.js +597 -0
- package/es/chat-engine/core/index.js.map +1 -0
- package/es/chat-engine/core/processor/index.d.ts +20 -0
- package/es/chat-engine/core/processor/index.js +146 -0
- package/es/chat-engine/core/processor/index.js.map +1 -0
- package/es/chat-engine/core/server/batch-client.d.ts +20 -0
- package/es/chat-engine/core/server/batch-client.js +114 -0
- package/es/chat-engine/core/server/batch-client.js.map +1 -0
- package/es/chat-engine/core/server/connection-manager.d.ts +39 -0
- package/es/chat-engine/core/server/connection-manager.js +84 -0
- package/es/chat-engine/core/server/connection-manager.js.map +1 -0
- package/es/chat-engine/core/server/errors.d.ts +22 -0
- package/es/chat-engine/core/server/errors.js +80 -0
- package/es/chat-engine/core/server/errors.js.map +1 -0
- package/es/chat-engine/core/server/index.d.ts +11 -0
- package/es/chat-engine/core/server/index.js +26 -0
- package/es/chat-engine/core/server/index.js.map +1 -0
- package/es/chat-engine/core/server/llm-service.d.ts +44 -0
- package/es/chat-engine/core/server/llm-service.js +198 -0
- package/es/chat-engine/core/server/llm-service.js.map +1 -0
- package/es/chat-engine/core/server/sse-client.d.ts +77 -0
- package/es/chat-engine/core/server/sse-client.js +362 -0
- package/es/chat-engine/core/server/sse-client.js.map +1 -0
- package/es/chat-engine/core/server/sse-parser.d.ts +49 -0
- package/es/chat-engine/core/server/sse-parser.js +116 -0
- package/es/chat-engine/core/server/sse-parser.js.map +1 -0
- package/es/chat-engine/core/server/types.d.ts +54 -0
- package/es/chat-engine/core/server/types.js +28 -0
- package/es/chat-engine/core/server/types.js.map +1 -0
- package/es/chat-engine/core/store/message.d.ts +27 -0
- package/es/chat-engine/core/store/message.js +263 -0
- package/es/chat-engine/core/store/message.js.map +1 -0
- package/es/chat-engine/core/store/model.d.ts +8 -0
- package/es/chat-engine/core/store/model.js +65 -0
- package/es/chat-engine/core/store/model.js.map +1 -0
- package/es/chat-engine/core/store/reactiveState.d.ts +52 -0
- package/es/chat-engine/core/store/reactiveState.js +1359 -0
- package/es/chat-engine/core/store/reactiveState.js.map +1 -0
- package/es/chat-engine/core/type.d.ts +248 -0
- package/es/chat-engine/core/type.js +7 -0
- package/es/chat-engine/core/type.js.map +1 -0
- package/es/chat-engine/core/utils/eventEmitter.d.ts +10 -0
- package/es/chat-engine/core/utils/eventEmitter.js +67 -0
- package/es/chat-engine/core/utils/eventEmitter.js.map +1 -0
- package/es/chat-engine/core/utils/index.d.ts +32 -0
- package/es/chat-engine/core/utils/index.js +996 -0
- package/es/chat-engine/core/utils/index.js.map +1 -0
- package/es/chat-engine/core/utils/logger.d.ts +30 -0
- package/es/chat-engine/core/utils/logger.js +87 -0
- package/es/chat-engine/core/utils/logger.js.map +1 -0
- package/es/chat-engine/hooks/useAgentState.js +1 -1
- package/es/chat-engine/hooks/useAgentToolcall.js +1 -1
- package/es/chat-engine/hooks/useChat.js +1 -1
- package/es/chat-engine/index.js +1 -1
- package/es/chat-filecard/_example-js/base.d.ts +1 -0
- package/es/chat-filecard/index.js +1 -1
- package/es/chat-loading/_example-js/base.d.ts +2 -0
- package/es/chat-loading/_example-js/text.d.ts +2 -0
- package/es/chat-loading/index.js +1 -1
- package/es/chat-markdown/_example-js/base.d.ts +1 -0
- package/es/chat-markdown/_example-js/custom.d.ts +2 -0
- package/es/chat-markdown/_example-js/event.d.ts +1 -0
- package/es/chat-markdown/_example-js/footnote.d.ts +2 -0
- package/es/chat-markdown/_example-js/plugin.d.ts +2 -0
- package/es/chat-markdown/_example-js/theme.d.ts +2 -0
- package/es/chat-markdown/index.js +1 -1
- package/es/chat-message/_example-js/action.d.ts +1 -0
- package/es/chat-message/_example-js/base.d.ts +1 -0
- package/es/chat-message/_example-js/configure.d.ts +1 -0
- package/es/chat-message/_example-js/content.d.ts +1 -0
- package/es/chat-message/_example-js/custom.d.ts +1 -0
- package/es/chat-message/_example-js/handle-actions.d.ts +7 -0
- package/es/chat-message/_example-js/status.d.ts +1 -0
- package/es/chat-message/_example-js/think.d.ts +1 -0
- package/es/chat-message/index.js +1 -1
- package/es/chat-sender/_example-js/attachment.d.ts +2 -0
- package/es/chat-sender/_example-js/base.d.ts +2 -0
- package/es/chat-sender/_example-js/custom.d.ts +2 -0
- package/es/chat-sender/index.js +1 -1
- package/es/chat-thinking/_example-js/base.d.ts +1 -0
- package/es/chat-thinking/_example-js/style.d.ts +1 -0
- package/es/chat-thinking/index.js +1 -1
- package/es/chatbot/_example-js/agent.d.ts +1 -0
- package/es/chatbot/_example-js/agui.d.ts +13 -0
- package/es/chatbot/_example-js/backup/travel.d.ts +1 -0
- package/es/chatbot/_example-js/basic.d.ts +1 -0
- package/es/chatbot/_example-js/code.d.ts +1 -0
- package/es/chatbot/_example-js/components/ItineraryCard.d.ts +3 -0
- package/es/chatbot/_example-js/components/login.d.ts +1 -0
- package/es/chatbot/_example-js/comprehensive.d.ts +1 -0
- package/es/chatbot/_example-js/custom-content.d.ts +1 -0
- package/es/chatbot/_example-js/custom-merge.d.ts +1 -0
- package/es/chatbot/_example-js/custom.d.ts +1 -0
- package/es/chatbot/_example-js/docs.d.ts +1 -0
- package/es/chatbot/_example-js/image.d.ts +1 -0
- package/es/chatbot/_example-js/initial-messages.d.ts +9 -0
- package/es/chatbot/_example-js/instance-methods.d.ts +14 -0
- package/es/chatbot/_example-js/nostream.d.ts +1 -0
- package/es/chatbot/_example-js/quick-start.d.ts +9 -0
- package/es/chatbot/_example-js/research.d.ts +1 -0
- package/es/chatbot/_example-js/role-message-config.d.ts +22 -0
- package/es/chatbot/_example-js/sender-config.d.ts +20 -0
- package/es/chatbot/_example-js/service-config.d.ts +17 -0
- package/es/chatbot/_example-js/simple.d.ts +1 -0
- package/es/chatbot/_example-js/utils/messageRenderer.d.ts +5 -0
- package/es/chatbot/index.js +1 -1
- package/es/index.d.ts +0 -1
- package/es/index.js +1 -1
- package/es/style/index.js +1 -1
- package/package.json +4 -6
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { MessageStore } from './store/message';
|
|
2
|
+
import type { AIMessageContent, ChatMessagesData, ChatMessageSetterMode, ChatRequestParams, ChatServiceConfigSetter, ChatStatus, IChatEngine, ToolCall } from './type';
|
|
3
|
+
export default class ChatEngine implements IChatEngine {
|
|
4
|
+
messageStore: MessageStore;
|
|
5
|
+
private messageProcessor;
|
|
6
|
+
private llmService;
|
|
7
|
+
private config;
|
|
8
|
+
private lastRequestParams;
|
|
9
|
+
private stopReceive;
|
|
10
|
+
private aguiAdapter;
|
|
11
|
+
constructor();
|
|
12
|
+
/**
|
|
13
|
+
* 获取当前所有消息
|
|
14
|
+
* @returns 消息数组
|
|
15
|
+
* @description 返回消息存储中的所有消息
|
|
16
|
+
*/
|
|
17
|
+
get messages(): ChatMessagesData[];
|
|
18
|
+
/**
|
|
19
|
+
* 获取当前聊天状态
|
|
20
|
+
* @returns 聊天状态:'idle'、'pending'、'streaming'、'complete'、'stop'或'error'
|
|
21
|
+
* @description 返回最后一条消息的状态,如果没有消息则返回'idle'
|
|
22
|
+
*/
|
|
23
|
+
get status(): ChatStatus;
|
|
24
|
+
/**
|
|
25
|
+
* 销毁聊天引擎实例
|
|
26
|
+
* @description 中止请求,清理消息存储和适配器,释放资源
|
|
27
|
+
*/
|
|
28
|
+
destroy(): void;
|
|
29
|
+
/**
|
|
30
|
+
* 初始化聊天引擎
|
|
31
|
+
* @param configSetter 聊天服务配置或配置生成函数
|
|
32
|
+
* @param initialMessages 初始消息列表,用于恢复历史对话
|
|
33
|
+
* @description 设置初始消息、配置服务参数,并根据协议类型初始化适配器
|
|
34
|
+
*/
|
|
35
|
+
init(configSetter: ChatServiceConfigSetter, initialMessages?: ChatMessagesData[]): void;
|
|
36
|
+
/**
|
|
37
|
+
* 发送用户消息并获取AI回复
|
|
38
|
+
* @param requestParams 请求参数,包含用户输入的文本和附件
|
|
39
|
+
* @param sendRequest 是否立即发送
|
|
40
|
+
* @description 创建用户消息和AI消息,并发送请求获取AI回复
|
|
41
|
+
*/
|
|
42
|
+
sendUserMessage(requestParams: ChatRequestParams, sendRequest?: boolean): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* 发送系统消息
|
|
45
|
+
* @param msg 系统消息文本内容
|
|
46
|
+
* @description 创建并存储一条系统消息,通常用于设置上下文或控制对话流程
|
|
47
|
+
*/
|
|
48
|
+
sendSystemMessage(msg: string): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* 手动发送AI消息
|
|
51
|
+
* @param options 包含请求参数params、发送消息内容content和是否发送请求的标志sendRequest
|
|
52
|
+
* @description 创建并存储一条AI消息,可选择是否同时发送请求
|
|
53
|
+
*/
|
|
54
|
+
sendAIMessage(options?: {
|
|
55
|
+
params?: ChatRequestParams;
|
|
56
|
+
content?: AIMessageContent[];
|
|
57
|
+
sendRequest?: boolean;
|
|
58
|
+
}): Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* 中止当前进行中的聊天请求
|
|
61
|
+
* @description 停止接收流式响应,关闭连接,并调用配置的onAbort回调
|
|
62
|
+
*/
|
|
63
|
+
abortChat(): Promise<void>;
|
|
64
|
+
/**
|
|
65
|
+
* 注册内容块合并策略
|
|
66
|
+
* @param type 内容类型,如'text'、'markdown'等
|
|
67
|
+
* @param handler 合并处理函数,接收新块和现有块,返回合并后的内容块
|
|
68
|
+
* @description 用于自定义不同类型内容的增量更新逻辑
|
|
69
|
+
*/
|
|
70
|
+
registerMergeStrategy<T extends AIMessageContent>(type: T['type'], // 使用类型中定义的type字段作为参数类型
|
|
71
|
+
handler: (chunk: T, existing?: T) => T): void;
|
|
72
|
+
/**
|
|
73
|
+
* 设置消息列表
|
|
74
|
+
* @param messages 要设置的消息数组
|
|
75
|
+
* @param mode 设置模式:'replace'(替换)、'prepend'(前置)、'append'(追加),默认为'replace'
|
|
76
|
+
* @description 用于批量更新消息,如加载历史消息或重置对话
|
|
77
|
+
*/
|
|
78
|
+
setMessages(messages: ChatMessagesData[], mode?: ChatMessageSetterMode): void;
|
|
79
|
+
/**
|
|
80
|
+
* 清空所有消息
|
|
81
|
+
* @description 清除消息存储中的所有历史记录
|
|
82
|
+
*/
|
|
83
|
+
clearMessages(): void;
|
|
84
|
+
/**
|
|
85
|
+
* 重新生成AI回复
|
|
86
|
+
* @param keepVersion 是否保留历史版本,默认为false
|
|
87
|
+
* @description
|
|
88
|
+
* - 当keepVersion=false时:删除最后一条AI消息,创建新消息并重新请求
|
|
89
|
+
* - 当keepVersion=true时:保留旧消息,创建分支消息并重新请求
|
|
90
|
+
*/
|
|
91
|
+
regenerateAIMessage(keepVersion?: boolean): Promise<void>;
|
|
92
|
+
/**
|
|
93
|
+
* 发送请求获取AI回复
|
|
94
|
+
* @param params 请求参数
|
|
95
|
+
* @description 根据配置选择流式或批量请求模式,处理响应并更新消息状态
|
|
96
|
+
*/
|
|
97
|
+
sendRequest(params: ChatRequestParams): Promise<void>;
|
|
98
|
+
/**
|
|
99
|
+
* 根据名称获取工具调用
|
|
100
|
+
* @param name 工具调用名称
|
|
101
|
+
* @returns 匹配的工具调用对象,如果未找到则返回undefined
|
|
102
|
+
* @description 用于获取特定名称的工具调用信息,仅在AGUI协议下可用
|
|
103
|
+
*/
|
|
104
|
+
getToolcallByName(name: string): ToolCall | undefined;
|
|
105
|
+
private handleBatchRequest;
|
|
106
|
+
private handleError;
|
|
107
|
+
private handleComplete;
|
|
108
|
+
/**
|
|
109
|
+
* 处理流式请求
|
|
110
|
+
* 根据协议类型选择不同的处理策略
|
|
111
|
+
*/
|
|
112
|
+
private handleStreamRequest;
|
|
113
|
+
/**
|
|
114
|
+
* 处理AGUI协议的流式请求
|
|
115
|
+
*/
|
|
116
|
+
private handleAGUIStreamRequest;
|
|
117
|
+
/**
|
|
118
|
+
* 处理默认协议的流式请求
|
|
119
|
+
*/
|
|
120
|
+
private handleDefaultStreamRequest;
|
|
121
|
+
/**
|
|
122
|
+
* 统一处理消息结果
|
|
123
|
+
* 支持单个内容块、多个内容块和增量更新
|
|
124
|
+
*/
|
|
125
|
+
private processMessageResult;
|
|
126
|
+
private convertMessages;
|
|
127
|
+
private setMessageStatus;
|
|
128
|
+
private processContentUpdate;
|
|
129
|
+
}
|
|
130
|
+
export * from './utils';
|
|
131
|
+
export * from './adapters/agui';
|
|
132
|
+
export type * from './type';
|