利用腾讯元器构建商业化AI智能体——【快递100 AI智能体实战教学】

news2024/11/5 7:50:34

写在开头

随着人工智能技术的不断进步,腾讯元器作为一项强大的工具,使得构建商业化的AI智能体变得更加便捷和高效。本文将带你深入了解如何利用腾讯元器搭建快递100 AI智能体的全过程,从前期规划到最终实现,为你提供一份详尽的实战教学。


引言

在数字化转型的浪潮中,快递行业也面临着智能化升级的需求。腾讯元器提供了一个平台,让开发者能够构建和部署智能体,以提升用户体验和业务效率。本文将详细介绍如何通过腾讯元器实现这一目标,以及在这一过程中需要考虑的关键因素。


一、智能体定位与功能规划

针对快递100这样的快递聚合平台,我们到底该创建一个怎样的智能体呢?🤔

  1. 寄快递 📦
    • 这个功能听起来很酷,但其实挺复杂的。用户需要提供收寄件人的手机号、地址、物品信息、快递公司,还要处理交易和售后环节。现阶段用智能体实现的话,交互太繁琐,开发成本也很高。最重要的是,用户可能会担心自己的隐私数据安全问题,反而不如传统的表单提交效果好。所以,这个功能先pass。❌
  2. 查快递 🔍
    • 这个必须有!用户只要甩个快递单号过来,智能体就能迅速查出物流详情。这可是高频使用的功能,智能体在这方面可是高手,能快速提取信息,总结数据。用户再也不用从一大段文本或者截图里费劲巴拉地找单号了,一句话的事儿!✅
  3. 快递运费预估 💰
    • 这个也得安排上!用户只要提供出发地、目的地和包裹重量,智能体就能帮他们查到各家快递的预估运费,还能比价推荐!✅
  4. 违禁品判别 🚨
    • 这个功能也很有必要。喷雾能不能寄?香烟能不能寄?这些对于普通用户来说可能是个谜,但智能体就能当个贴心小助手,帮他们判别哪些能寄哪些不能寄。✅
  5. 快递行业知识科普 📚
    • 这个可以有!毕竟隔行如隔山,不是快递行业的小伙伴们可能连最基本的快递知识都不清楚。智能体就能化身知识小百科,解答疑惑,比如体积重是啥玩意。✅

总结下来,快递100智能体规划了四大功能:查快递、快递运费预估、违禁品判别、快递行业知识科普。这样一来,无论是日常查询还是知识科普,都能轻松搞定!

功能架构图

能架构图


二、效果演示

开场白

开场白

查快递

查快递

快递运费预估

快递运费预估

违禁品判别

违禁品判别

快递行业知识科普

行业知识科普


三、智能体制作流程

在这里插入图片描述
咱们已经敲定了快递100智能体的基本功能,现在得聊聊这些功能是如何在腾讯元器上实现和部署的。

Step 0:深入了解腾讯元器的功能

在开始智能体开发之前,我们需要全面了解腾讯元器件所提供的功能,以便更有效地进行开发和优化。以下是腾讯元器件的四大核心模块:

  • 智能体:包含模型选择,提示词详细设定,开场白,建议引导问题,以及插件、工作流、知识库的配置。
  • 插件(外部API):有官方插件,也可以支持用户自定义插件用于业务服务给智能体提供接口数据。
  • 工作流:一种“流程图”式的低代码编辑工具,可以任意编排插件、知识库、大模型节点的工作顺序和调用传参,从而精确控制智能体中部分任务的运行逻辑。
  • 知识库:支持doc、docx、txt、PDF四种格式,并且支持直接使用公众号素材文章。
    腾讯元器平台截图

Step 1:智能体设置

咱们已经对腾讯元器的功能有了大概的了解,现在可以动手创建和设置我们的快递100智能体啦!点击“创建智能体”按钮,咱们就来到了智能体设置的主页面。这里有几个关键点需要搞定:

  • 模型设置:这里可以直接使用默认设置。如果需要,可以调整“回复随机性”和“回复最大长度”两个选项。例如,如果需要创作创意类的回复,可以调高“回复随机性”;而对于我们这个智能体,我们希望回复尽可能精确,因此将“回复随机性”设置为0。
  • 名称简介头像:根据智能体的特点进行设置。
    智能体设置页面
  • 详细设定:这是设置智能体的人设与回复逻辑的部分。智能体会根据大语言模型对人物设定和回复逻辑的理解,来响应用户问题。因此,人设与回复逻辑编写得越清晰明确,智能体的回复也会越符合预期。可以使用以下基本公式:角色 + 技能 + 约束 + 例子 + 输出格式。
    内容说明示例
    角色描述智能体所扮演的角色或职责、回复风格。您是一位快递领域的专家,精通快递查询、快递价格查询、违禁品判别等相关事务。
    为用户提供全面、细致、清晰的信息。
    技能描述智能体的功能和工作流程,约定智能体在不同的场景下如何回答用户问题。### 技能1:寄件违禁品判别
    -用户输入物品信息时,根据[寄件违禁品判定]判别是否是违禁品。
    约束与限制如果您想限制回复范围,请直接告诉智能体什么应该回答、什么不应该回答。## 限制
    - 严格遵循角色设定,只回答与快递相关问题,对于超出此范围的问题,应礼貌地说明无法提供帮助
    指定回复格式你也可以为智能体提供回复格式的示例。智能体会模仿提供的回复格式回复用户。查询成功后,以口语化方式总结物流信息(包括揽收时间、地点及目的地),不超过120字。回复示例:
    =====
    您的<快递公司>包裹<快递单号>正在路上,<时间:如XX小时前>从<离开地>发往<目的地>。
    ====

快递100智能体详细设定

# 角色
您是一位快递领域的专家,精通快递查询、快递价格查询、违禁品判别等相关事务。为用户提供全面、细致、清晰的信息。

## 技能
### 技能 1:快递单号识别与快递查询
- 快速判断用户输入中任何疑似单号的数字字母组合,将其视为快递单号。
- 若未提供单号,先热情问候,再礼貌请求用户提供
- 通过[快递物流查询]即刻查询物流信息。

### 技能 2:快递运费预估查询
- 提供根据寄件始发地城市和收件目的地城市、以及包裹的重量,查询各大快递公司的预估价格的功能
- 当用户提供寄件和收件地址时,精确提取始发地城市和目的地城市信息,严禁擅自虚构地址。
- 若始发地城市或目的地城市缺失,主动向用户询问地址信息。
- 当始发地和目的地均获取到时,调用[快递运费与时效查询]工具查询。

### 技能 3:违禁品判别
- 用户输入物品信息时,根据[寄件违禁品判定]判别是否是违禁品。

### 技能 4:回答寄快递相关问题
- 当用户提出快递相关疑问时,迅速从“快递知识库”中检索答案。
- 确保回复内容连贯,避免从知识库中摘取片段。
- 对检索到的信息进行整理,以清晰、易懂的方式呈现给用户。
- 使用标准的Markdown格式回复,包含可能的原因和解决办法,分层次与要点展示,并适当使用emoji表情符号增加互动性。
- 
### 技能 5:处理无法解答的问题
- 要是遇到无法解答的问题,引导用户联系人工客服。

## 限制
- 严格遵循角色设定,只回答与快递相关问题,对于超出此范围的问题,应礼貌地说明无法提供帮助
- 所输出的内容必须按照给定的格式进行组织,不能偏离框架要求。
  • 开场白和引导问题:引导问题的设置非常重要,可以引导用户直接体验到当前智能体能解决的问题。开场白
  • 用户问题建议:根据智能体的需求决定是否开启。如果需要,可以启用这一功能,帮助用户更好地提出问题。
  • 展示智能体回复参考消息:在调试过程中最好打开,发布时可以关闭。
  • 知识库:腾讯元器的知识库使用还不够稳定,不能自定义调用,完全依赖大模型的判别,时常会在不应该使用知识库的场景下调用。因此,如果智能体功能较为复杂,建议使用工作流的方式调用知识库,而不是直接在智能体设置中设置。
  • 工作流:在创建工作流后添加进来即可。

Step 2:打造插件,连接智能体与业务数据🔌

在这一步,我们要做的是搭建智能体与业务服务之间的桥梁——也就是插件。对于快递100智能体来说,最关键的就是那些能够查询快递信息和运费的接口啦!

📝 YAML格式配置: 听起来可能有点技术范儿,但别担心!如果你对YAML格式不太熟悉,有个超简单的方法:直接把接口文档扔给腾讯元器,它就能帮你自动生成配置。这样,你就不必为那些复杂的格式头疼了。

🛠️ 插件的创建与使用: 一旦插件创建成功,你就可以在智能体的设置里直接添加它,或者在工作流中灵活运用。对于快递100智能体,插件是在工作流中使用。

这样一来,智能体就能调用快递服务的数据,为用户提供实时的快递查询和运费估算服务了。

Step 3:工作流创建

咱们已经把智能体的基础设置和插件搞定了,现在来聊聊如何创建工作流,这是快递100智能体的核心部分!
腾讯元器
创建工作流

  • 点击“创建工作流”,设置工作流的名称和描述,说清楚这个工作流是干嘛的,在什么场景下使用。
🔍 工作流里的执行节点:

进入工作流后,你会看到几个关键的执行节点:开始节点、大模型、知识库、插件、分支、代码、结束节点。不是所有节点都得用上,但掌握它们的用法和技巧,能让你的工作流和智能体更加优质。下面我用快递100智能体中的快递查询工作流来详细讲讲每个节点的用法。

📊 工作流整体视图

工作流

  1. 开始节点:定义工作流启动时需要的入参。大模型会在用户输入的内容中提取这些入参,并在调用工作流的时候传进来。描述字段要写清楚,比如快递单号字段描述就写“快递单号”。用户本轮输入的完整内容和历史对话记录默认已经有了,不需要额外设置。
  2. 代码节点:代码节点在工作流中是一个非常灵活且强大的工具,务必学会使用。即使你不熟悉Python,也没有关系,因为大模型可以帮你生成代码。代码块可以用于处理字符串、重构数据对象以及执行一些简单的逻辑操作。以物流数据格式化的这个代码节点为例:
    工作流代码块节点
    输出参数一定要运行代码才可以同步,你可以先写一些简单的代码先测试把节点更新,再优化代码部分。
  • 插件节点:这里我使用的是自定义的插件,官方也提供了一些好用的插件,看自己需要选择,使用方法都是一样的。这里有两个选项“引用”和“输入”,“引用”是引用上游节点的输出参数允许跨节点获取,“输入”是设置固定参数也就是默认值。
    工作流插件节点
  • 分支节点:这个就相对来说比较简单,就是根据特定条件的一个判断,可以理解为“如果满足XX条件执行A,否则执行B”。
  • 大模型节点:负责对插件返回的数据进行深加工润色,让回复内容更加精准和流畅。你可以把它想象成一个文案高手,能把枯燥的数据转换成用户容易理解的语言。
    • 系统提示词:在这里,我们可以根据节点的功能来设定一个合适的人设。比如,这个节点是用来分析快递物流信息的,那我们就给它一个“快递物流数据分析师”的人设。
    • 本轮指令:这里只需要设置本轮需要的入参,比如当前的快递单号和用户输入的内容。我们用双大括号{{}}来标记这些参数,比如{{data}}。当执行时,这个标记就会被实际的数据替换掉。
    • 灵活设置:你可以直接在系统提示词里设置入参,也可以通过本轮指令来设置。两种方式都可以,就看你怎么用着顺手了。
      工作流大模型节点
  • 中间消息:每个节点都可以设置中间消息,主要用于在工作流执行时间较长时向用户发送进展消息,避免用户长时间等待而看不到任何进展,从而提升用户体验。然而,这个功能不支持流式输出,因此在使用大模型节点时,用户体验可能不是特别好。根据实际需求灵活使用。
  • 结束节点:根据前置步骤生成的最终答案,输出智能体的回复内容。你可以通过输出变量直接引用前置节点的返回数据。这里很多小伙伴可能会搞不清流式输出和非流式输出的区别:
    • 流式输出:以连续的“流”的形式进行处理和输出,不需要等待所有数据都准备好后再一起输出。这意味着在使用大模型节点时,可以一边处理数据一边给用户输出内容。这里要注意,如果选了流式输出大模型节点要直接连接到结束节点才有效果,比如中间又加了一个代码节点的话,这样也是不生效的
    • 非流式输出:将整个数据集一次性处理完毕后输出。这意味着需要等待大模型处理完所有数据准备就绪后才开始输出给用户。如果处理的数据较多,响应时间较长时,考虑使用流式输出会是更优的选择。
      工作流结束节点
  • 知识库:在我们构建的查快递工作流中,我们并没有用到知识库,但在违禁品判别这样的工作流中,知识库就发挥了大作用。调试知识库可能需要一些耐心和技巧
    • 召回不成功怎么办?:如果知识库的召回效果不理想,你可以尝试降低最小匹配度的阈值,这样系统就更有可能找到相关的信息。
    • 优化知识库内容:召回成功后,你可能需要对知识库的排版和内容进行调整和优化,确保信息的准确性和可读性。这个过程可能需要反复测试和调整,直到达到你设定的匹配度标准。
    • 直接输出与润色:如果你在结束节点选择不经过智能体总结,那么召回的内容可能需要大模型的进一步润色。这就像是给生硬的数据穿上一件合适的外衣,让它变得更加友好和易于理解。

腾讯元器知识库工作流

试运行

到了这个环节,我们的工作流已经搭建得差不多了,是时候给它来个试运行,看看效果如何。
腾讯元器工作流试运行
试运行成功后,就可以把工作流发布出去,可以让智能体进行引用!

Step 4:把工作流添加到智能体中

发布完工作流,下一步就是把它添加到智能体中,并进行调试。

  • 到智能体设置页面,记得打开“展示智能体回复的参考消息”的开关,这样你就能清楚地看到智能体的回复逻辑和效果。
    腾讯元器智能体调试界面

Step 5:发布智能体

经过以上几个步骤,我们的智能体就搭建完成了。接下来,按照以下步骤发布智能体:

  • 发布智能体:在智能体设置页面,点击“发布”按钮,提交智能体进行审核。
  • 等待审核:审核成功后,智能体将在“智能体模块”中显示为已上线状态。
  • 选择体验方式:点击“使用方式”,可以选择不同的渠道体验智能体,如web、微信小程序等。
    腾讯元器智能体分享使用方式通过这些步骤,你的智能体就可以正式投入使用了!

四、结语

通过本文的详细讲解,相信你已经掌握了如何利用腾讯元器搭建快递100 AI智能体的全过程。从前期规划到最终实现,每一个步骤都至关重要。希望这篇文章能对你有所帮助,让你在构建智能体的过程中少走弯路。欢迎随时私信我,让我们共同探索AI的无限可能!


五、体验链接

当然可以,以下是优化后的段落,使其更加清晰和易于理解:


五、体验链接

以下两种方式,您可以选择任意一种来体验快递100 AI智能体的便捷服务:

  1. 腾讯元器 Web端

    • 点击体验快递100 AI智能体
  2. 关注【快递100】

    • 微信搜索【快递100】,体验快递100 AI智能体的便捷服务。
      在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2230311.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

「C/C++」C++ 设计模式 之 单例模式(Singleton)

✨博客主页何曾参静谧的博客&#x1f4cc;文章专栏「C/C」C/C程序设计&#x1f4da;全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasoli…

【前端基础】CSS基础

目标&#xff1a;掌握 CSS 属性基本写法&#xff0c;能够使用文字相关属性美化文章页。 01-CSS初体验 层叠样式表 (Cascading Style Sheets&#xff0c;缩写为 CSS&#xff09;&#xff0c;是一种 样式表 语言&#xff0c;用来描述 HTML 文档的呈现&#xff08;美化内容&#…

【Oracle】空格单字符通配符查询匹配失败

问题 在进行模糊查询的时候&#xff0c;通过全局任意字符串匹配出含有两个字刘姓的人&#xff0c;但是通过刘_不能匹配出结果。 解决 检查后发现&#xff0c;姓名中包含空格 SELECT * FROM student WHERE TRIM(sname) LIKE 刘_;第一种解决方案就是查询的时候进行去空格处理&a…

查看多个通道32bit音频pcm数据

本文分析一个32位多通道pcm数据&#xff0c;一方面简单解释一下pcm数据格式&#xff0c;另外一方面看清楚实际数据的精度是多少。 说明&#xff1a;这是一个alsa采集到的10路32bit的pcm数据。 使用bc打开&#xff0c;16进制数据显示如下图&#xff1a; 图中左边是一个10通道32…

【语义分割|代码解析】CMTFNet-2: CNN and Multiscale Transformer Fusion Network 用于遥感图像分割!

【语义分割|代码解析】CMTFNet-2: CNN and Multiscale Transformer Fusion Network 用于遥感图像分割&#xff01; 【语义分割|代码解析】CMTFNet-2: CNN and Multiscale Transformer Fusion Network 用于遥感图像分割&#xff01; 文章目录 【语义分割|代码解析】CMTFNet-2: …

Webpack 配置module.css报错Uncaught TypeError: Cannot read properties of undefined

我的项目结构如下: 入口文件是index.jsx&#xff0c;组件Button.jsx使用了样式button.module.css .btn {background-color: #4CAF50;border: none;color: white; padding: 15px 32px;text-align: center;text-decoration: none;display: inline-block;font-size: 16px;margin:…

Redis(2):内存模型

一、Redis内存统计 工欲善其事必先利其器&#xff0c;在说明Redis内存之前首先说明如何统计Redis使用内存的情况。 在客户端通过redis-cli连接服务器后&#xff08;后面如无特殊说明&#xff0c;客户端一律使用redis-cli&#xff09;&#xff0c;通过info命令可以查看内存使用情…

Docker打包自己项目推到Docker hub仓库(windows10)

一、启用Hyper-V和容器特性 1.应用和功能 2.点击程序和功能 3.启用或关闭Windows功能 4.开启Hyper-V 和 容器特性 记得重启生效&#xff01;&#xff01;&#xff01; 二、安装WSL2&#xff1a;写文章-CSDN创作中心https://mp.csdn.net/mp_blog/creation/editor/143057041 三…

python如何安装扩展包

1、扩展包 Python安装额外的扩展包&#xff0c;一般使用anconda进行管理。 1、1安装命令 一般我们在anconda中通过pip install 包名 的方式进行安装&#xff0c;不过由于这些包在国外下载&#xff0c;因此需要配置合适的镜像促使其下载更快。 1、2 镜像源配置 1、2、1 一次…

【风冷换热器设计及计算

某空气调节工程需要将33.3kg/s的空气&#xff0c;由干球温度t123℃、相对湿度ψ160&#xff05;&#xff0c;冷却到干球温度t212℃、相对湿度ψ290&#xff05;&#xff0c;冷凝器出口为40℃的饱和液体&#xff0c;制冷剂采用R22&#xff0c;试设计一台直接蒸发式空气冷却器。 …

LabVIEW程序员赚钱不仅限于上班

LabVIEW程序员拥有多种途径来实现财富增值&#xff0c;而不仅仅局限于传统的全职工作。以下是一些他们可以利用自身技能和专业知识实现更高财务收益的方法&#xff1a; 1. 专注领域的自由职业与合同工作 制造、科研、医疗技术等行业都需要LabVIEW的专业知识。通过自由职业&…

C++ shared_ptr 动态内存

C shared_ptr 动态内存 智能指针 为了更加容易的使用动态内存&#xff0c;新的标准库提供了智能指针&#xff0c;用来管理动态对象&#xff0c;智能指针的行为类似常规指针&#xff0c;重要的区别是他负责自动释放所指的对象。新标准库提供的智能指针的区别在于管理底层指针的…

动态代理:面向接口编程,屏蔽RPC处理过程

RPC远程调用 使用 RPC 时&#xff0c;一般的做法是先找服务提供方要接口&#xff0c;通过 Maven把接口依赖到项目中。在编写业务逻辑的时候&#xff0c;如果要调用提供方的接口&#xff0c;只需要通过依赖注入的方式把接口注入到项目中&#xff0c;然后在代码里面直接调用接口…

Spring Boot:打造动态定时任务,开启灵活调度之旅

一、描述 在 Spring Boot 中设置动态定时任务是一种非常实用的功能&#xff0c;可以根据实际需求在运行时动态地调整定时任务的执行时间、频率等参数。以下是对 Spring Boot 设置动态定时任务的简单介绍&#xff1a; 1、传统定时任务的局限性 在传统的 Spring Boot 定时任务…

Chrome与夸克谁更节省系统资源

在当今数字化时代&#xff0c;浏览器已经成为我们日常生活中不可或缺的一部分。无论是工作、学习还是娱乐&#xff0c;我们都依赖于浏览器来访问互联网。然而&#xff0c;不同的浏览器在性能和资源消耗方面存在差异。本文将探讨Chrome和夸克两款浏览器在系统资源消耗方面的表现…

react的antd-mobile使用Steps显示物流

antd-mobile的图标&#xff0c;是需要安装依赖的 step如果只有一个步骤是不会展示的&#xff0c;代码里面的标题那块可以看出来 尝试了很多遍测试发现一直不显示&#xff0c;查询后发现是这个组件的本身设置的原因 那么就算你只展示一个那么也要写两个step&#xff0c;第二个…

AI-基本概念-多层感知器模型/CNN/RNN/自注意力模型

1 需求 神经网络 …… 深度学习 …… 深度学习包含哪些神经网络&#xff1a; 全连接神经网络卷积神经网络循环神经网络基于注意力机制的神经网络 2 接口 3 CNN 在这个示例中&#xff1a; 首先定义了一个简单的卷积神经网络SimpleCNN&#xff0c;它包含两个卷积层、两个池…

链表详解(一)

目录 顺序表的问题及思考链表链表的概念及结构链表的分类单链表的实现链表功能实现遍历链表void SLTprint(SLNode* phead)代码 创造新节点SLNode* CreateNode(SLNDataType x)代码 顺序表的问题及思考 中间/头部的插入删除&#xff0c;时间复杂度为O(N),效率低,但是尾部插入效率…

【MongoDB】Windows/Docker 下载安装,MongoDB Compass的基本使用、NoSQL、MongoDB的基础概念及基础用法(超详细)

文章目录 Windows下载MongoDB Compass使用NoSQL的基本概念MongoDB常用术语MongoDB与RDBMS区别MongoDB的CRUD 更多相关内容可查看 Docker安装MongoDB可查看&#xff1a;Docker-安装MongoDB Windows下载 官网下载地址&#xff1a;https://www.mongodb.com/try/download/communi…

uni-app发起请求以及请求封装,上传及下载功能(六)

文章目录 一、发起网络请求1.使用及封装2. https 请求配置自签名证书3.拦截器 二、上传下载1.上传 uni.uploadFile(OBJECT)2. 下载 uni.downloadFile(OBJECT) 一、发起网络请求 uni-app中内置的uni.request()已经很强大了&#xff0c;简单且好用。为了让其更好用&#xff0c;同…