无障碍全免费上手智能体:Autogen Studio结合Deepseek Coder打造一款AI旅游规划师

news2024/9/20 19:42:15

本文的唯一目的是通过打造一款AI旅游规划师,通俗易懂、深入浅出的讲清楚AI应用的大方向-智能体-的原理。

无需科学上网无需付费API无需编程能力,一小时即可部署、搭建一款复杂的、多代理交互的AI智能体-旅游规划师,通过观察它的工作流程,深入连接AI智能体的本质和原理。

一,环境准备

1,本地部署Autogen Studio

下载、部署Autogen,请参考我的另一篇博客https://blog.csdn.net/epitomizelu/article/details/140287498,第三部分可以忽略。

环境搭建、下载、安装,在这篇博客中都有非常详细的说明,最后关于pycharm的安装可以忽略,不影响我们打造AI旅游规划师。

从开始准备环境,到部署启动Autogen Studio,大约半小时可以搞定。

启动成功后,在浏览器输入如下地址。

http://localhost:8081/build

即可看到如下界面。

在这里插入图片描述

2,准备Deepseek Coder的API Key

对于未做过软件开发的人来说,API Key可能是个陌生的概念,但其本质非常简单,它就是一个由多个字符组成的口令,是一把钥匙,有API提供者颁发,API调用者在调用API时需要携带API Key,表明调用者是以合法的、被承认的身份调用API,否则调用行为会被拒绝。

如果还是没法理解,那就直接行动起来,先去Deepseek平台创建一个API Key。

为什么选择Deepseek?

原因有以下三个:

  • ① Deepseek Coder的代码解释能力非常强大。
  • ② Deepseek是国内大模型,没有网络和权限问题。
  • ③ 有免费额度,非常有利于学习体验。

2.1,打开Deepseek开发平台

直接渠道Deepseek开放平台的API Keys界面https://platform.deepseek.com/api_keys。

如果你是第一次使用,需要注册,注册是傻瓜式的,非常简单。

在这里插入图片描述

2.2,创建API Key

点击下方的创建按钮。

在这里插入图片描述
在下面的弹窗中为你的API Key取个名字,名字是为了方便管理。然后点击创建。
在这里插入图片描述

点击创建后,API Key就生成了。注意,API Key只展示一次,所以要保存好,如果遗忘,无法找回,只能重新创建。

在这里插入图片描述
再次提醒,保存好上面创建的API Key。

二,给Autogen的代理配置大脑

智能体相当于一家公司,公司的工作通常是由多个人协作完成的,与此类似,智能体的工作是由多个代理协作完成的,从这个角度来看,代理可以类比为人。

注意,Autogen中,代理是非常核心的概念。

既然把代理比作人,那么它一定有思考能力和推理能力,也就是说,它一定有大脑。

对,只不过代理的大脑是大模型。在我们的这个实验中,选择Deepseek作为代理的大脑。

所以,接下来,就是给代理配置大脑。

1,模型登记

就像员工入职登记信息一样,首先要在Autogen Studio界面上登记Deepseek的信息。

如下图,在Autogen Studio的界面上,按照如下步骤打开登记界面 。
在这里插入图片描述

  • ① 选择Build
  • ② 选models菜单
  • ③ 点击 New Model 按钮

模型登记界面如下。

在这里插入图片描述

  • ① 填写模型名称,deepseek有两个模型,一个是deepseek-coder,一个是deepseek-chat,这里选择deepseek-coder,二选一,不能填其他
  • ② API Key,把之前创建好的API Key复制粘贴到这里即可
  • ③ 接口地址,直接复制粘贴,不要修改:https://api.deepseek.com/v1
  • ④ 备注,按需填写即可

登记完成后,点击 Test Model 进行测试,校验信息是否准确。有如下提示,说明模型登记成功,点击保存即可。

在这里插入图片描述

2,给代理配置大脑

目前,仅仅登记了大脑的信息,接下来得给代理装上这个大脑。

代理是怎么来的呢?

我们要打造的智能体-AI旅游规划师,是Autogen Studio中自带的智能体,所有的代理都已经创建好了,只是这些代理目前都没有大脑。

如下图,点击①Agents菜单,切换到代理列表界面,需要给如图所示2~6一共五个代理配置大脑

注意,第一个代理user_proxy不需要大脑,user_proxy只是前端接待和指令执行者,不需要动脑子。

在这里插入图片描述

以给代理default_assistant配置大脑为例,演示步骤,其他代理类似。

  • ① 点击代理default_assistant
  • ② 在弹出的浮窗中点击Models,切换到模型选择界面
  • ③ 点击add按钮

在这里插入图片描述

  • ④ 在弹出的下来列表中选择deepseek-code模型作为代理的大脑

在这里插入图片描述
其实,到此位置,我们的智能体已经打造完成,接下来可以让AI旅游规划师开始工作了。

三,智能体的工作原理

1,AI旅游规划师的真实面目-工作流workflow

先来看看AI旅游规划师的真实面目。

到目前,我们仅仅知道代理,代理和AI旅游规划师的关系是什么呢?

简单的说,AI旅游规划师的工作是有多个代理合作完成的。

代理之间的协作是由workflow工作流定义的。

切换到工作流界面,如下图。

在这里插入图片描述
点击上图中的Travel Planning Workflow,进入其配置界面,选择界面上的Agents卡片。

在这里插入图片描述

这个界面上仅仅发现了两个代理:

  • user_proxy,这个代理的角色是initiator,它的功能是接收用户的任务,把任务交给Receiver进行分析、拆解
  • travel_groupchat,这个代理的角色是Receiver,它的功能是把Initiator代理分配过来的任务进行理解、拆解

前面不是说涉及多个代理吗?这里明明只有两个代理。

要回答这个问题,得回到Agents界面,点击代理travel_groupchat

在这里插入图片描述

在代理travel_groupchat的配置界面上选择Agents卡片,可以看到在这里关联其他Agent。

在这里插入图片描述
相当于代理travel_groupchat是个Leader,管理着很多员工。

2,让旅游规划师登上舞台

Autogen Studio上的Playgournd就是智能体的表演舞台,接下来我们把旅游规划师请上舞台。

在这里插入图片描述

  • ① 选择卡片Playground
  • ② 点击左侧+New按钮
  • ③ 选择工作流Travel Planning Workflow
  • ④ 点击按钮Create

现在就可以给旅游规划师下任务。

3,让旅游规划师开始它的表演

我给旅游规划师下达了这样一个任务。

制定去云南旅游的3天计划,并画出路线图,并生成图片。

这是智能体给我的响应,当然,这不重要。

在这里插入图片描述

关键的地方,在于对话的最下面,点开Agent Messages

在这里插入图片描述

Agent Messages展示了为了完成这个任务,多个Agent之间发生的对话,就像一个公司的某个部门完成一个任务一样,多个同事要进行多轮复杂的、网站的交流。

如下图,这个过程,至少有三个代理参与,但他们的对话过程对用户来说,是不透明的。

在这里插入图片描述

用户就是提出问题,等待答案。

总结

当然,具备生产力的智能体会更加复杂,但也是在这个原理之上,设计更为复杂的工作流,每个代理具备更多的能力,甚至是具备物理世界的能力,比如动手术、诊断、搬东西、采购、运输等等。

可以想象,随之AI的能力越来越强,智能体落地的可能性就越来越大。

目前AI的发展虽然如火如荼,但是并没有杀手级别的应用出现,如果没有应用,就不可能真正的进入AI时代。

智能体极有可能是AI应用落地的最佳形态。

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

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

相关文章

LeetCode之最长回文子串

1.题目链接 5. 最长回文子串 - 力扣(LeetCode)https://leetcode.cn/problems/longest-palindromic-substring/description/ 2.题目解析 对于这道题目我们可以使用动态规划的思路来求解,具体思路是,对于一个长度大于2的子串&…

EXSI 实用指南 2024 -编译环境 Ubuntu 安装篇(二)

1. 引言 在当今的虚拟化领域,VMware ESXi 是备受推崇的虚拟化平台,广泛应用于企业和个人用户中。它以卓越的性能、稳定的运行环境和丰富的功能,为用户提供了高效的硬件资源管理和简化的 IT 基础设施维护。然而,如何在不同操作系统…

Socks5代理为何比HTTP代理快?

在网络世界中,代理服务器扮演着重要的角色,它们能够帮助我们访问被限制的网站、提高网络安全性以及优化网络性能。其中,Socks5代理和HTTP代理是两种常见的代理类型。然而,很多用户发现,相较于HTTP代理,Sock…

JavaScript(9)——作用域的一些问题

如果在函数内部,变量没有声明直接赋值,也会当做全局变量看。强烈不推荐!! function op() {num 80}op()console.log(num) 在不同作用域下,可能存在变量命名冲突的情况: let num 10 function fn(){let num…

使用 Google 的 Generative AI 服务时,请求没有包含足够的认证范围(scopes)

题意: Google generativeai 403 Request had insufficient authentication scopes. [reason: "ACCESS_TOKEN_SCOPE_INSUFFICIENT" 问题背景: I have tried the simple POC for generativeai on its own to do generate_content and it works…

srs直播内网拉流带宽飙升问题记录

问题背景 srs部署在云服务器上,32核cpu,64G内存,带宽300M. 客户端从srs拉流,发现外网客户端拉流,cpu和带宽都正常。然而内网客户端拉流,拉流人数超过5人以上,带宽就会迅速飙升。 排查 用srs…

休息时间c++

题目描述 小杨计划在某个时刻开始学习,并决定在学习k秒后开始休息。 小杨想知道自己开始休息的时刻是多少。 输入 前三行每行包含一个整数,分别表示小杨开始学习时刻的时h、分m、秒s(h,m,s的值符合1≤h≤12,0≤m≤59,0≤s≤59)…

代码能力弱,编程思维几乎没有,有些勉强能看懂,让自己敲,一脸懵逼?

最近有几个人问我,说自己代码能力弱,编程思维几乎也没有,简单的代码,勉强能看懂,让自己敲,就一脸懵逼,下一步该怎么学习? 10几年前,这些问题,就像是一道道难以…

使用simulink进行esp32开发,进行串口收发数据需要注意的地方,为什么收发不成功

1,主要是因为simulink里的配置文件配置的波特率和串口接受软件配置的波特不一致导致的 2,主要有以下三个界面 a.配置文件 b.模型 模型直接选择使用的是那组串口就行了,一般情况下我们收发使用同一组就可以,这样收发模块填写的端…

云WAF | 云waf基础知识详解

随着数字时代的到来,网络安全问题越来越突出, Web应用防火墙(WAF)是保障 Web应用安全的一道重要防线。在云计算环境下,云环路由云平台(WAF)的出现,其融合了 WAF的能力和云计算的灵活…

【Java数据结构】初识线性表之一:顺序表

使用Java简单实现一个顺序表 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。 线性表大致包含如下的一些方法: public class MyArrayList { private int[] array; pri…

RWKV: 与Transformer和Mamba掰掰手腕的小家碧玉

------>更多内容&#xff0c;请移步“鲁班秘笈”&#xff01;&#xff01;<------ 开源项目RWKV是一个“具有 GPT 级别LLM性能的RNN&#xff0c;也可以像transformer并行训练。它主要是解决了Transformer的高成本。注意力机制是 Transformer 霸权背后的驱动力之一&#…

【目录】全博文、专栏大纲

首先要和大家说一下&#xff0c;博主的文章并不是想到哪里写到哪里&#xff0c;而是以整个大后端为主题&#xff0c;成体系的在写专栏&#xff0c;从和后端紧相关的计算机核心课程开始、到JAVA SE、JAVA EE、到数据库、MQ等各类中间件、再到业务场景、性能优化。当然也会涉及一…

DWM 相关实现代码 [自用]

1. DWM 缩略图和模糊隐藏实现半透明 #include <windows.h> #include <dwmapi.h> #include <string> #pragma comment(lib, "dwmapi.lib")// 检查 UWP 窗口是否可见 bool IsUWPWindowVisible(HWND hwnd) {DWORD cloaked 0;DwmGetWindowAttribute(…

基于jeecgboot-vue3的Flowable流程-集成仿钉钉流程(六)仿钉钉流程的转bpmn流程图

因为这个项目license问题无法开源&#xff0c;更多技术支持与服务请加入我的知识星球。 1、转bpmn流程图接口 /*** 转为bpmn xml格式* param processModel* throws IOException*/PostMapping("/ddtobpmnxml")public Result<?> ddToBpmnXml(RequestBody Proce…

Linux 初识

目录 ​编辑 1.Linux发展史 1.1UNIX发展历史 1.2Linux发展历史 2.Linux的开源属性 2.1 开源软件的定义 2.2 Linux的开源许可证 2.3 开源社区与协作 3.Linux的企业应用现状 3.1 服务器 3.1.1 Web服务器 3.1.2 数据库服务器 3.1.3 文件服务器 3.1.4 电子邮件服务器 …

天润融通引领客服革新,AI大模型助力品牌服务升级

AI时代&#xff0c;消费零售品牌的客户服务应该怎么做&#xff1f; 如今消费者的关注点已经越来越复杂&#xff0c;一条毛巾&#xff0c;关注点就可以包括&#xff1a; 是否婴幼儿可用&#xff0c;是否儿童成人可用&#xff1b;是否可以直接接触皮肤&#xff1b;是否无甲醛、…

算法日常练习

对于这个题&#xff0c;如何处理同一个方向的问题&#xff0c;且对于同一组的如果间隔太大如何实现离散化 #include<bits/stdc.h> using namespace std;#define int long long typedef long long ll; map<pair<int,int>,vector<pair<ll,ll>>> mp…

张量笔记(4):张量网络

张量分解通常是将高维张量分解成一系列较低维的张量&#xff0c;表示能力相对较低。而张量网络可以表示复杂的高维数据结构&#xff0c;通过连接多个张量形成网络结构&#xff0c;可以更灵活地表示和处理复杂的数据关系。本节主要介绍HT和TT网络。 2.5.1 HT分解——首先我们引入…

Neo4j安装

下载地址&#xff1a;Neo4j Deployment Center - Graph Database & Analytics 1.安装jdk&#xff0c;Neo4j 3.0需要jdk8&#xff0c;2.3.0之前的版本建议jdk7。Neo4j最新版本5.21.2&#xff0c;对应jdk版本17 2.将下载的zip文件解压到合适路径。 3.设置环境变量NEO4J_H…