【AI实战篇-01】利用Deepseek Api方案实现企业微信客户服务合规监控系统案例

写在前面

相信Ai大模型进步,每个程序员都有目共睹。本人也是通过Ai实现全栈开发,目前一直也在专注于探索Ai的应用场景落地。目标100个应用小场景(哈哈哈,有点吹牛啦),希望有志同道合之人一起探索进步吧!
接下来分享的是【AI实战篇-01】利用Deepseek Api方案实现企业微信客户服务合规监控系统案例,后续也会持续输出AI实战开发案例,希望对大家有启发。废话不多说,直接开干。

准备条件

  • Deepseek 的api key
  • 企业微信开启会话存档(还需要同步存档数据自己数据库中,后续提供输出Api接口)
  • Ai提示词(合规监控提示词)

调用流程

第一步:申请Api密钥

![[Pasted image 20250429151729.png]]

首次创建,保存好创建的key,因为不支持修改。

第二步:根据您的应用场景准备好你的提示词

以我的应用场景:话术合规监测

提示词如下:

你是一名资深的证劵从业合规审核专家,专门负责检查金融对话内容是否涉及违规承诺或误导性信息。你的职责是严格按照以下审核规则,对给定的对话内容进行审核,并仅关注这些范围,忽略其他内容。  
  
## **审核规则**  
- **违规承诺**:查找是否包含类似“保证收益”“稳赚不赔”“绝对不会亏”“市场下跌仍能盈利”等表述。这些表述可能构成非法承诺收益或变相承诺收益。  
- **误导性信息**:甄别是否存在夸大收益或错误描述市场风险的内容,例如“无视市场波动”“个股不受行情影响”“持续暴涨”等。  
  
- ## **输出要求**  
- 你需要逐条检查 JSON 数据中的 `content`,如果发现符合上述违规规则的内容,则返回该条消息的以下字段:  
- `msgid`  
- 新增字段审核反馈字段`violation_points`,记录违规的关键词触发点  
- 新增字段审核反馈字段`violation_rules`,记录违反的具体相关法规  
- 新增整改建议字段`correction_suggestions`,记录整改的建议  
- 新增风险级别字段`level`,1代表低风险,2代表中风险, 3代表高风险  
- 新增风险等级说明字段`level_mark`(即使说明level含义)  
- 新增违规类别字段`category_desc`,简要的总结描述违规的类别(如:内幕交易、市场操纵、保证承诺收益、夸大收益、隐瞒风险)  
- 返回结果必须是 JSON 数组格式,  

例如: 
[ {"msgid":xxxxxxxxx,  
"violation_points":xxxxxx,  
"violation_rules":xxxxxx,  
"correction_suggestions":xxxxxx,  
"level":1,  
"level_mark":"低风险",  
"category_desc":xxxxx,  
} ]  

- 如果没有发现违规内容,则返回空的 JSON 数组 []

第三步:开始封装请求(PHP示例代码)

$url = 'https://api.deepseek.com/chat/completions';  
$api_key = "你创建的key";  
$user_prompt = json_encode($simpleMessageArr, JSON_UNESCAPED_UNICODE);;  
$system_prompt = <<<TEXT  
你是一名资深的证劵从业合规审核专家,专门负责检查金融对话内容是否涉及违规承诺或误导性信息。你的职责是严格按照以下审核规则,对给定的对话内容进行审核,并仅关注这些范围,忽略其他内容。  
  
## **审核规则**  
- **违规承诺**:查找是否包含类似“保证收益”“稳赚不赔”“绝对不会亏”“市场下跌仍能盈利”等表述。这些表述可能构成非法承诺收益或变相承诺收益。  
- **误导性信息**:甄别是否存在夸大收益或错误描述市场风险的内容,例如“无视市场波动”“个股不受行情影响”“持续暴涨”等。  
  
- ## **输出要求**  
- 你需要逐条检查 JSON 数据中的 `content`,如果发现符合上述违规规则的内容,则返回该条消息的以下字段:  
- `msgid`  
- 新增字段审核反馈字段`violation_points`,记录违规的关键词触发点  
- 新增字段审核反馈字段`violation_rules`,记录违反的具体相关法规  
- 新增整改建议字段`correction_suggestions`,记录整改的建议  
- 新增风险级别字段`level`,1代表低风险,2代表中风险, 3代表高风险  
- 新增风险等级说明字段`level_mark`(即使说明level含义)  
- 新增违规类别字段`category_desc`,简要的总结描述违规的类别(如:内幕交易、市场操纵、保证承诺收益、夸大收益、隐瞒风险)  
- 返回结果必须是 JSON 数组格式,  
例如: [ {"msgid":xxxxxxxxx,  
"violation_points":xxxxxx,  
"violation_rules":xxxxxx,  
"correction_suggestions":xxxxxx,  
"level"1,  
"level_mark":"低风险",  
"category_desc":xxxxx,  
} ]  
- 如果没有发现违规内容,则返回空的 JSON 数组 []  
TEXT;  
  
// 请求数据  
$payload = [  
	'model' => 'deepseek-chat',  
	'messages' => [  
	['role' => 'system',  
	'content' => $system_prompt],  
	['role' => 'user', 'content' => $user_prompt]  
	]  
];  
// 调用 curl_post 方法  
$response = $this->curl_post($url,$api_key,$payload);   
// 检查响应并处理错误  
if (!empty($response)) {  
	if (isset($response['choices'][0]['message']['content'])) {  
		//取值deepseek的回复答案
		$parseContent = $response['choices'][0]['message']['content'];  
		try {
			//解析deepseek的回复答案(根据你自己的业务逻辑处理)  
			$msgIds = self::extractMsgIds($parseContent);  
			Log::debug('获取到的msgIds的内容',$msgIds);  
			
		}catch (\RuntimeException $e) {  
		// 处理异常  
			return '解析出错: ' . $e->getMessage();  
		}  
	  
	} else {  
		// 如果响应格式错误,返回详细错误信息  
		return 'API 响应格式错误: ' . json_encode($response);  
	}  
}  else {  
	// 如果没有返回响应,返回 cURL 错误信息  
	return 'API 调用失败,cURL 错误: ' . $response['error'];  
}

基本上就上面几步搞定。

说明:为了减少token消耗和数据安全,你需要对你的数据进行过滤清洗和脱敏处理,这个就需要你自己根据自己的需求调整啦,大体流程上就是这三步可以搞定啦。


DeepSeek 接口响应字段说明(顶层结构)

{
  "id": "a9c6dd94-cddf-4227-xxxxxxxxx7",
  "object": "chat.completion",
  "created": 1745909869,
  "model": "deepseek-chat",
  "choices": [...],
  "usage": {...},
  "system_fingerprint": "fp_88xxxx9eaa_pxxxxx42xxp8"
}
字段名类型含义
idstring唯一请求 ID,方便追踪或调试
objectstring返回对象类型,这里是 "chat.completion",表示是聊天补全结果
createdint时间戳(Unix 时间,单位秒),表示生成响应的时间
modelstring使用的模型名称,例如 deepseek-chat
choicesarray模型生成的答案列表(通常只有一条)
usageobject当前调用所消耗的 token 数量等统计信息
system_fingerprintstring系统级模型版本指纹,用于追踪生成环境(如模型版本、服务版本等)

choices 字段结构说明
"choices": [
  {
    "index": 0,
    "message": {
      "role": "assistant",
      "content": "```json ... ```"
    },
    "logprobs": null,
    "finish_reason": "stop"
  }
]
字段名类型含义
indexint多轮回答中的第几条(一般只有 0)
message.rolestring响应角色,通常是 "assistant"
message.contentstring模型生成的主要内容(一般是 Markdown 格式包裹的文本或 JSON)
logprobsnull / object生成时的词概率(如未开启调试一般为 null)
finish_reasonstring生成终止原因,如 "stop" 表示自然结束,其他还有 "length"(达到最大 token 数)等

usage 字段说明
"usage": {
  "prompt_tokens": 1998,
  "completion_tokens": 755,
  "total_tokens": 2753,
  "prompt_tokens_details": {
    "cached_tokens": 1984
  },
  "prompt_cache_hit_tokens": 1984,
  "prompt_cache_miss_tokens": 14
}
字段名含义
prompt_tokens提示词部分使用的 token 数(即你发给模型的内容)
completion_tokens模型生成的回复所用的 token 数
total_tokens本次请求总共消耗的 token
prompt_tokens_details.cached_tokens来自缓存的 token 数,表示是历史缓存的提示
prompt_cache_hit_tokens命中缓存的 token 数
prompt_cache_miss_tokens未命中缓存的新 token 数(有效的费用计算依据)

小贴士:
  • token 是模型计费和限制单位,约为 1 个英文单词或 1.3~1.5 个汉字;
  • prompt_cache_hit_tokens 代表已缓存的部分,通常不收费或低费用;
  • system_fingerprint 可用于确认后台模型版本是否发生变化。

🙌 感谢你耐心看到这儿~ ,动动你发财的小手点个赞吧! 你的一赞,是我持续输出干货的最大动力!后续会持续分享Ai编程干货知识

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值