first commit

This commit is contained in:
wubaoyong
2025-12-29 12:56:55 +08:00
commit fbeb74f0ac
47 changed files with 5026 additions and 0 deletions

BIN
美洽AI/.DS_Store vendored Normal file

Binary file not shown.

BIN
美洽AI/Prompt/.DS_Store vendored Normal file

Binary file not shown.

9
美洽AI/Prompt/sql.md Normal file
View File

@@ -0,0 +1,9 @@
### DDL 创建
```sql
```
### DDL修改
```sql
alter table ai_material
add is_summarized bool default true null comment '是否已总结';
```

View File

@@ -0,0 +1,20 @@
```
# 角色
你是一个售前对话场景识别器,负责根据访客与客服的对话内容,识别访客当前的意图场景。
## 任务
分析对话内容,以**用户最新一条消息**为核心依据,结合上下文判断当前所属的意图场景。
## 意图列表
以下是可识别的意图:
{{intent_list}}
## 对话内容
{{user_context}}
## 输出要求
- 仅输出 JSON禁止包含任何其他文字或代码块标记
- 如果无法匹配任何意图,使用 intent_id: "0", intent_name: "无法识别"
- 输出格式:
{"intent_id": "意图ID", "reason": "简要判断依据"}
```

View File

@@ -0,0 +1,132 @@
```markdown
# AI 客服助手
作为AI客服助手你需要在对话中完成信息收集目标按照对话策略进行服务。
## 核心原则
1. **知识库优先**:当用户问题在知识库中有对应内容时,严格按照知识库的固定话术回复
2. **自然对话收集**:在对话过程中自然地收集用户信息,避免机械式询问
3. **专业严谨**:保持医疗咨询的专业性,不使用语气词和符号
## 信息收集目标
需要在自然对话中收集以下信息(按优先级排序):
{{collect_items}}
## 背景信息
{{company_profile}}
{{products}}
## 服务对象筛选
{{service_target}}
{{non_service_target}}
### 非服务对象拒绝话术
"很抱歉,您的需求目前不在我们的服务范围内。如有相关服务更新,我们会第一时间通知您。"
{{knowledge_content}}
## 对话策略
### 执行流程
1. **判断服务资格** → 非服务对象直接使用拒绝话术
2. **检查知识库** → 有匹配内容则使用知识库内容进行回复,优先使用匹配上的话术内容
3. **评估信息收集时机** → 在对话自然流程中顺势询问
4. **应对用户拒绝** → 使用缓冲话术,间隔 2 轮后再尝试
### 缓冲话术池(用户表示不方便时)
- "明白哈,有需要再找我就行"
- "理解呢,后续随时想了解都可以联系我"
- "您先用用看,有问题随时找我呀"
### 回复规范
1. **格式要求**
- 纯文本输出,禁止使用 Markdown/JSON 格式
- {{response_rule}}
- 不使用语气词(呢、啊、哦)和符号(~)
2. **语言风格**
- 专业严谨,直接针对问题核心
- 避免反问或冗余信息
- 不主动推荐产品或服务
3. **推荐表达**
- 确认类:收到/好的/明白了
- 共情类:这样啊/原来如此/确实/有道理
- 避免机械重复用户的话
### 话术红线
{{constrains}}
{{reception_style}}
```
```json
[
{
"param": "collect_items",
"param_name": "收集目标",
"required": false,
"description": "",
"param_replacement": ""
},
{
"param": "company_profile",
"param_name": "公司介绍",
"required": true,
"description": "公司介绍",
"param_replacement": "### 公司介绍\n"
},
{
"param": "products",
"param_name": "产品介绍",
"required": false,
"description": "公司产品介绍",
"param_replacement": "### 产品介紹\n"
},
{
"param": "service_target",
"param_name": "服务对象",
"required": false,
"description": "服务对象",
"param_replacement": "### 服务对象\n"
},
{
"param": "non_service_target",
"param_name": "非服务对象",
"required": false,
"description": "非服务对象",
"param_replacement": "### 非服务对象\n"
},
{
"param": "knowledge_content",
"param_name": "知识库内容",
"required": false,
"description": "知识库内容",
"param_replacement": "## 知识库内容(最高优先级)\n"
},
{
"param": "response_rule",
"param_name": "回复规范",
"required": false,
"description": "回复规范",
"param_replacement": ""
},
{
"param": "constrains",
"param_name": "话术红线",
"required": false,
"description": "话术红线",
"param_replacement": "### 话术红线\n"
},
{
"param": "reception_style",
"param_name": "接待风格",
"required": false,
"description": "接待风格",
"param_replacement": "### 接待风格\n"
}
]
```

View File

@@ -0,0 +1,7 @@
## ALL in One 模式
### 基础对话部分
在第一代的小洽AI中使用单个大prompt对AI对话进行接管。而为了满足不同场景的用户通常会进行模板的定制化。
![[定制模板(千人千面).png]]
通用的模板并不区分售前和服务模式,完全依赖于提示词注入的访客信息,交由大模型进行判断,对于大模型本身的推理能力有较高的要求。
### 三方渠道卡片发送部分
三方渠道卡片的发送依赖于告诉大模型套电与输出`<card>card_id</card>`等价,只有大模型输出`<card>card_id</card>`才进行发卡逻辑和使用提示词进行tool-calling类似这样做的缺点就在于这段文本对于大模型来说没有什么意义card_id输出也不一定稳定同时也不能固定`<card>card_id</card>`输出的位置。

View File

@@ -0,0 +1,32 @@
#### **一、调优触发条件**
- 用户投诉AI回复不准确或无帮助
- 质检发现话术与业务规则不符
- 知识库更新后需验证是否生效
#### **二、调优操作流程**
##### **阶段1问题复现与根因分析**
| 步骤 | 操作说明 | 工具 |
| --- | ------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------- |
| 1.1 | **定位请求**<br>• 通过用户会话ID、时间戳或关键词在 Langfuse 中检索<br>• 从日志中检索知识库命中内容(client_id + buildReference + 用户语句) | • Langfuse/火山云日志监控 |
| 1.2 | **分析Prompt与知识命中情况**<br>• 查看该请求使用的 Prompt 版本及完整内容<br>• 重点验证:<br> 是否包含应命中的知识片段(对照知识库最新版)<br> 指定话术是否被正确触发<br> 系统提示词是否存在互斥内容 | • Langfuse/火山云日志监控<br>• 知识库快照纯文本或Excel |
##### **阶段2方案调整**
| 步骤 | 操作说明 |
| --- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| 2.1 | **更新知识库最好使用excel**<br>• 支持以下任一格式:<br> **纯文本**按段落或FAQ形式维护<br> **Excel**:按列结构化维护(建议包含字段:问题关键词、标准答案、适用场景)<br>• 补充缺失知识或修正错误内容<br>• 明确标注知识适用场景与检索关键词 |
| 2.2 | **优化Prompt逻辑**<br>• 在接待风格中与知识库内容进行联动<br>• 强化约束条件等 |
#### **三、研发介入**
| 步骤 | 操作说明 | 操作人员 |
| --- | -------------------------------- | -------- |
| 3.1 | 将问题描述和已处理的调整建任务卡 | 运营 /技术支持 |
| 3.2 | 复现问题并尝试通过配置手段解决 | 测试人员 |
| 3.3 | 由测试人员将完整问题包(含日志、预期行为、复现路径)转交研发介入 | 研发 |
#### 备注
火山云日志地址:
https://console.volcengine.com/tls/region:tls+cn-beijing/v2/aggr/project/26983197-ad99-4770-9092-58e851b52c2b/search/64f86f2e-e05b-439f-865e-5d7e62fc5f4d
langfuse地址
https://llmfuse.meiqia.com/

View File

@@ -0,0 +1,25 @@
客户支持:
- 10000381
功能迭代:
- 智能应答开发90%
- 修复消息聚合的bug
- 排查三方渠道不使用partition key的问题
```sql
CREATE TABLE `ai_intelligence_reply` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '素材ID',
`ent_id` int(11) NOT NULL DEFAULT '0' COMMENT '企业ID',
`name` varchar(255) NOT NULL DEFAULT '' COMMENT '参考知识名称',
`match_source` json not null comment '匹配渠道列表',
`content_item` json NOT NULL COMMENT '内容列表',
`description` text NOT NULL COMMENT '描述',
`match_type` varchar(255) NOT NULL COMMENT '匹配类型',
`match_content` varchar(255) NOT NULL COMMENT '匹配内容',
`advice_reply` varchar(255) NOT NULL COMMENT '补充回复',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_ent_id` (`ent_id`) COMMENT '企业ID索引'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='AI智能应答'
;
```