新智脑(dh.360.cn)
2024-02-27 18:09:28 14 举报
AI智能生成
新智脑(dh.360.cn)是一个集智能搜索、个性化推荐和在线学习于一体的综合性平台。它利用先进的人工智能技术,为用户提供精准、高效的信息检索服务,帮助用户快速找到所需内容。同时,新智脑还具备强大的个性化推荐功能,根据用户的兴趣爱好和浏览历史,为用户推荐最符合其需求的信息和资源。此外,新智脑还提供丰富的在线学习课程,涵盖各个领域的知识,让用户在获取信息的同时,不断提升自己的能力和素质。总之,新智脑致力于为用户提供一个便捷、智能、有趣的网络世界。
作者其他创作
大纲/内容
登录
通过UCCenter的接口获取用户信息
将登陆信息存到 ctx 的 qucInfo 中
对话(common/chat)
参数
conversation_id
is_regenerate
is_so
prompt
role
source_type
认证鉴权
从 ctx 的 qucInfo 中获取用户信息
接口逻辑流程
一、参数校验及处理(api/chat_controller.go)
1、通过雪花算法生成唯一的UUID,并将 UUID 放入 header 的 request_id 中;
2、根据参数构造 chat.Req 结构体
3、根据 UserAgent Header头做判断
如果 UserAgent == 智脑 或者 UserAgent 是iPhoneAPP,修复 Knowlege 字段
如果不是,则用其他方式赋值 Knowlege 字段
4、如果 conversation_id 前缀为 con-,则 Sleep 10 秒,然后返回不合法的聊天;
5、如果 role_group_id 不为空 && con_group_id 不为空 && role 不为空 && conversation 不为空,则从 Mongo 中获取 role_id 等于 role && con_group_id 等于 ConGroupId 的对话
6、如果 Path 是 /n/common/chat,则标记为是N世界过来的请求;
7、定义 cancel 上下文
二、核心Chat流程(service/chat/chat.go)
一、调用大模型之前的处理
1、设置 TraceId,并打印日志;
2、处理参数,防止 CSRF;
3、处理一体机抽奖逻辑;主要通过Redis进行抽奖逻辑的开发;
1、如果抽奖成功,返回;
2、如果抽奖异常,记录日志;
4、频控监测;
1、是否是黑名单用户;
如果是黑名单用户,并且也不在白名单列表中,则返回不合理的聊天;
2、是否是白名单用户;
3、是否是标记用户;
如果是,isSO = false,不走大搜;不重新生成;模型使用 GPT_130B_V9
4、是否是 admin 用户;
5、检测当前用户分钟和天访问频次;
6、对比会话轮数是否超过限制;
5、构造人设
1、根据 role 从Redis中获取数字人信息;
2、根据 uuid 从MySQL中获取数字人信息;
3、如果数字人预定义了 Prompt,则配置 Prompt;
4、如果数字人预定义了 向量索引,则配置 向量索引;
5、配置证件照;
6、通用回答(Prompt)
1、从 Redis 中获取 Key 为 brain_chat_common_answer 的通用回答,如果配置信息的 ansnwer 等于 Prompt并且数字人列表包含当前数字人,则返回通用结果;
2、判断通用结果是否是以 1: 开头的,则把前缀去除;
7、获取数字人的特殊配置,robotCf
8、FAQ回答(faq)
1、获取数字人FAQ回答;
2、遍历 knowleage;
1、如果不包含 _$%^_ ,continue
2、如果根据 _$%^_ 无法 split 出数组或者数组长度为零,continue;
3、取一个随机数,将 数组的随机数下标的值赋值给 params.Knowlege
3、如果数字人FAQ回答 和 params.Knowlege 不为空,在循环 params.Knowlege
4、如果FAQ回答不为空,则返回FAQ回答;
9、如果 Prompt 包含 周鸿祎,并且 角色等于 00000001,则设置 isSO = true;
10、如果是白名单用户,模型使用 GPT_130B_V9_SPECIAL
11、从Redis的 brain_general_config 获取 default_model 配置;
12、如果 robotCf.ModelType == ''360GPT_S2_V97",则使用 GPT_130B_V9_7 模型;
13、如果ModelType = allin1,则使用 GPT_130B_V9_7
14、如果 intent = true,则处理生图意图识别
15、如果 intent != true,则生成图片;
二、大模型调用
1、构造超参;
2、重构人设;
3、TPM/RPM申请;
4、如果是特殊角色,不走事前和事后审核;
5、事前审核用户的提问;
6、事后审核用户的提问;
7、如果是打电话模式,要追加人设
8、模型调用
1、将 serviceProvider 设置为 serviceProviderZhiNao;
2、如果是卡片,IsCard,则服务提供商为 serviceProviderCopilot ;
3、如果客户有指定的服务商,则使用客户指定的服务商;
4、判断 serviceProvider
1、如果是 serviceProviderZhiNao,则访问智脑;
2、如果是 serviceProviderCopilot,则访问 Copilot;
3、如果是 ServiceProviderEmail,则访问 Email;
4、如果是 ServiceProviderComment, 则访问 comment;
5、如果是 ServiceProviderCopyWrite,则访问 copyWrite
0 条评论
下一页