@tais00/api 0.7.0
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/README.md +612 -0
- package/dist/api/index.d.ts +604 -0
- package/dist/base-request.d.ts +22 -0
- package/dist/enums/index.d.ts +61 -0
- package/dist/index.cjs +3837 -0
- package/dist/index.cjs.LICENSE.txt +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +3791 -0
- package/dist/index.js.LICENSE.txt +1 -0
- package/dist/types/event.d.ts +231 -0
- package/dist/types/file.d.ts +4 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/message.d.ts +143 -0
- package/package.json +61 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import { EventEnum } from '../enums';
|
|
2
|
+
import { IFileType } from './file';
|
|
3
|
+
/**
|
|
4
|
+
* 模型使用的Token信息及费用相关数据
|
|
5
|
+
*/
|
|
6
|
+
export type IUsage = {
|
|
7
|
+
prompt_tokens: number;
|
|
8
|
+
prompt_unit_price: string;
|
|
9
|
+
prompt_price_unit: string;
|
|
10
|
+
prompt_price: string;
|
|
11
|
+
completion_tokens: number;
|
|
12
|
+
completion_unit_price: string;
|
|
13
|
+
completion_price_unit: string;
|
|
14
|
+
completion_price: string;
|
|
15
|
+
total_tokens: number;
|
|
16
|
+
total_price: string;
|
|
17
|
+
currency: string;
|
|
18
|
+
latency: number;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* 知识库引用对象
|
|
22
|
+
*/
|
|
23
|
+
export interface IRetrieverResource {
|
|
24
|
+
/**
|
|
25
|
+
* 知识库引用对象的唯一标识符
|
|
26
|
+
*/
|
|
27
|
+
id: string;
|
|
28
|
+
/**
|
|
29
|
+
* 关联的消息的唯一标识符
|
|
30
|
+
*/
|
|
31
|
+
message_id: string;
|
|
32
|
+
/**
|
|
33
|
+
* 知识库引用在消息中的位置
|
|
34
|
+
*/
|
|
35
|
+
position: number;
|
|
36
|
+
/**
|
|
37
|
+
* 数据集的唯一标识符
|
|
38
|
+
*/
|
|
39
|
+
dataset_id: string;
|
|
40
|
+
/**
|
|
41
|
+
* 数据集的名称
|
|
42
|
+
*/
|
|
43
|
+
dataset_name: string;
|
|
44
|
+
/**
|
|
45
|
+
* 文档的唯一标识符
|
|
46
|
+
*/
|
|
47
|
+
document_id: string;
|
|
48
|
+
/**
|
|
49
|
+
* 文档的名称
|
|
50
|
+
*/
|
|
51
|
+
document_name: string;
|
|
52
|
+
/**
|
|
53
|
+
* 数据源的类型
|
|
54
|
+
*/
|
|
55
|
+
data_source_type: string;
|
|
56
|
+
/**
|
|
57
|
+
* 文档片段的唯一标识符
|
|
58
|
+
*/
|
|
59
|
+
segment_id: string;
|
|
60
|
+
/**
|
|
61
|
+
* 匹配得分
|
|
62
|
+
*/
|
|
63
|
+
score: number;
|
|
64
|
+
/**
|
|
65
|
+
* 命中次数
|
|
66
|
+
*/
|
|
67
|
+
hit_count: number;
|
|
68
|
+
/**
|
|
69
|
+
* 文档片段的字数
|
|
70
|
+
*/
|
|
71
|
+
word_count: number;
|
|
72
|
+
/**
|
|
73
|
+
* 文档片段在文档中的位置
|
|
74
|
+
*/
|
|
75
|
+
segment_position: number;
|
|
76
|
+
/**
|
|
77
|
+
* 索引节点的哈希值
|
|
78
|
+
*/
|
|
79
|
+
index_node_hash: string;
|
|
80
|
+
/**
|
|
81
|
+
* 文档片段的内容
|
|
82
|
+
*/
|
|
83
|
+
content: string;
|
|
84
|
+
/**
|
|
85
|
+
* 知识库引用对象创建的时间戳
|
|
86
|
+
*/
|
|
87
|
+
created_at: number;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* 消息事件
|
|
91
|
+
*/
|
|
92
|
+
export type IMessageEvent = {
|
|
93
|
+
event: EventEnum.MESSAGE;
|
|
94
|
+
task_id: string;
|
|
95
|
+
message_id: string;
|
|
96
|
+
conversation_id: string;
|
|
97
|
+
answer: string;
|
|
98
|
+
created_at: number;
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* Agent 消息事件
|
|
102
|
+
*/
|
|
103
|
+
export type IAgentMessageEvent = {
|
|
104
|
+
event: EventEnum.AGENT_MESSAGE;
|
|
105
|
+
task_id: string;
|
|
106
|
+
message_id: string;
|
|
107
|
+
conversation_id: string;
|
|
108
|
+
answer: string;
|
|
109
|
+
created_at: number;
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* Agent 思考事件
|
|
113
|
+
*/
|
|
114
|
+
export type IAgentThoughtEvent = {
|
|
115
|
+
event: EventEnum.AGENT_THOUGHT;
|
|
116
|
+
id: string;
|
|
117
|
+
task_id: string;
|
|
118
|
+
message_id: string;
|
|
119
|
+
position: number;
|
|
120
|
+
thought: string;
|
|
121
|
+
observation: string;
|
|
122
|
+
tool: string;
|
|
123
|
+
tool_input: string;
|
|
124
|
+
created_at: number;
|
|
125
|
+
message_files: string[];
|
|
126
|
+
file_id: string;
|
|
127
|
+
conversation_id: string;
|
|
128
|
+
};
|
|
129
|
+
/**
|
|
130
|
+
* Agent 思考对象
|
|
131
|
+
*/
|
|
132
|
+
export type IAgentThought = Omit<IAgentThoughtEvent, 'event'>;
|
|
133
|
+
/**
|
|
134
|
+
* 文件消息事件
|
|
135
|
+
*/
|
|
136
|
+
export type IMessageFileEvent = {
|
|
137
|
+
event: EventEnum.MESSAGE_FILE;
|
|
138
|
+
id: string;
|
|
139
|
+
type: IFileType;
|
|
140
|
+
belongs_to: 'user' | 'assistant';
|
|
141
|
+
url: string;
|
|
142
|
+
conversation_id: string;
|
|
143
|
+
};
|
|
144
|
+
/**
|
|
145
|
+
* 消息结束事件
|
|
146
|
+
*/
|
|
147
|
+
export type IMessageEndEvent = {
|
|
148
|
+
event: EventEnum.MESSAGE_END;
|
|
149
|
+
task_id: string;
|
|
150
|
+
message_id: string;
|
|
151
|
+
conversation_id: string;
|
|
152
|
+
metadata: Record<string, unknown>;
|
|
153
|
+
usage: IUsage;
|
|
154
|
+
retriever_resources: IRetrieverResource[];
|
|
155
|
+
};
|
|
156
|
+
/**
|
|
157
|
+
* TTS消息事件
|
|
158
|
+
*/
|
|
159
|
+
export type ITTSMessageEvent = {
|
|
160
|
+
event: EventEnum.TTS_MESSAGE;
|
|
161
|
+
task_id: string;
|
|
162
|
+
message_id: string;
|
|
163
|
+
audio: string;
|
|
164
|
+
created_at: number;
|
|
165
|
+
};
|
|
166
|
+
/**
|
|
167
|
+
* TTS消息结束事件
|
|
168
|
+
*/
|
|
169
|
+
export type ITTSMessageEndEvent = {
|
|
170
|
+
event: EventEnum.TTS_MESSAGE_END;
|
|
171
|
+
task_id: string;
|
|
172
|
+
message_id: string;
|
|
173
|
+
audio: '';
|
|
174
|
+
created_at: number;
|
|
175
|
+
};
|
|
176
|
+
/**
|
|
177
|
+
* 消息替换事件
|
|
178
|
+
*/
|
|
179
|
+
export type IMessageReplaceEvent = {
|
|
180
|
+
event: EventEnum.MESSAGE_REPLACE;
|
|
181
|
+
task_id: string;
|
|
182
|
+
message_id: string;
|
|
183
|
+
conversation_id: string;
|
|
184
|
+
answer: string;
|
|
185
|
+
created_at: number;
|
|
186
|
+
};
|
|
187
|
+
/**
|
|
188
|
+
* 错误事件
|
|
189
|
+
*/
|
|
190
|
+
export type IErrorEvent = {
|
|
191
|
+
event: EventEnum.ERROR;
|
|
192
|
+
task_id: string;
|
|
193
|
+
message_id: string;
|
|
194
|
+
status: number;
|
|
195
|
+
code: string;
|
|
196
|
+
message: string;
|
|
197
|
+
};
|
|
198
|
+
/**
|
|
199
|
+
* 心跳事件
|
|
200
|
+
*/
|
|
201
|
+
export type IPingEvent = {
|
|
202
|
+
event: EventEnum.PING;
|
|
203
|
+
};
|
|
204
|
+
/**
|
|
205
|
+
* 工作流开始事件
|
|
206
|
+
*/
|
|
207
|
+
export type IWorkflowStartedEvent = {
|
|
208
|
+
event: EventEnum.WORKFLOW_STARTED;
|
|
209
|
+
};
|
|
210
|
+
/**
|
|
211
|
+
* 工作流完成事件
|
|
212
|
+
*/
|
|
213
|
+
export type IWorkflowFinishedEvent = {
|
|
214
|
+
event: EventEnum.WORKFLOW_FINISHED;
|
|
215
|
+
};
|
|
216
|
+
/**
|
|
217
|
+
* 工作流节点开始事件
|
|
218
|
+
*/
|
|
219
|
+
export type IWorkflowNodeStarted = {
|
|
220
|
+
event: EventEnum.WORKFLOW_NODE_STARTED;
|
|
221
|
+
};
|
|
222
|
+
/**
|
|
223
|
+
* 工作流节点完成事件
|
|
224
|
+
*/
|
|
225
|
+
export type IWorkflowNodeFinished = {
|
|
226
|
+
event: EventEnum.WORKFLOW_NODE_FINISHED;
|
|
227
|
+
};
|
|
228
|
+
/**
|
|
229
|
+
* 对话接口流式输出响应
|
|
230
|
+
*/
|
|
231
|
+
export type IChunkChatCompletionResponse = IMessageEvent | IAgentMessageEvent | IAgentThoughtEvent | IMessageFileEvent | IMessageEndEvent | ITTSMessageEvent | ITTSMessageEndEvent | IMessageReplaceEvent | IErrorEvent | IPingEvent | IWorkflowStartedEvent | IWorkflowFinishedEvent | IWorkflowNodeStarted | IWorkflowNodeFinished;
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { IMessageRole } from '@dify-chat/core';
|
|
2
|
+
import { IAgentThought, IRetrieverResource } from './event';
|
|
3
|
+
/**
|
|
4
|
+
* 工作流节点数据
|
|
5
|
+
*/
|
|
6
|
+
export interface IWorkflowNode {
|
|
7
|
+
/**
|
|
8
|
+
* 步骤 ID
|
|
9
|
+
*/
|
|
10
|
+
id: string;
|
|
11
|
+
/**
|
|
12
|
+
* 步骤标题
|
|
13
|
+
*/
|
|
14
|
+
title: string;
|
|
15
|
+
/**
|
|
16
|
+
* 运行状态
|
|
17
|
+
*/
|
|
18
|
+
status: 'init' | 'running' | 'success' | 'error';
|
|
19
|
+
/**
|
|
20
|
+
* 节点类型 question-classifier/问题分类器
|
|
21
|
+
*/
|
|
22
|
+
type: 'question-classifier';
|
|
23
|
+
/**
|
|
24
|
+
* 节点输入 序列化的 JSON 数据
|
|
25
|
+
*/
|
|
26
|
+
inputs: string;
|
|
27
|
+
/**
|
|
28
|
+
* 处理过程 序列化的 JSON 数据
|
|
29
|
+
*/
|
|
30
|
+
process_data: string;
|
|
31
|
+
/**
|
|
32
|
+
* 节点输出 序列化的 JSON 数据
|
|
33
|
+
*/
|
|
34
|
+
outputs: unknown;
|
|
35
|
+
/**
|
|
36
|
+
* 耗时 单位秒
|
|
37
|
+
*/
|
|
38
|
+
elapsed_time: number;
|
|
39
|
+
/**
|
|
40
|
+
* 执行元数据
|
|
41
|
+
*/
|
|
42
|
+
execution_metadata: {
|
|
43
|
+
/**
|
|
44
|
+
* 总共消耗 tokens
|
|
45
|
+
*/
|
|
46
|
+
total_tokens: number;
|
|
47
|
+
/**
|
|
48
|
+
* 总共消耗金额
|
|
49
|
+
*/
|
|
50
|
+
total_price: number;
|
|
51
|
+
/**
|
|
52
|
+
* 货币单位
|
|
53
|
+
*/
|
|
54
|
+
currency: string;
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* 消息对象中的文件 item
|
|
59
|
+
*/
|
|
60
|
+
export interface IMessageFileItem {
|
|
61
|
+
id: string;
|
|
62
|
+
filename: string;
|
|
63
|
+
type: string;
|
|
64
|
+
url: string;
|
|
65
|
+
mime_type: string;
|
|
66
|
+
size: number;
|
|
67
|
+
transfer_method: string;
|
|
68
|
+
belongs_to: string;
|
|
69
|
+
upload_file_id?: string;
|
|
70
|
+
}
|
|
71
|
+
export interface IAgentMessage {
|
|
72
|
+
/**
|
|
73
|
+
* 工作流信息
|
|
74
|
+
*/
|
|
75
|
+
workflows?: {
|
|
76
|
+
/**
|
|
77
|
+
* 整个工作流的运行状态 running-运行中,finished-已完成
|
|
78
|
+
*/
|
|
79
|
+
status?: 'running' | 'finished';
|
|
80
|
+
/**
|
|
81
|
+
* 工作流的节点详细信息
|
|
82
|
+
*/
|
|
83
|
+
nodes?: IWorkflowNode[];
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* 文件列表
|
|
87
|
+
*/
|
|
88
|
+
files?: IMessageFileItem[];
|
|
89
|
+
/**
|
|
90
|
+
* 消息主体内容
|
|
91
|
+
*/
|
|
92
|
+
content: string;
|
|
93
|
+
/**
|
|
94
|
+
* Agent 思维链信息
|
|
95
|
+
*/
|
|
96
|
+
agentThoughts?: IAgentThought[];
|
|
97
|
+
/**
|
|
98
|
+
* 知识库引用列表
|
|
99
|
+
*/
|
|
100
|
+
retrieverResources?: IRetrieverResource[];
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* 反馈操作类型 like-点赞, dislike-点踩 null-取消
|
|
104
|
+
*/
|
|
105
|
+
export type IRating = 'like' | 'dislike' | null;
|
|
106
|
+
/**
|
|
107
|
+
* 用于渲染的消息数据对象
|
|
108
|
+
*/
|
|
109
|
+
export interface IMessageItem4Render extends IAgentMessage {
|
|
110
|
+
/**
|
|
111
|
+
* 消息 ID
|
|
112
|
+
*/
|
|
113
|
+
id: string;
|
|
114
|
+
/**
|
|
115
|
+
* 消息状态(与 @ant-design/x/es/use-x-chat 保持一致)
|
|
116
|
+
*/
|
|
117
|
+
status: 'local' | 'loading' | 'success' | 'error';
|
|
118
|
+
/**
|
|
119
|
+
* 当 status 为 error 时, 返回的错误信息
|
|
120
|
+
*/
|
|
121
|
+
error?: string;
|
|
122
|
+
/**
|
|
123
|
+
* 角色
|
|
124
|
+
*/
|
|
125
|
+
role: IMessageRole;
|
|
126
|
+
/**
|
|
127
|
+
* 是否为历史消息
|
|
128
|
+
*/
|
|
129
|
+
isHistory?: boolean;
|
|
130
|
+
/**
|
|
131
|
+
* 用户对消息的反馈
|
|
132
|
+
*/
|
|
133
|
+
feedback?: {
|
|
134
|
+
/**
|
|
135
|
+
* 操作类型
|
|
136
|
+
*/
|
|
137
|
+
rating: IRating;
|
|
138
|
+
};
|
|
139
|
+
/**
|
|
140
|
+
* 消息创建时间(YYYY-MM-DD HH:mm:ss)
|
|
141
|
+
*/
|
|
142
|
+
created_at: string;
|
|
143
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@tais00/api",
|
|
3
|
+
"version": "0.7.0",
|
|
4
|
+
"author": {
|
|
5
|
+
"name": "lexmin0412",
|
|
6
|
+
"email": "zhangle_dev@outlook.com",
|
|
7
|
+
"url": "http://github.com/lexmin0412"
|
|
8
|
+
},
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "git+https://github.com/lexmin0412/dify-chat.git",
|
|
12
|
+
"directory": "packages/api"
|
|
13
|
+
},
|
|
14
|
+
"source": "./src/index.ts",
|
|
15
|
+
"files": [
|
|
16
|
+
"dist"
|
|
17
|
+
],
|
|
18
|
+
"type": "module",
|
|
19
|
+
"main": "./dist/index.cjs",
|
|
20
|
+
"module": "./dist/index.js",
|
|
21
|
+
"types": "./dist/index.d.ts",
|
|
22
|
+
"exports": {
|
|
23
|
+
".": {
|
|
24
|
+
"types": "./dist/index.d.ts",
|
|
25
|
+
"source": "./src/index.ts",
|
|
26
|
+
"import": "./dist/index.js",
|
|
27
|
+
"require": "./dist/index.cjs"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"publishConfig": {
|
|
31
|
+
"access": "public",
|
|
32
|
+
"registry": "https://registry.npmjs.org"
|
|
33
|
+
},
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"@tais00/core": "^0.7.0",
|
|
36
|
+
"@tais00/helpers": "^0.7.0"
|
|
37
|
+
},
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"@biomejs/biome": "^1.9.4",
|
|
40
|
+
"@rslib/core": "^0.12.4",
|
|
41
|
+
"@types/node": "^22.14.1",
|
|
42
|
+
"@types/react": "^19.2.7",
|
|
43
|
+
"@types/react-dom": "^19.2.3",
|
|
44
|
+
"react": "^19.2.3",
|
|
45
|
+
"react-dom": "^19.2.3",
|
|
46
|
+
"typescript": "^5.9.3",
|
|
47
|
+
"vitest": "^3.2.3"
|
|
48
|
+
},
|
|
49
|
+
"peerDependencies": {
|
|
50
|
+
"antd": ">=5.0.0",
|
|
51
|
+
"react": ">=16.9.0",
|
|
52
|
+
"react-dom": ">=16.9.0"
|
|
53
|
+
},
|
|
54
|
+
"scripts": {
|
|
55
|
+
"build": "rslib build",
|
|
56
|
+
"check": "biome check --write",
|
|
57
|
+
"dev": "rslib build --watch",
|
|
58
|
+
"format": "biome format --write",
|
|
59
|
+
"test": "vitest run"
|
|
60
|
+
}
|
|
61
|
+
}
|