如何入门AI Agent?

随着chatgpt问世,大模型已经在加速各行各业的变革,这是我之前对AI Agent行业的粗浅判断。

图片

下面给大家介绍一下如何制作AI Agent,我会用我开发的全赞AI为例子进行简要的介绍,下面是一种工具型AI Agent的框架图

图片

这是一个大量使用工具的Agent。Agent需要基于LLM才能正常工作,这里面有两种选择,要么直接用chatgpt的gpt4 api, 要么自己基于开源的大模型finetune一个自己的(我之前也有文章介绍过如何使用阿里云进行finetune)。前者需要你有一个国外的服务器(CPU即可,不需要GPU),并且按需付费;后者需要有自己的GPU并且需要你有finetune的能力。

搞定了LLM,就是用langchain这个粘合剂来做一些提示词工程了,这是一个插画家的Agent的提示词内容。

图片

当然为了支持上下文,你需要用数据库记住用户和AI的问答内容,

图片

最后就是初始化这个agent。

图片

你会发现这里面还有一堆的tools,因为我之前就有几百个工具API的积累,我直接用restful api引入就可以了。比如文生图我直接发个请求就行了。

图片

当然,上面这个是一种比较简单的Agent,还有一些Agents需要做语义搜索,比如知识库搜索等,这里需要使用向量数据库。比如下面这个首席商务官的机器人,需要从几千个行业报告中获取答案。大体的制作过程是你先要准备好你的知识库文档(pdf,txt等等),然后获取这些文档的embeddings, 可以用OpenAIEmbeddings(不贵,但是得注意频率,太快会出错),然后将得到的这些embeddings存到向量数据库中(例如FAISS),准备工作做好之后,当用户有问题,也是将用户的问题转成embedding,然后去向量数据库中搜索答案。

图片

当然,在制作的过程中会发现很多很多的问题,例如prompt老是不听使唤,即使答案已经摆在那儿了,Agent还是返回一堆废话,这就需要一定的debug能力了,非一日之功,得慢慢培养。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探索海洋世界,基于YOLOv8全系列【n/s/m/l/x】参数模型开发构建海洋场景下海洋生物检测识别分析系统

前面的博文中,开发实践过海底相关生物检测识别的项目,对于海洋场景下的海洋生物检测则很少有所涉及,这里本文的主要目的就是想要开发构建基于YOLOv8的海洋场景下的海洋生物检测识别系统。 首先看下实例效果: 简单看下实例数据情况…

解决 postman测试接口报404 Not Found

JDK版本:jdk17 IDEA版本:IntelliJ IDEA 2022.1.3 文章目录 问题描述原因分析解决方案 问题描述 当我使用postman测试接口时,报了 404 Not Found 的错误,报错截图如下所示 但我的后端程序中已经定义了该接口,如下所示 …

MySQL-----DCL基础操作

▶ DCL简介 DCL英文全称是Data ControlLanguage(数据控制语言),用来管理数据库用户、控制数据库的访问权限。 DCL--管理用户 ▶ 查询用户 use mysql; select * from user; ▶ 创建用户 ▶ 语法 create user 用户名主机名 identified by 密码 设置为在任意主机上访问…

Netty应用(七) 之 Handler Netty服务端编程总结

目录 15.Handler 15.1 handler的分类 15.1.1 按照方向划分 15.1.2 handler的结构 15.2 输入方向ChannelInboundHandlerAdapter 15.2.1 输出方向Handler的顺序 15.2.2 多个输入方向Handler之间的数据传递 15.2.2.1 handler消失了 15.2.2.2 手动编写netty提供的new Strin…

C语言之预处理详解

目录 1. 预定义符号2. #define定义常量3. #define定义宏练习 4. 带有副作用的宏参数5. 宏替换的规则6. 宏函数的对比宏和函数的一个对比 7. #和###运算符##运算符 8. 命名约定9. #undef10. 命令行定义11. 条件编译常见的条件编译 12. 头文件的包含头文件的包含方式库文件包含嵌…

【数据结构】11 堆栈(顺序存储和链式存储)

定义 可认为是具有一定约束的线性表,插入和删除操作都在一个称为栈顶的端点位置。也叫后入先出表(LIFO) 类型名称:堆栈(STACK) 数据对象集: 一个有0个或者多个元素的有穷线性表。 操作集&#…

【后端高频面试题--Mybatis篇】

🚀 作者 :“码上有前” 🚀 文章简介 :后端高频面试题 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬 后端高频面试题--Mybatis篇 什么是Mybatis?Mybatis的优缺点?Mybatis的特点…

蓝桥杯每日一题------背包问题(三)

前言 之前求的是在特点情况下选择一些物品让其价值最大,这里求的是方案数以及具体的方案。 背包问题求方案数 既然要求方案数,那么就需要一个新的数组来记录方案数。动态规划步骤如下, 定义dp数组 第一步:缩小规模。考虑n个物品…

锐捷(十九)锐捷设备的接入安全

1、PC1的IP地址和mac地址做全局静态ARP绑定; 全局下:address-bind 192.168.1.1 mac(pc1) G0/2:ip verify source port-securityarp-check 2、PC2的IP地址和MAC地址做全局IPMAC绑定: Address-bind 192.168.1.2 0050.7966.6807Ad…

144. 二叉树的前序遍历

给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 示例 1: 输入:root [1,null,2,3] 输出:[1,2,3]示例 2: 输入:root [] 输出:[]示例 3: 输入:root [1] 输出&a…

每日一个shell脚本之自动化采集监控指标+登录欢迎

每日一个shell脚本之自动化采集监控指标登录欢迎 效果图参上 源码奉上 #!/usr/bin/bashclear#空闲内存Frfree -h | awk NR2{print $4}#已用内存Usfree -h | awk NR2{print $3}#系统存储空间Us_systemdf -Th | grep /dev/ | tail -1 | awk {print $4}Us_freedf -Th | grep /de…

【Linux进程间通信】用管道实现简单的进程池、命名管道

【Linux进程间通信】用管道实现简单的进程池、命名管道 目录 【Linux进程间通信】用管道实现简单的进程池、命名管道为什么要实现进程池?代码实现命名管道创建一个命名管道 理解命名管道匿名管道与命名管道的区别命名管道的打开规则 作者:爱写代码的刚子…