当前位置: 首页 > news >正文

AutoGen学习笔记系列(二)Tutorial - Messages

这篇文章瞄准的是 AutoGen 官方教程中的 Messages 小节内容,介绍了这个库中的一个数据类型 Messages 的定义与使用:

  • 官方链接:https://microsoft.github.io/autogen/stable/user-guide/agentchat-user-guide/tutorial/messages.html# ;

Types of Messages

根据官网上的描述,AutoGen 库提供了Message类,其作用是实现 消息传递,在设计上考虑了两种消息传递的需求:Agent-Agent之间传递、内部事件传递。这个作用有点像他们定义了一个通讯协议或者说是对内容进行了结构化,所有该库内的信息都需要遵守这个通讯协议,这样做的最大好处在于可以规避文本解析出错风险。


Agent-Agent Messages

官网在这一小节给出了两个实例来教你如何定义messages,这些信息都可以直接通过 on_messages() 或者 run() 传递给模型。

  • 纯文本信息 TextMessage
from autogen_agentchat.messages import TextMessage

text_message = TextMessage(content="Hello, world!", source="User")

print(text_message.content)

运行结果如下:

$ python demo.py
Hello, world!
  • 图像数据 MultiModalMessage
from io import BytesIO

import requests
from autogen_agentchat.messages import MultiModalMessage
from autogen_core import Image as AGImage
from PIL import Image
import cv2
import numpy as np

# 拉取一张图片
pil_image = Image.open(BytesIO(requests.get("https://picsum.photos/300/200").content))
img = AGImage(pil_image)

# 定义图像数据
multi_modal_message = MultiModalMessage(content=["Can you describe the content of this image?", img], source="User")
img

# 此处额外增加了一部分显示图像的功能
opencv_image = np.array(pil_image)
opencv_image = cv2.cvtColor(opencv_image, cv2.COLOR_RGB2BGR)
cv2.imshow("Image", opencv_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

运行结果如下:

$ python demo.py

在这里插入图片描述

【Note】:上面的代码中使用了https://picsum.photos/300/200 这个链接,你可以直接登录他们的网页 https://picsum.photos 查看更多使用示例,这个网页提供了随机生成固定size照片的功能,是一个很有意思的网站。


Internal Events

作为一个现代 AI Agent 库,AutoGen 同样支持多个 Agent 协同工作,而 Messsage 本身也可以用于在多个Agent中进行内部传递。

官网教程在此处没有进行进一步举例,为了保证主干笔记与官网的一致性,我这里也不添加额外内容,后续会在该系列笔记的番外篇介绍如何花样使用 Messages 信息。

相关文章:

  • 服务降级
  • 惯性动捕手套:高精度、高性价比虚拟现实手套
  • 1.3 ASPICE的质量管理
  • 力扣刷题DAY4(哈希表+双指针/简单)
  • OpenHarmony 进阶——HDF 驱动框架的原理小结
  • PPT 小黑第38套
  • AI入门7:基于Ollama+DeepSeek+Dify搭建本地知识库
  • 28.<Spring博客系统⑤(部署的整个过程(CentOS))>
  • 鸿蒙HarmonyOS NEXT开发:使用三方库实现Echarts图表功能的实战指南
  • 大型网站系统架构演化相关书籍
  • 洛谷 P2437:蜜蜂路线 ← 高精度加法 + Fibonacci
  • 【秩序的涌现 关键字摘取】
  • 缓存那些事儿
  • 基于Windows11的RAGFlow安装方法简介
  • Serilog: 强大的 .NET 日志库
  • 国产编辑器EverEdit - 超级丰富的标签样式设置!
  • 迷你世界脚本背包接口:Backpack
  • 大模型学习--微调
  • 记一次渗透测试实战:SQL注入漏洞的挖掘与利用
  • 证明:曲线的可导点不能同时为极值点和拐点
  • 昆明做网站外包/佛山seo培训机构
  • 做yahoo代拍网站公司/新媒体销售好做吗
  • 深圳优质网站建设案例/综合搜索引擎
  • wordpress taobaoke/石家庄seo网站排名
  • 网站导航条制作/绍兴seo网站推广
  • 深圳宝安网站建设/百度推广开户怎么开