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

本文的唯一目的是通过打造一款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应用落地的最佳形态。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C++初阶】类和对象(中)

【C初阶】类和对象(中) 🥕个人主页:开敲🍉 🔥所属专栏:C🥭 🌼文章目录🌼 1. 类的6个默认成员函数 2. 构造函数 2.1 构造函数概念 2.2 构造函数的特性 3. 析…

pytorch说明

深度学习中的重要概念: 激活函数: 激活函数的必要性:激活函数不是绝对必须的,但在深度学习中,它们几乎总是被使用。激活函数可以引入非线性,这使得神经网络能够学习更复杂的模式。 激活函数的位置&#x…

阿里云产品流转

本文主要记述如何使用阿里云对数据进行流转,这里只是以topic流转(再发布)为例进行说明,可能还会有其他类型的流转,不同服务器的流转也可能会不一样,但应该大致相同。 1 创建设备 具体细节可看:…

免费的AI抠图工具 毫秒级抠图 离线可用 -鲜艺AI抠图

鲜艺AI抠图是一款免费的AI抠图工具,不登录、不联网,内嵌 AI 模型,快至毫秒级抠图,支持批量抠图,支持点击按钮选择图片、拖入图片、粘贴图片、粘贴图片链接、从网页拖入图片,支持Windows和macos,…

Vue el-input 限制输入内容

&#x1f914;日常项目中经常遇到既要el-input的样式&#xff0c;又要el-input-number限制&#xff0c;所以需要绑定input事件进行约束输入限制。 以下使用自定义指令进行约束el-input输入的值&#xff0c;便于后期统一管理和拓展。 预览 代码 <!DOCTYPE html> <ht…

使用 NumPy 及其相关库(如 pandas、scikit-learn 等)时,由于 NumPy 的版本不兼容或者某些依赖库与 NumPy 的版本不匹配

题意&#xff1a; numpy.dtype size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject 问题背景&#xff1a; I want to call my Python module from the Matlab. I received the error: Error using numpy_ops>init thi…

Go 初始化一个字典value是列表

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

react的解构赋值

我最近在用react讨生活。我的感觉&#xff0c;react开发效率不高。这当然应该是我还不熟悉react的缘故。但是&#xff0c;在阅读react代码过程中&#xff0c;其中一个容易困惑的地方是它到处充斥着的解构赋值。当然了&#xff0c;解构赋值并不是React特有的功能&#xff0c;而是…

秋招Java后端开发冲刺——MyBatisPlus总结

一、 基本知识 1. 介绍 yBatis-Plus 是一个 MyBatis 的增强工具&#xff0c;在 MyBatis 的基础上增加了大量功能和简化操作&#xff0c;以提高开发效率。 2. 特点 无侵入&#xff1a;只做增强不做改变&#xff0c;引入它不会对现有项目产生影响。依赖少&#xff1a;仅仅依赖 …

【VS2019】安装下载库HtmlAgilityPack,可解析 HTML (图文详情)

目录 0.背景 1.环境 2.详细步骤 0.背景 项目需要&#xff0c;搭建WCF服务&#xff0c;需求是输入一个string类型字符串&#xff08;网页代码&#xff0c;如<html><body><p>Hello, <b>World</b>!</p></body></html>&#xf…

华为配置蓝牙终端定位实验

个人主页&#xff1a;知孤云出岫 目录 配置蓝牙终端定位示例 业务需求 组网需求 数据规划 配置思路 配置注意事项 操作步骤 配置文件 配置蓝牙终端定位示例 组网图形 图1 配置蓝牙终端定位示例组网图 业务需求组网需求数据规划配置思路配置注意事项操作步骤配置文件 业…

NAT地址转换+多出口智能选路,附加实验内容

本章主要讲&#xff1a;基于目标IP、双向地址的转换 注意&#xff1a;基于目标NAT进行转换 ---基于目标IP进行地址转换一般是应用在服务器端口映射&#xff1b; NAT的基础知识 1、服务器映射 服务器映射是基于目标端口进行转换&#xff0c;同时端口号也可以进行修改&…

力扣每日一题:3011. 判断一个数组是否可以变为有序

力扣官网&#xff1a;前往作答&#xff01;&#xff01;&#xff01;&#xff01; 今日份每日一题&#xff1a; 题目要求&#xff1a; 给你一个下标从 0 开始且全是 正 整数的数组 nums 。 一次 操作 中&#xff0c;如果两个 相邻 元素在二进制下数位为 1 的数目 相同 &…

Manim的代码练习02:在manim中Dot ,Arrow和NumberPlane对象的使用

Dot&#xff1a;指代点对象或者表示点的符号。Arrow&#xff1a;指代箭头对象&#xff0c;包括直线上的箭头或者向量箭头等。NumberPlane&#xff1a;指代数轴平面对象&#xff0c;在Manim中用来创建包含坐标轴的数学坐标系平面。Text&#xff1a;指代文本对象&#xff0c;用来…

WEB前端02-HTML5基础(02)

7.表格标签 在基本表格结构中&#xff0c;表格标题、项目表头和数据资料构成了表格基本结构三个要素。 table标签&#xff1a;定义表格整体 <caption>我的标题</caption>&#xff1a;表格的标题tr标签&#xff1a;定义表格的行 height&#xff1a;设置行的高度…

探索 Prompt 的世界:让你的 AI 更智能

探索 Prompt 的世界&#xff1a;让你的 AI 更智能 引言什么是 Prompt&#xff1f;Prompt 的重要性如何编写有效的 Prompt1. 清晰明确2. 包含关键细节3. 提供上下文 实践中的 Prompt 技巧1. 多次迭代2. 实验不同风格3. 结合实际应用 总结 引言 随着人工智能&#xff08;AI&…

卸载wps office的几种方法收录

​ 第一种方法: 1.打开【任务管理器】&#xff0c;找到相关程序&#xff0c;点击【结束任务】。任务管理器可以通过左下角搜索找到。 2.点击【开始】&#xff0d;【设置】&#xff0d;【应用】&#xff0d;下拉找到WPS应用&#xff0c;右键卸载&#xff0c;不保留软件配置 …

Java 设计模式系列:解释器模式

简介 解释器模式是一种行为型设计模式&#xff0c;它提供了一种构建抽象语法树的机制&#xff0c;并定义了如何解释这棵树。解释器模式属于编译原理中的语法制导翻译的范畴。 如上图&#xff0c;设计一个软件用来进行加减计算。我们第一想法就是使用工具类&#xff0c;提供对应…

【微信小程序知识点】getApp()全局数据共享,页面间通信,组件间通信

getApp()-全局数据共享 在小程序中&#xff0c;可以通过getApp()方法获取到小程序全局唯一的App实例。因此在App()方法中添加全局共享的数据&#xff0c;方法&#xff0c;从而实现页面&#xff0c;组件的数据传值。 // app.js App({//全局共享的数据globalData: {token: &qu…

prompt第二讲-langchain实现中英翻译助手

文章目录 prompt模板 (prompt template)langchain 中的prompt模板 (prompt template)langchain实现中英翻译助手 prompt模板 (prompt template) 开篇我介绍了在llm中&#xff0c;通常输入的那个字符串会被我们称之为prompt&#xff0c;下面就是一个中英文翻译助手的prompt例子…