sg-paisou 0.0.0 → 0.0.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/README.npm.md +322 -0
- package/dist/ai-chat-sdk.es.js +22610 -0
- package/dist/ai-chat-sdk.es.js.map +1 -0
- package/dist/ai-chat-sdk.umd.js +300 -0
- package/dist/ai-chat-sdk.umd.js.map +1 -0
- package/dist/style.css +1 -0
- package/dist/types/index.d.ts +48 -0
- package/package.json +58 -11
- package/.idea/GitCommitMessageStorage.xml +0 -8
- package/.idea/modules.xml +0 -8
- package/.idea/sg-paisou-web.iml +0 -12
- package/.idea/vcs.xml +0 -6
- package/.vscode/settings.json +0 -2
- package/auto-imports.d.ts +0 -10
- package/components.d.ts +0 -18
- package/index.html +0 -21
- package/src/App.vue +0 -38
- package/src/assets/images/Camera-icon.png +0 -0
- package/src/assets/images/anger.png +0 -0
- package/src/assets/images/answer-icon.png +0 -0
- package/src/assets/images/back.png +0 -0
- package/src/assets/images/bg-img.png +0 -0
- package/src/assets/images/collect.png +0 -0
- package/src/assets/images/collected.png +0 -0
- package/src/assets/images/empty-bookmark.png +0 -0
- package/src/assets/images/empty-history.png +0 -0
- package/src/assets/images/feedback-thinkie-img.png +0 -0
- package/src/assets/images/history.png +0 -0
- package/src/assets/images/image 5.png +0 -0
- package/src/assets/images/insolubility.png +0 -0
- package/src/assets/images/key-points.png +0 -0
- package/src/assets/images/photograph-icon.png +0 -0
- package/src/assets/images/praise-icon.png +0 -0
- package/src/assets/images/praiseing-icon.png +0 -0
- package/src/assets/images/question.png +0 -0
- package/src/assets/images/smiling.png +0 -0
- package/src/assets/images/solution-icon.png +0 -0
- package/src/assets/images/star-icon.png +0 -0
- package/src/assets/images/trample-icon.png +0 -0
- package/src/assets/images/trampleing-icon.png +0 -0
- package/src/assets/images/volume-icon.png +0 -0
- package/src/assets/images/volumeing-icon.png +0 -0
- package/src/components/AIChatSDK/AIChatComponent.vue +0 -963
- package/src/components/AIChatSDK/component/Dialogs.vue +0 -340
- package/src/components/AIChatSDK/component/SpecialQuestions.vue +0 -208
- package/src/components/AIChatSDK/index.ts +0 -146
- package/src/components/AIChatSDK/style.scss +0 -432
- package/src/components/AIChatSDK/utils/imageUtils.ts +0 -61
- package/src/components/AIChatSDK/utils/latex.ts +0 -34
- package/src/components/AIChatSDK/utils/mergeConfig.ts +0 -125
- package/src/components/ImagePreview.vue +0 -62
- package/src/components/PageHeader/index.vue +0 -121
- package/src/config.ts +0 -11
- package/src/env.d.ts +0 -11
- package/src/main.ts +0 -12
- package/src/router.ts +0 -20
- package/src/style.css +0 -33
- package/src/type.ts +0 -106
- package/src/utils/TTS_README.md +0 -232
- package/src/utils/bridge.ts +0 -42
- package/src/utils/index.ts +0 -8
- package/src/utils/listenOsEvent.ts +0 -3
- package/src/utils/messageToast.ts +0 -43
- package/src/utils/render.ts +0 -81
- package/src/utils/request.ts +0 -87
- package/src/utils/tts.ts +0 -319
- package/src/utils/typewriter.ts +0 -61
- package/src/utils/useSSE.ts +0 -113
- package/src/views/History/index.vue +0 -419
- package/src/views/QuestionChatPage/index.vue +0 -480
- package/src/vite-env.d.ts +0 -1
- package/tsconfig.app.json +0 -24
- package/tsconfig.json +0 -7
- package/tsconfig.node.json +0 -22
- package/vite.config.ts +0 -41
- /package/{public → dist}/mathjax/all-packages.js +0 -0
- /package/{public → dist}/mathjax/talEditorConfig.js +0 -0
- /package/{public → dist}/mathjax/tex-svg.js +0 -0
- /package/{src/components/AIChatSDK/types.ts → dist/types/types.d.ts} +0 -0
package/README.npm.md
ADDED
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
# AI Chat SDK
|
|
2
|
+
|
|
3
|
+
一个功能强大的 Vue 3 AI 聊天组件,支持流式消息、TTS 语音播放、反馈系统等功能。
|
|
4
|
+
|
|
5
|
+
## ✨ 特性
|
|
6
|
+
|
|
7
|
+
- 🎨 **完全可配置** - 所有图片、样式、文本都可以自定义
|
|
8
|
+
- 🔊 **TTS 支持** - 内置文本转语音功能,支持流式播放
|
|
9
|
+
- 💬 **流式消息** - 支持 AI 消息的流式接收和打字机效果
|
|
10
|
+
- 📱 **响应式设计** - 适配各种屏幕尺寸
|
|
11
|
+
- 🎭 **反馈系统** - 支持点赞、不喜欢、长按反馈等交互
|
|
12
|
+
- 🖼️ **图片支持** - 支持消息中的图片显示和预览
|
|
13
|
+
- 🎯 **TypeScript** - 完整的类型定义支持
|
|
14
|
+
|
|
15
|
+
## 📦 安装
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npm install @tal/ai-chat-sdk
|
|
19
|
+
# 或
|
|
20
|
+
pnpm add @tal/ai-chat-sdk
|
|
21
|
+
# 或
|
|
22
|
+
yarn add @tal/ai-chat-sdk
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## 🚀 快速开始
|
|
26
|
+
|
|
27
|
+
### 基础使用
|
|
28
|
+
|
|
29
|
+
```vue
|
|
30
|
+
<template>
|
|
31
|
+
<AIChatComponent :config="chatConfig" :questionInfo="questionInfo" />
|
|
32
|
+
</template>
|
|
33
|
+
|
|
34
|
+
<script setup lang="ts">
|
|
35
|
+
import { AIChatComponent, createAIChatConfig } from '@tal/ai-chat-sdk'
|
|
36
|
+
import '@tal/ai-chat-sdk/style.css'
|
|
37
|
+
|
|
38
|
+
const chatConfig = createAIChatConfig({
|
|
39
|
+
aiInfo: {
|
|
40
|
+
name: 'AI Assistant',
|
|
41
|
+
title: 'Your helpful assistant'
|
|
42
|
+
}
|
|
43
|
+
})
|
|
44
|
+
|
|
45
|
+
const questionInfo = {
|
|
46
|
+
sessionId: 'session-123',
|
|
47
|
+
questionType: 1,
|
|
48
|
+
imgUrl: 'https://example.com/question.jpg'
|
|
49
|
+
}
|
|
50
|
+
</script>
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### 自定义配置
|
|
54
|
+
|
|
55
|
+
```typescript
|
|
56
|
+
import { createAIChatConfig, IMAGE_ASSETS } from '@tal/ai-chat-sdk'
|
|
57
|
+
|
|
58
|
+
const config = createAIChatConfig({
|
|
59
|
+
// AI 头像配置
|
|
60
|
+
avatar: {
|
|
61
|
+
src: 'https://your-domain.com/avatar.png', // 或使用内置: IMAGE_ASSETS.maskGroup
|
|
62
|
+
width: '48px',
|
|
63
|
+
height: '48px',
|
|
64
|
+
borderRadius: '50%'
|
|
65
|
+
},
|
|
66
|
+
|
|
67
|
+
// AI 信息配置
|
|
68
|
+
aiInfo: {
|
|
69
|
+
name: 'ChatGPT',
|
|
70
|
+
title: 'AI Assistant',
|
|
71
|
+
nameStyle: {
|
|
72
|
+
color: '#333',
|
|
73
|
+
fontSize: '16px',
|
|
74
|
+
fontWeight: 'bold'
|
|
75
|
+
},
|
|
76
|
+
titleStyle: {
|
|
77
|
+
color: '#666',
|
|
78
|
+
fontSize: '12px'
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
|
|
82
|
+
// 静音按钮配置
|
|
83
|
+
muteButton: {
|
|
84
|
+
soundOnIcon: IMAGE_ASSETS.soundOn, // 使用内置图标
|
|
85
|
+
soundOffIcon: IMAGE_ASSETS.soundOff,
|
|
86
|
+
width: '24px',
|
|
87
|
+
height: '24px'
|
|
88
|
+
},
|
|
89
|
+
|
|
90
|
+
// 反馈按钮配置
|
|
91
|
+
feedback: {
|
|
92
|
+
show: true,
|
|
93
|
+
buttons: [
|
|
94
|
+
{
|
|
95
|
+
id: 'helpful',
|
|
96
|
+
text: 'Helpful',
|
|
97
|
+
icon: IMAGE_ASSETS.smile
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
},
|
|
101
|
+
|
|
102
|
+
// 输入框配置
|
|
103
|
+
input: {
|
|
104
|
+
placeholder: 'Type your message...',
|
|
105
|
+
sendIcon: IMAGE_ASSETS.voiceTube,
|
|
106
|
+
borderRadius: '24px'
|
|
107
|
+
},
|
|
108
|
+
|
|
109
|
+
// 样式配置
|
|
110
|
+
styles: {
|
|
111
|
+
container: {
|
|
112
|
+
background: '#ffffff',
|
|
113
|
+
borderRadius: '16px',
|
|
114
|
+
boxShadow: '0 2px 12px rgba(0,0,0,0.1)'
|
|
115
|
+
},
|
|
116
|
+
header: {
|
|
117
|
+
background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',
|
|
118
|
+
padding: '16px',
|
|
119
|
+
borderRadius: '16px 16px 0 0'
|
|
120
|
+
},
|
|
121
|
+
messages: {
|
|
122
|
+
aiMessage: {
|
|
123
|
+
background: '#f5f5f5',
|
|
124
|
+
color: '#333',
|
|
125
|
+
borderRadius: '12px',
|
|
126
|
+
padding: '12px 16px'
|
|
127
|
+
},
|
|
128
|
+
userMessage: {
|
|
129
|
+
background: '#667eea',
|
|
130
|
+
color: '#ffffff',
|
|
131
|
+
borderRadius: '12px',
|
|
132
|
+
padding: '12px 16px'
|
|
133
|
+
},
|
|
134
|
+
messageGap: '12px'
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
|
|
138
|
+
// 自定义类名
|
|
139
|
+
customClasses: {
|
|
140
|
+
container: 'my-chat-container',
|
|
141
|
+
header: 'my-chat-header',
|
|
142
|
+
chatContent: 'my-chat-content',
|
|
143
|
+
inputContainer: 'my-input-container'
|
|
144
|
+
}
|
|
145
|
+
})
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
## 📚 API 文档
|
|
149
|
+
|
|
150
|
+
### Props
|
|
151
|
+
|
|
152
|
+
#### `config` (IAIChatConfig)
|
|
153
|
+
|
|
154
|
+
聊天组件的配置对象,包含所有可自定义的选项。
|
|
155
|
+
|
|
156
|
+
#### `questionInfo` (Object)
|
|
157
|
+
|
|
158
|
+
题目信息对象,包含以下字段:
|
|
159
|
+
|
|
160
|
+
```typescript
|
|
161
|
+
{
|
|
162
|
+
sessionId: string; // 会话ID
|
|
163
|
+
sessionDetailId?: string; // 会话详情ID
|
|
164
|
+
questionType: number; // 题目类型 (0: 普通题, 1: 其他)
|
|
165
|
+
imgUrl?: string; // 题目图片URL
|
|
166
|
+
imagePath?: string; // 题目图片路径
|
|
167
|
+
orcText?: string; // OCR识别的文本
|
|
168
|
+
}
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### Events
|
|
172
|
+
|
|
173
|
+
```typescript
|
|
174
|
+
// 消息发送事件
|
|
175
|
+
@messageSend="(message: string) => void"
|
|
176
|
+
|
|
177
|
+
// 反馈事件
|
|
178
|
+
@feedback="(feedbackId: string) => void"
|
|
179
|
+
|
|
180
|
+
// 静音切换事件
|
|
181
|
+
@muteToggle="(isMuted: boolean) => void"
|
|
182
|
+
|
|
183
|
+
// "不是我的问题"事件
|
|
184
|
+
@not-my-question="() => void"
|
|
185
|
+
|
|
186
|
+
// "拍另一张"事件
|
|
187
|
+
@snap-another="() => void"
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### 内置图片资源
|
|
191
|
+
|
|
192
|
+
SDK 提供了一组内置的 Base64 编码图片,可以直接使用:
|
|
193
|
+
|
|
194
|
+
```typescript
|
|
195
|
+
import { IMAGE_ASSETS } from '@tal/ai-chat-sdk'
|
|
196
|
+
|
|
197
|
+
IMAGE_ASSETS.maskGroup // AI 头像
|
|
198
|
+
IMAGE_ASSETS.soundOn // 声音开启图标
|
|
199
|
+
IMAGE_ASSETS.soundOff // 声音关闭图标
|
|
200
|
+
IMAGE_ASSETS.smile // 笑脸图标
|
|
201
|
+
IMAGE_ASSETS.confused // 困惑图标
|
|
202
|
+
IMAGE_ASSETS.lightbulb // 灯泡图标
|
|
203
|
+
IMAGE_ASSETS.voiceTube // 发送图标
|
|
204
|
+
IMAGE_ASSETS.userAvatar // 用户头像
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### 预设配置
|
|
208
|
+
|
|
209
|
+
SDK 提供了几个预设配置供快速使用:
|
|
210
|
+
|
|
211
|
+
```typescript
|
|
212
|
+
import { PRESET_CONFIGS } from '@tal/ai-chat-sdk'
|
|
213
|
+
|
|
214
|
+
// 默认配置
|
|
215
|
+
PRESET_CONFIGS.default
|
|
216
|
+
|
|
217
|
+
// 简洁模式
|
|
218
|
+
PRESET_CONFIGS.minimal
|
|
219
|
+
|
|
220
|
+
// 暗色主题
|
|
221
|
+
PRESET_CONFIGS.dark
|
|
222
|
+
|
|
223
|
+
// 紧凑模式
|
|
224
|
+
PRESET_CONFIGS.compact
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
使用示例:
|
|
228
|
+
|
|
229
|
+
```typescript
|
|
230
|
+
const config = PRESET_CONFIGS.dark
|
|
231
|
+
// 或者在预设基础上自定义
|
|
232
|
+
const customConfig = createAIChatConfig({
|
|
233
|
+
...PRESET_CONFIGS.dark,
|
|
234
|
+
aiInfo: {
|
|
235
|
+
name: 'My AI'
|
|
236
|
+
}
|
|
237
|
+
})
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
## 🎨 样式定制
|
|
241
|
+
|
|
242
|
+
### 使用 CSS 变量
|
|
243
|
+
|
|
244
|
+
```css
|
|
245
|
+
:root {
|
|
246
|
+
--ai-chat-primary-color: #667eea;
|
|
247
|
+
--ai-chat-secondary-color: #764ba2;
|
|
248
|
+
--ai-chat-text-color: #333;
|
|
249
|
+
--ai-chat-bg-color: #ffffff;
|
|
250
|
+
}
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
### 覆盖默认样式
|
|
254
|
+
|
|
255
|
+
```css
|
|
256
|
+
/* 自定义消息样式 */
|
|
257
|
+
.ai-message {
|
|
258
|
+
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
|
259
|
+
color: white;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
/* 自定义输入框样式 */
|
|
263
|
+
.chat-input {
|
|
264
|
+
border: 2px solid #667eea;
|
|
265
|
+
border-radius: 24px;
|
|
266
|
+
}
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
## 🔧 高级功能
|
|
270
|
+
|
|
271
|
+
### TTS 语音播放
|
|
272
|
+
|
|
273
|
+
组件内置了 TTS 功能,支持:
|
|
274
|
+
|
|
275
|
+
- 自动播放 AI 消息
|
|
276
|
+
- 手动播放/停止
|
|
277
|
+
- 按段落播放
|
|
278
|
+
- 播放状态显示
|
|
279
|
+
|
|
280
|
+
### 流式消息
|
|
281
|
+
|
|
282
|
+
支持 SSE (Server-Sent Events) 流式消息接收,实现打字机效果。
|
|
283
|
+
|
|
284
|
+
### 反馈系统
|
|
285
|
+
|
|
286
|
+
- 点赞/不喜欢
|
|
287
|
+
- 长按消息显示反馈弹窗
|
|
288
|
+
- 自定义反馈选项
|
|
289
|
+
|
|
290
|
+
## 📝 类型定义
|
|
291
|
+
|
|
292
|
+
完整的 TypeScript 类型定义:
|
|
293
|
+
|
|
294
|
+
```typescript
|
|
295
|
+
import type {
|
|
296
|
+
IAIChatConfig,
|
|
297
|
+
IAIChatSDKProps,
|
|
298
|
+
IMessage,
|
|
299
|
+
IAvatarConfig,
|
|
300
|
+
IAIInfoConfig,
|
|
301
|
+
IMuteButtonConfig,
|
|
302
|
+
IFeedbackButton,
|
|
303
|
+
IFeedbackConfig,
|
|
304
|
+
IInputConfig,
|
|
305
|
+
IStyleConfig,
|
|
306
|
+
IMessageStyle
|
|
307
|
+
} from '@tal/ai-chat-sdk'
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
## 🤝 贡献
|
|
311
|
+
|
|
312
|
+
欢迎提交 Issue 和 Pull Request!
|
|
313
|
+
|
|
314
|
+
## 📄 License
|
|
315
|
+
|
|
316
|
+
MIT
|
|
317
|
+
|
|
318
|
+
## 🔗 相关链接
|
|
319
|
+
|
|
320
|
+
- [GitHub Repository](https://github.com/tal-tech/ai-chat-sdk)
|
|
321
|
+
- [Issue Tracker](https://github.com/tal-tech/ai-chat-sdk/issues)
|
|
322
|
+
- [Changelog](https://github.com/tal-tech/ai-chat-sdk/blob/main/CHANGELOG.md)
|