大模型之最火Agent实战(打造你代理)教程
参考资料地址1:https://pan.baidu.com/s/1ymxhyeFj_JX8DY3VeYJohg 提取码: 7k1q
参考资料地址2:https://share.weiyun.com/olW8Mzf0 密码:6bag56
代理(Agent)指能自主感知环境并采取行动实现目标的智能体。基于大语言模型(LLM)的 AI Agent 利用 LLM 进行记忆检索、决策推理和行动顺序选择等,把Agent的智能程度提升到了新的高度。
多Agent系统是一种全新的分布式计算技术,由在一个环境中交互的多个Agent组成。多Agent系统也能被用在解决分离的Agent以及单层系统难以解决的问题上。智能可以由一些方法、函数、过程、搜索算法或加强学习来实现。多主体系统的研究课题可以提供一个合适的视角去观察网络贸易,灾害应对以及社会结构建模。
LLM的五个阶段的过渡状态:操作工具➡建议者➡执行者➡控制器(决策者)➡高级智能体角色的变化背后是智能属性的增强,当然也是AI能力类脑发展的一个趋势。如果这样一个发展趋势是成立的,那么已经跑通了PMF的微软Copilot已经算是L3的顶级应用了。他的Moat本质上在于场景和深耕多年的B端资源。当场景的价值弱化,那么工程深度就需要增加“厚度”或技术增强来建立起整体的应用,以保证此类AI应用的Moat足够深。在AutoGPT、BabyGPT和GPT-Engineer的demo爆火之后,以LLM作为核心控制器来构建L4的Agent成为一个很酷的概念。应用场景的想象空间被打开,我们发现LLM的潜力不仅限于生成写得很好的副本、故事、文章和程序,它还可以作为一种强大的工具解决通用问题。
agent从简单到高配应该来说从可解释性以及系统复杂度而言都是逐步提高的。比如高配agent就分解了每一步的感知,决策,执行,整个pipline流程都能解释清楚。当然正因为pipline的工程架构,其相比end2end的方式复杂度也提升了多个等级。
@Component
public class RabbitMQConsumer {
/**
* 监听消息队列
* @param payload 消息内容
* @param message 消息对象
*/
@RabbitListener(queues = {RabbitMQConfig.QUEUE_DOWNLOAD_HTML})
public void watchQueue(String payload, Message message) {
System.out.println(payload);
}
}
当然,我们可以通过message对象,获得不同的路由key,去执行不同的业务:
String routingKey = message.getMessageProperties().getReceivedRoutingKey();
if (routingKey.equalsIgnoreCase("article.publish.download.do")) {
System.out.println("article.publish.download.do");
} else if (routingKey.equalsIgnoreCase("article.success.do")) {
System.out.println("article.success.do");
} else {
System.out.println("不符合的规则:" + routingKey);
}
OpenAI的联合创始人Andrej Karparthy在一次技术分享会上说大模型的不久的将来属于AI Agents,但同时也说AI Agents做DEMO容易,做产品落地却没那么容易。
@Component
public class RabbitMQConsumer {
/**
* 监听消息队列
* @param payload 消息内容
* @param message 消息对象
*/
@RabbitListener(queues = {RabbitMQDelayConfig.QUEUE_DELAY})
public void watchQueue(String payload, Message message) {
System.out.println(payload);
String routingKey = message.getMessageProperties().getReceivedRoutingKey();
System.out.println("消费者接受延迟消息:" + new Date());
}
}
在api工程中,引入eureka client依赖:
String serviceId = "SERVICE-USER";
List<ServiceInstance> instanceList = discoveryClient.getInstances(serviceId);
ServiceInstance userService = instanceList.get(0);
String userServerUrlExecute
= "http://" + userService.getHost() + ":" + userService.getPort() + "/user/queryByIds?userIds=" + JsonUtils.objectToJson(idSet);
feign本身就是基于http的调用,那么对于http调用有时候出现一些问题需要排查,那么我们是可以开启日志的,feign的日志很详细,开启后便于观察。
在yml中添加配置:
logging:
level:
com.imooc.api.controller.user.UserControllerApi: debug
# root: debug
# 配置feign
feign:
client:
config:
# 配置服务提供者的名称
SERVICE-USER:
loggerLevel: FULL
有疑问加站长微信联系(非本文作者)