协议森林  (DNS协议)
匪言弛月AI Agent 产品推荐方案从需求分析到落地开发一、企业业务痛点您的企业是否曾面临这样的困境企业产品品类繁多单个产品的参数常达数十上百个类型各异部分为数字类型部分为文字类型且参数重要性存在差异例如发电机的 输出功率 权重远高于 占地面积。客户下单渠道分散个人微信、企微外部用户、邮件、Excel 文件等需求描述完整性不一 ------ 部分描述详尽部分仅为简洁表述。此时员工需基于对全量产品的深度理解从多渠道需求中筛选匹配度最高的产品推荐给客户操作难度极大。二、传统解决方案的局限在大模型技术普及前这类问题通常依赖经验丰富的员工手动处理员工需投入大量时间响应多渠道需求提供的推荐仅基于个人判断无法确保综合考量企业所有产品及各参数权重推荐结果的客观性与全面性难以保障。2025 年作为 AI Agent 元年我们可通过开发专属 AI Agent 解决这一场景实现产品推荐的自动化与精准化。三、AI Agent 范式选择如同学生写作需区分议论文、说明文、记叙文的 套路AI Agent 开发也存在可遵循的标准范式随技术迭代持续扩充。以下重点介绍两类核心范式并匹配业务场景选择最优方案。RAG范式适用场景需查询多份非结构化材料如行业专业文献、企业只读规章、产品说明书或解答 SOP标准作业流程、FAQ常见问题类知识问题且匹配需求为 非严格匹配 时优先选择 RAG 范式。核心流程后台处理① 录入知识文本 → ② 文本预处理切片、扩增 → ③ 特征提炼与向量转换 → ④ 向量库存储前台交互① 选择知识领域并提问 → ② 提问内容特征提炼与向量转换 → ③ 向量库检索相关知识并排序 → ④ 关联知识传入大语言模型生成答案 → ⑤ 前端结构化呈现结果。意图识别范式适用场景业务需通过自然语言触发系统操作或需将模糊需求转换为系统操作参数且操作可枚举、高频场景覆盖率高多数用户需求可明确归类时适用意图识别范式。核心流程① 对用户输入进行意图识别关联外部数据库 / 知识库匹配特定 API② 调用大语言模型填充参数需与外部数据库 / 知识库通信③ 权限控制下执行查询含业务数据处理④ 后续业务逻辑处理⑤ 输出用户分析结论。场景匹配结论结合 产品参数推荐 场景特性无需完整意图识别环节仅需提取产品参数即可实现需求因此简化后的意图识别范式为最优选择。四、AI Agent 逐步开发流程第0步学习葡萄城市场的向量计算插件和对象与集合操作工具插件葡萄城市场是葡萄城官方的生态聚集平台其中活字格开发实验室店铺里面有两个插件是我们需要使用到的。向量计算image对象与集合操作工具image向量计算插件向量归一化、哈达玛积逐元素乘法、欧几里得距离、余弦相似度、向量缩放标量乘法。我们当下需要用到的是哈达玛积和余弦相似度。哈达玛积Hadamard product对于两个维度相等的向量A[ai]和B[bi]向量[ai*bi]为A和B的哈达玛积。我们以这个向量计算插件举个例子image结果是image余弦相似度描述的是两个向量的方向接近程度取值范围是-1到1-1表示完全相反1表示完全相同0表示互相没有关系。越接近1表示方向越接近。同样的我们用向量计算插件举例子image显然这两个向量是大小相等方向相同的那么计算出来的余弦相似度是多少呢imageimage这两个向量是互相垂直的它们的余弦相似度是多少呢imageimage这两个向量互相相反那么相似度是多少呢image对象与集合操作工具是用来处理数组、对象和字典等数据结构的。我们这个场景主要用的是数组操作、数组排序和在数组中查询image数组操作imageimage我们来看下distinct、select和slice等。Distinctimage其中引用到的上下文变量arr是[1,2,3,1,2,333,]处理完成后的array是[1,2,3,333,]注意我的是空串不是空值因此是没有去除的。Selectimage其中引用到的上下文变量数据表数据为[{ID: 1,文本: AB,整数: 1,小数: 1.5,日期: 44927.75,是_否: 0},{ID: 2,文本: BC,整数: 2,小数: 2.5,日期: 44927.99998842592,是_否: 1},{ID: 3,文本: CD,整数: 3,小数: 3.5,日期: 44928,是_否: 0},{ID: 4,文本: DE,整数: 4,小数: 4.5,日期: 44929,是_否: 1},{ID: 5,文本: EF,整数: 5,小数: 5.5,日期: 44929,是_否: 0},{ID: 6,文本: EF,整数: 6,小数: 6.5,日期: 45022,是_否: 1}经过select操作抽取ID数组为[1,2,3,4,5,6]。Sliceimagetest3为 [{ping:pong},2A,2B]slice后数组为[2A]数组排序image排序前数组为[{ID: 6,文本: EF,整数: 6,小数: 6.5,日期: 45022,是_否: 1},{ID: 5,文本: EF,整数: 5,小数: 5.5,日期: 44929,是_否: 0},{ID: 4,文本: DE,整数: 4,小数: 4.5,日期: 44929,是_否: 1},{ID: 3,文本: CD,整数: 3,小数: 3.5,日期: 44928,是_否: 0},{ID: 2,文本: BC,整数: 2,小数: 2.5,日期: 44927.99998842592,是_否: 1},{ID: 1,文本: AB,整数: 1,小数: 1.5,日期: 44927.75,是_否: 0}]排序后数组为[{ID: 1,文本: AB,整数: 1,小数: 1.5,日期: 44927.75,是_否: 0},{ID: 2,文本: BC,整数: 2,小数: 2.5,日期: 44927.99998842592,是_否: 1},{ID: 3,文本: CD,整数: 3,小数: 3.5,日期: 44928,是_否: 0},{ID: 4,文本: DE,整数: 4,小数: 4.5,日期: 44929,是_否: 1},{ID: 6,文本: EF,整数: 6,小数: 6.5,日期: 45022,是_否: 1},{ID: 5,文本: EF,整数: 5,小数: 5.5,日期: 44929,是_否: 0}]在数组中查询支持where、first和last三个操作。Whereimage数组为[{ID: 1,文本: AB,整数: 1,小数: 1.5,日期: 44927.75,是_否: 0},{ID: 2,文本: BC,整数: 2,小数: 2.5,日期: 44927.99998842592,是_否: 1},{ID: 3,文本: CD,整数: 3,小数: 3.5,日期: 44928,是_否: 0},{ID: 4,文本: DE,整数: 4,小数: 4.5,日期: 44929,是_否: 1},{ID: 5,文本: EF,整数: 5,小数: 5.5,日期: 44929,是_否: 0},{ID: 6,文本: EF,整数: 6,小数: 6.5,日期: 45022,是_否: 1}]经过查询多个查询条件组合为[{ID:1,文本:AB,整数:1,小数:1.5,日期:44927.75,是_否:0}]Firstimage经过查询第一个{ID:1,文本:AB,整数:1,小数:1.5,日期:44927.75,是_否:0}Lastimage经过查询最后一个{ID:5,文本:EF,整数:5,小数:5.5,日期:44929.0,是_否:0}第1步了解prompt在线管理在AI Agent中prompt是一个很关键的环节。在活字格自带的AI对话单元格、AI助手命令中prompt是可以手动写入的比较便捷。image但是这带来了一个比较麻烦的问题就是如果应用已经发布现在需要修改prompt那么开发者需要打开设计器改动prompt然后重新发布应用比较繁琐而且容易出现发布失败。因此更好的实践是把prompt存储到数据库加入版本管理并且给提示词编辑配置一个前端页面。如此届时只需在前端页面里面改动即可生效高效且相对安全。一般提示词模块ER图如下暂时无法在飞书文档外展示此内容操作层面必须熟练掌握两个工具设置变量命令和SUBSTITUTE公式。设置变量命令可以用于页面的命令和服务端命令详见https://www.grapecity.com.cn/solutions/huozige/help/docs/command/setparametercommandinclientcommandSUBSTITUE公式用法和excel保持一致可以用于页面的单元格、命令和服务端命令。前端页面部分一般是根据项目需求利用页面引擎进行定制下图是AI筛选简历的样式image第2步定义全局变量在AI Agent中经常会用到一个关键值最接近的数量习惯上我们命名为TopK这个值在各种地方频繁使用如果我们都是直接写3或者5这种固定值的话那么后期如果要更改起来很容易遗漏而且工作量不小。因此活字格提供了全局变量功能可以为项目进行设置。image这是一个示例image第3步进行数据库设计由于前面已经分析了prompt底层表结构我们此处仅仅展示业务数据表的ER图暂时无法在飞书文档外展示此内容第4步开发重置同一值我们需要开发一个服务端命令把数据库里面每个产品的每个参数根据其维度的上下限进行归一化处理即映射到-1到1区间内方便后续的距离运算。在此之前需要开发一个私有的服务端命令normalize来进行给定维度ID和值后进行归一化。显然normalize私有服务端命令的入参有两个维度ID和值出参是一个同一值。内部逻辑为根据维度ID查询量程上限和下限利用excel公式进行同一化2*(LN(1MIN(MAX(值,量程下限),量程上限)-量程下限)/LN(1(量程上限-量程下限)))-1返回同一值给调用方接下来我们需要开发重置同一值服务端命令入参和出参都不需要。内部逻辑为查询所有的产品规格参数类型为对象数组对象里面三个属性ID、原始值、维度ID遍历产品规格参数数组把对象的维度ID和原始值传递给上面开发的私有的服务端命令normalize拿到对应的同一值紧接着根据对象的ID属性把产品规格参数表的同一值字段更新为刚刚返回的同一值这样子我们只需要调用下重置同一值服务端命令即可完成数据库里面各个产品的各个参数同一化了。第5步开发AI查询业务一开发embedding私有服务端命令我们需要对用户输入的查询条件进行同一化处理并且由于我们的各个维度都是有权重的因此需要按照各自的权重生成一个蒙版向量来体现权重区别。入参为查询条件数组出参有两个查询向量和规格模板向量。内部逻辑为将查询条件数组JSON反序列化为数组创建两个数组queryEmbedding和filedMask用来承载后面返回的查询向量和规格模板向量查出来数据库里所有的维度信息image遍历维度信息数组逐一进行如下处理寻找查询条件数组中和当前维度ID一致的第一个条件若找不到或者找到了但是条件的值为空把数字0从尾部推入queryEmbedding和filedMask数组否则调用重置同一值私有服务端命令传入当前维度ID和查询条件的值拿到同一化后的结果将该条件值的同一化结果从尾部推入queryEmbedding数组将当前维度的权重从尾部推入filedMask数组返回queryEmbedding数组即查询向量和filedMask数组即规格蒙版向量给调用方二开发query私有服务端命令我们需要根据查询向量、规格蒙版向量和TopK来为用户查询匹配的产品信息。内部逻辑为创建result数组从数据库中找到所有产品的规格参数还记得吗我们提前把同一值都填写进去了在产品规格参数中以产品规格ID为基准进行数组distinct操作记为产品规格ID数组计算入参查询向量和规格蒙版向量的哈达玛积即查询规格向量遍历产品规格ID数组在产品规格参数数组中查找当前产品的所有参数显然这也是数组从上一步对象数组中提取同一值为产品特征向量计算产品特征向量和规格蒙版向量的哈达玛积即产品规格向量计算查询规格向量和产品规格向量的余弦相似度从数据库中查询当前产品的规格信息对象为规格信息对象增加一个属性类型为float名为相似度值为之前计算好的余弦相似度将规格信息对象从尾部推入result数组以相似度降序规则对result数组排序取排序后的前TopK个为新的数组top返回top为和用户查询匹配的产品信息三开发表单查询服务端命令这个服务端命令用来根据参数数组生成产品清单。内部逻辑为调用私有的embedding服务端命令传入参数数组拿到查询向量和规格蒙版向量调用私有的query服务端命令传入查询向量、规格蒙版向量和TopK拿到匹配的产品返回匹配的产品为产品清单四开发AI查询服务端命令入参为用户输入出参为产品清单和查询条件参数。内部逻辑为查询数据库中所有的维度信息将维度信息数组JSON化为AI调用提示词变量引入做准备从提示词表中找到场景场景为参数提取的提示词模板替换提示词模板中的text变量为用户输入spec为维度信息JSON调用AI助手命令把替换完毕的提示词给到用户输入并尝试提取AI返回的信息JSON示例如下[{id: 1, value: 200},{id: 2, value: null},{id: 3, value: null},{id: 4, value: 77},{id: 6, value: null}]对返回的JSON进行反序列化形成数组query调用表单查询服务端命令入参即查询条件JSON拿到返回的产品清单创建查询条件数组遍历query如果当前query对象中的value属性不为空在维度信息数组中查找第一个和当前query对象的ID属性一致的维度信息创建对象q,属性有三个维度、单位和值。其中维度和单位及上一步找到的维度信息中对应的值值即当前query对象的value从尾部把q对象推入查询条件数组返回产品清单和查询条件数组第6步前后端联调在页面侧我们需要AI调用服务端命令来完成前后端联调。具体过程如下开启加载动画调用AI查询服务端命令传入页面上用户的输入获取返回码、返回信息、产品清单和查询条件参数结束加载动画判断返回码是否为0不为0直接提示出错序列化查询条件参数和产品清单为JSON将两个JSON分别导入到页面的EL表格内效果展示视频转GIF扩展链接

相关新闻

选择HttpHandler还是HttpModule?

选择HttpHandler还是HttpModule?

教逝馁崭在前文中我们讲过ThreadLocal,相当于是每个线程有一个小书包,线程之间的小书包是隔离的,只存放了属于当前线程自己的变量,因此不会发生数据安全的问题。 (前文博客浅谈ThreadLocal----每个线程一个小书包 htt…

2026/7/7 3:49:19 阅读更多 →
MVVM(Knockout.js)的新尝试:多个Page,一个ViewModel

MVVM(Knockout.js)的新尝试:多个Page,一个ViewModel

偌颈僮吹通过 start.spring.io 或其他构建基础的Spring Boot工程,根据你构建应用的需要增加一些依赖,比如最后用接口提供服务的话,可以加入web模块:org.springframework.bootspring-boot-starter-web2. 注册 UnifiedTTS&#xff0…

2026/7/7 6:09:26 阅读更多 →
,写给岁的自己

,写给岁的自己

诟淘妓偈1.1 简介 ControlNet是由斯坦福大学研究者张吕敏等人于2023年提出的一种AI图像生成控制技术,核心作用是让用户在保持生成图像 “创造力” 的同时,精准控制图像的结构、姿态、轮廓、深度等关键空间信息,解决了传统扩散模型&#xff08…

2026/7/3 9:46:20 阅读更多 →

最新新闻

终极指南:用microG实现无Google服务的Android应用兼容方案

终极指南:用microG实现无Google服务的Android应用兼容方案

终极指南:用microG实现无Google服务的Android应用兼容方案 【免费下载链接】GmsCore Free implementation of Play Services 项目地址: https://gitcode.com/GitHub_Trending/gm/GmsCore 在Android生态中摆脱Google服务依赖并运行YouTube等应用,m…

2026/7/7 8:14:10 阅读更多 →
2026新手第一套电子鼓怎么选?高性价比电子鼓横评推荐

2026新手第一套电子鼓怎么选?高性价比电子鼓横评推荐

很多新手来找我咨询买鼓,问的第一句往往是:“老师,罗兰和雅马哈哪个好?”——这个问题本身就问错了。买电子鼓和买手机不一样。手机看品牌看系统,但电子鼓的核心是手感、反馈和稳定性。品牌溢价再高,敲下去…

2026/7/7 8:12:09 阅读更多 →
匿名类·学习笔记

匿名类·学习笔记

嗨!在今天的课程中,我们将继续探讨嵌套类的主题。现在是最后一组:匿名的内在阶级。 让我们回到我们的示意图:就像上一课提到的局部类一样,匿名类是一种内在类......它们也存在若干相似之处和差异。 但首先,让我们深入探讨:为什么他们被称为“匿名”? 为了回答这个问题,…

2026/7/7 8:12:09 阅读更多 →
边缘计算盒子部署完整流程:基于算能SE5/超星未来/灵犀设备的AI视频分析实战

边缘计算盒子部署完整流程:基于算能SE5/超星未来/灵犀设备的AI视频分析实战

在智能视频分析交付的最后“一公里”,边缘计算盒子凭借低功耗、小体积以及本地化算力优势,成为了私有化交付、明火烟雾检测、安全帽识别等POC现场的首选。然而,边缘端异构芯片(如ARM64架构)的复杂性、底层硬件加速驱动…

2026/7/7 8:10:09 阅读更多 →
爬虫实战:如何优雅地抓取网页中隐藏在伪元素(__before)里的文本?

爬虫实战:如何优雅地抓取网页中隐藏在伪元素(__before)里的文本?

相信很多写过一段时间爬虫的同学大概率撞过这堵“隐形墙”:在浏览器里明明白白显示着"¥9.9"的价格,或者一段验证码文本,但当你切换到 DevTools 时,发现那个数字安安静静地挂在某个标签里。然而,当…

2026/7/7 8:06:08 阅读更多 →
5分钟掌握RoundedTB:让Windows任务栏焕然一新的魔法指南

5分钟掌握RoundedTB:让Windows任务栏焕然一新的魔法指南

5分钟掌握RoundedTB:让Windows任务栏焕然一新的魔法指南 【免费下载链接】RoundedTB Add margins, rounded corners and segments to your taskbars! 项目地址: https://gitcode.com/gh_mirrors/ro/RoundedTB 想让单调的Windows任务栏瞬间变得现代时尚吗&…

2026/7/7 8:04:08 阅读更多 →

日新闻

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

图片浏览是移动应用中最高频的场景之一。从社交应用的照片流到电商平台的商品图集,从旅游应用的景点相册到摄影作品展示——用户对图片浏览的体验要求不断提高:流畅的切换动画、直观的缩略图导航、便捷的收藏操作、自动播放模式。HarmonyOS NEXT ArkUI 虽…

2026/7/7 0:05:16 阅读更多 →
24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V稳压芯片完整选型指南 PW8600 PW75XX PW2815 PW2312B LDODC/DC全方案 一、24V稳压方案概述 24V直流电源在工业自动化、门禁系统、电梯控制、汽车电子、LED驱动、监控设备等场景中应用极广,是最常见的中压直流母线电压。要将24V母线稳定降压至下游MCU、传感器…

2026/7/7 0:05:16 阅读更多 →
RAG+知识图谱混合检索与Graph RAG核心对比

RAG+知识图谱混合检索与Graph RAG核心对比

做企业RAG落地的团队,往往容易卡在一容易踩坑的选型难题: 当需求单纯靠向量RAG搞不定、单纯靠知识图谱也搞不定,必须同时依赖「文本语义理解 实体关系推理」时,到底是做「向量图谱混合检索」就够了,还是必须上「Grap…

2026/7/7 0:07:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻