添加聊天气泡设计图
This commit is contained in:
@@ -270,23 +270,23 @@ graph TD
|
||||
|
||||
- **需求说明**
|
||||
- 文本气泡:展示普通文字对话内容,完整支持Markdown格式;
|
||||
|
||||
Markdown支持包括普通文本格式化、表格布局以及图片嵌入,提供更丰富的内容展示方式
|
||||
|
||||
- 卡片气泡:用于展示结构化信息,如车辆信息、维保记录等;
|
||||
- 按钮气泡:包含可交互按钮,用于快速回复或执行操作;
|
||||
- 富媒体气泡:支持图片、视频、语音等多媒体内容展示;
|
||||
|
||||
富媒体气泡可能适用于显示特定的信息,或者是视频的教程,轮播的图片
|
||||
|
||||
- 链接气泡:用于显示一个链接,包含Icon,Title,Description,以及一个可以点击的链接;
|
||||
|
||||
点击链接可以进入webview,链接气泡主要是用于详细介绍某些活动或者查看详情
|
||||
|
||||
- 业务气泡:用于特定业务的定制化气泡,会根据对话的业务场景,显示不同的气泡。
|
||||
|
||||
业务气泡不同于其他的气泡,可以在用户询问金融方案后显示返回的计算结果,在结果后面还有一个按钮,可以进入金融计算器的页面;同时在用户说出我希望订购某款车型时,会出现车型的信息,并且有一个立即订购的按钮。业务气泡是根据返回的数据来判断具体的业务场景,混合显示的气泡类型。
|
||||
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
#### **3.3.2 普通问答流程**
|
||||
|
||||
@@ -453,53 +453,54 @@ graph TD
|
||||
```
|
||||
packages/
|
||||
ai_chat_core/
|
||||
ai_chat_core.dart # 对外统一入口
|
||||
src/ # 代码目录
|
||||
models/ # models
|
||||
message.dart # 消息和消息块
|
||||
message_chunk.dart
|
||||
vehicle_command.dart # 车控
|
||||
vehicle_command_response.dart
|
||||
command_result.dart
|
||||
enums/ # enums
|
||||
message_type.dart
|
||||
message_status.dart
|
||||
command_type.dart
|
||||
service_state.dart # 服务状态
|
||||
input/
|
||||
audio_recorder_service.dart # 录音以及保存文件
|
||||
voice_recognition_service.dart # 目前项目未使用
|
||||
wake_word_service.dart # 预留(可选)
|
||||
nlp/ # 自然语言处理相关
|
||||
text_classification_service.dart
|
||||
vehicle_command_service.dart
|
||||
dialog/ #对话相关的
|
||||
chat_channel/
|
||||
chat_sse_service.dart # SSE
|
||||
chat_ws_service.dart # 预留 WebSocket(可选)
|
||||
chat_http_service.dart # 批量 HTTP 方案(可选)
|
||||
message_service.dart # 核心编排/状态更新
|
||||
tts/ # TTS
|
||||
tts_service.dart
|
||||
tts_task_queue.dart
|
||||
command/ # 车控相关
|
||||
command_service.dart # Command Register Callback(已更新为抽象类的方式)
|
||||
vehicle_command_handler.dart # 自定义实现车控命令
|
||||
persistence/ # 持久化
|
||||
persistence_service.dart # 提供持久化服务
|
||||
dao/ # dao
|
||||
message_dao.dart # 消息体的 dao 对象
|
||||
infra/ # infra 的服务
|
||||
config_service.dart
|
||||
redis_service.dart
|
||||
location_service.dart
|
||||
vehicle_state_service.dart # 预留
|
||||
logger.dart
|
||||
error_mapper.dart
|
||||
utils/ # 工具类
|
||||
markdown_cleaner.dart
|
||||
id_generator.dart
|
||||
throttle.dart
|
||||
lib/
|
||||
ai_chat_core.dart # 对外统一入口
|
||||
src/ # 代码目录
|
||||
models/ # models
|
||||
message.dart # 消息和消息块
|
||||
message_chunk.dart
|
||||
vehicle_command.dart # 车控
|
||||
vehicle_command_response.dart
|
||||
command_result.dart
|
||||
enums/ # enums
|
||||
message_type.dart
|
||||
message_status.dart
|
||||
command_type.dart
|
||||
service_state.dart # 服务状态
|
||||
input/
|
||||
audio_recorder_service.dart # 录音以及保存文件
|
||||
voice_recognition_service.dart # 目前项目未使用
|
||||
wake_word_service.dart # 预留(可选)
|
||||
nlp/ # 自然语言处理相关
|
||||
text_classification_service.dart
|
||||
vehicle_command_service.dart
|
||||
dialog/ #对话相关的
|
||||
chat_channel/
|
||||
chat_sse_service.dart # SSE
|
||||
chat_ws_service.dart # 预留 WebSocket(可选)
|
||||
chat_http_service.dart # 批量 HTTP 方案(可选)
|
||||
message_service.dart # 核心编排/状态更新
|
||||
tts/ # TTS
|
||||
tts_service.dart
|
||||
tts_task_queue.dart
|
||||
command/ # 车控相关
|
||||
command_service.dart # Command Register Callback(已更新为抽象类的方式)
|
||||
vehicle_command_handler.dart # 自定义实现车控命令
|
||||
persistence/ # 持久化
|
||||
persistence_service.dart # 提供持久化服务
|
||||
dao/ # dao
|
||||
message_dao.dart # 消息体的 dao 对象
|
||||
infra/ # infra 的服务
|
||||
config_service.dart
|
||||
redis_service.dart
|
||||
location_service.dart
|
||||
vehicle_state_service.dart # 预留
|
||||
logger.dart
|
||||
error_mapper.dart
|
||||
utils/ # 工具类
|
||||
markdown_cleaner.dart
|
||||
id_generator.dart
|
||||
throttle.dart
|
||||
```
|
||||
|
||||
对外暴露(ai_chat_core.dart)仅导出:
|
||||
@@ -638,10 +639,46 @@ class MessageService {
|
||||
}
|
||||
```
|
||||
|
||||
#### **4.1.6 编译与分发说明(path 子包 vs 单包)**
|
||||
- 当前结构:插件(ai_chat_assistant)+ 仓库内 path 依赖(packages/ai_chat_core、packages/basic_intl)。
|
||||
|
||||
- 下游集成(pubspec)仅需:
|
||||
```yaml
|
||||
ai_chat_assistant:
|
||||
git:
|
||||
url: <repo_url>
|
||||
ref: <branch_or_tag>
|
||||
```
|
||||
- Flutter 构建行为:
|
||||
1. 克隆仓库 → 解析主插件 pubspec → 解析 path 子包 → 汇总全部 Dart 源码。
|
||||
2. Debug:JIT,Release:统一 AOT 编译为一个 snapshot(无包边界差异)。
|
||||
- 性能与产物差异:将子包“内联”进 lib/ 与保持 path 组织,在编译后无本质差异(tree shaking 后输出等价)。
|
||||
- 适用场景对比:
|
||||
| 目标 | 保持多包 | 合并单包 |
|
||||
| ---- | -------- | -------- |
|
||||
| 代码隔离 / 复用 | 优 | 弱 |
|
||||
| 发布到 pub.dev | 需逐包发布 | 更简单 |
|
||||
| 测试隔离性 | 优 | 一般 |
|
||||
| 用户认知成本 | 稍高 | 低 |
|
||||
- 暂不需发布:保持 path 结构即可;若未来开放生态 → 发布次序:ai_chat_core → basic_intl → ai_chat_assistant。
|
||||
|
||||
#### **4.1.7 AAR 与闭源分发说明**
|
||||
| 诉求 | 可行性 | 说明 |
|
||||
| ---- | ------ | ---- |
|
||||
| 给“另一个 Flutter App”仅提供预编译 AAR 使用 | 不推荐/不可行 | Flutter 仍需源文件参与整体编译流程 |
|
||||
| 给纯原生 Android App 内嵌使用 | 可用 `flutter build aar` | 适用于“原生 App 集成 Flutter 模块”,不是插件分发 |
|
||||
| Dart 逻辑闭源 | 官方未支持 | 只能转移核心到 native/FFI 或服务端 |
|
||||
|
||||
结论:对 Flutter 使用方,直接 Git 依赖即可,无需 AAR。
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
## 参考文件
|
||||
|
||||
[AI Assistant in One App.pdf](https://telekom-my.sharepoint.de/:b:/r/personal/guangfei_zhao_t-systems_com/Documents/Dokumente/AI%20Assistant%20in%20One%20App.pdf?csf=1&web=1&e=On4V2o)
|
||||
> [AI Assistant in One App.pdf](https://telekom-my.sharepoint.de/:b:/r/personal/guangfei_zhao_t-systems_com/Documents/Dokumente/AI%20Assistant%20in%20One%20App.pdf?csf=1&web=1&e=On4V2o)
|
||||
|
||||
[https://www.figma.com/design/YBuYyBdkRRyP4YCPuzstDX/AI智能体?node-id=21-738&t=1eLWMSwO6XrA6mFE-0](https://www.figma.com/design/YBuYyBdkRRyP4YCPuzstDX/AI%E6%99%BA%E8%83%BD%E4%BD%93?node-id=21-738&t=1eLWMSwO6XrA6mFE-0)
|
||||
> [Figma 设计稿](https://www.figma.com/design/04VXNLNrLdVDHhKBuOr06o/AI_Chat_Assistant?node-id=2-4607&t=qofYGMFzBLQ7cKus-1)
|
||||
|
||||
[分子送检系统需求规格书.docx](images/%E5%88%86%E5%AD%90%E9%80%81%E6%A3%80%E7%B3%BB%E7%BB%9F%E9%9C%80%E6%B1%82%E8%A7%84%E6%A0%BC%E4%B9%A6.docx)
|
||||
> [分子送检系统需求规格书.docx](images/%E5%88%86%E5%AD%90%E9%80%81%E6%A3%80%E7%B3%BB%E7%BB%9F%E9%9C%80%E6%B1%82%E8%A7%84%E6%A0%BC%E4%B9%A6.docx)
|
||||
Reference in New Issue
Block a user