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 信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值