欢迎来到第五周第二天，我们将深入了解 Autogen 代理聊天。
因此，作为提醒，我想将这些内容展示几次。
Autogen 是多种不同的东西。
Autogen 核心是代理交互的基础设施。
Autogen 代理聊天功能非常类似于船员和 OpenAI 代理 SDK。
然后在此基础上构建我们不会看到的无代码、低代码平台工作室
以及他们的特殊工具 Magentic。
但我们要讨论的是 Autogen，今天更多的是 Autogen 代理聊天。
你还记得我们讨论过模型、消息和代理的核心概念，我们必须看到
商场。
我们实际上并没有谈论团队。
今天我们要深入一点。
我们总是喜欢更进一步。
但其中大部分都是您非常熟悉的概念。
我们将讨论多式联运。
呃，我猜这就是新的。
我们以前还没有真正这样做过。
所以这将是一个新的尝试。
我们将讨论结构化输出，这是一个您很熟悉的老栗子。
我们要看看一些有趣的事情。
我们实际上可以将工具包装在长链中，这样我们就可以调用Autogen中的长链工具，即
这将非常方便，尤其是我们现在对长链工具非常有经验。
因为有一个巨大的生态系统，有很多工具可供选择。
所以能够接触到这个是相当奢侈的。
既然我们把团队放在那里，我们就更好地关注团队。
所以我们也将快速尝试一下。
然后还有一个特殊的嘉宾入场。
我将向您展示其他一些可能会让您感到高兴的东西。
好吧，够了。
我们去做吧。
好的。
所以我们进来了。
现在已经是第五周了。
第二天我们要去第二个实验室。
第五周，第二天。
Autogen 代理聊天。
更深入。
所以我有一堆导入，包括我也将 load dot env 推入导入中，这样我们就可以
继续做事。
好的。
因此，我将首先向您展示如何进行多模式对话
不仅仅是文本，您还可以将图片与文本一起发送，并将其作为文本的一部分。
现在我们已经有了一个 URL，该 URL 链接到我网站上的图像。
然后我们将使用非常标准的 Python 图像库打开该图像。
Pil 代表的是 Python 图像库。
我们将从中创建一个 autogen 图像，然后查看它。
所以就是这样。
这是一幅很酷的图片，旨在唤起人们进入人工智能世界的感觉。
所以我们现在要创建一个多模式消息。
所以你记得过去我们有过短信。
嗯，这是类似的。
这是一条多模式消息，其内容带有列表。
它有一些文字来详细描述该图像的内容。
然后它就得到了图像，来源是用户。
那就是我。
因此，只需运行即可创建多模式消息。
然后将其发送到 GPT 4 或 mini 就像我们之前所做的一样简单。
我们创建模型客户端，然后创建助理代理。
我称之为描述者或实名描述代理。
你传入的模型客户端，当然就是LLM，系统消息。
你很擅长描述图像。
很公平。
然后呃，然后用户提示，当然就在那里。
然后我们传入多模式消息，我们也只是说取消令牌。
然后我们将打印该回复的 Markdown 版本。
这需要一点时间，因为它必须吸收该图像并且必须得到
返回它的所有响应。
所以我必须让这句话继续说很久才能看到我们得到什么。
就是这样。
呃，还不错。
呃，所以你会发现它已经起作用了。
呃，该图像描绘了一个色彩鲜艳、风格化的空间，它将工作空间的元素与
异想天开、超凡脱俗的门口。
当然，我们还有，因为模型非常擅长降价，这就是他们所喜欢的。
这是他们的母语之一。
您可以获得房间布置、家具、门口、装饰元素。
总体而言，该图像巧妙地将专注于技术和编码的工作区与富有想象力的工作区交织在一起
以及激发人工智能无限可能性的充满活力的元素。
所以这绝对是个笑话。
它理解图像的含义，并且很好地描述了图像。
这是 Autogen 的多模式消息的示例。
然后对于我的下一个技巧，今天我真的要向你快速扔东西，因为你知道，
其中大部分内容我们将进行结构化输出，这是您所熟知的。
这让 Autogen 变得非常容易。
确实如此。
所以这是 Pydantic 基本模型的一个子类，称为图像描述。
这就是我所说的。
我想用法学硕士的答案来填充这个课程。
所以我给了它四个对于看到的字段，消息，样式和方向，这就是我想要的模型
以特定的结构来描述图像。
也许我会把它放在我的用户界面上。
也许我会以某种方式对其进行编目，将其写入 SQL 数据库。
所以我然后用迂腐的领域来描述每一个。
场景在图像信息中被简要概括，即图像试图传达的要点
风格，艺术风格和取向。
所以我们要问它一个更具分析性的问题，比如，这是什么，一幅肖像
图像，风景图像，或者方形图像，这就要求它有稍微多一点，呃，多一点
对它正在查看的内容有元理解吗？
呃，所以，呃，我们会看看它的表现如何。
所以这就是我们希望它填充的迂腐对象。
这是代码。
呃，和以前一样，我们创建模型客户端，GPT 4 mini。
这是我们的代理人。
又是描述代理，相同型号的客户端，相同的提示，这是唯一的变化
输出内容类型等于，我们传入迂腐的对象。
超级简单。
它只是让我们说出我们想要的东西。
所以我们现在，我们期望的是，当我们呼吁消息时，你会得到同样的事情
用来唤起，呃，调用，使用这个术语，呃，和你用来称呼这个LM的东西一样，
嗯，什么回来了？
我们期望的回复只是该对象的一种类型。
它将用这个对象来回复。
请记住，感觉模型能够使用 Python 对象进行回复。
以及幕后发生的事情。
我知道你知道这一点。
这一切都只是 JSON。
这将转换为某种 JSON 规范，然后模型返回 JSON 和包装器代码
从 JSON 填充此对象。
好吧，让我们运行一下。
我们再次执行相同的图像，这意味着我应该在我闲聊时运行它
这样我就不必用我的废话来填补死气沉沉的空气了。
但已经完成了。
以及我们得到的回报。
我刚打印出来。
它确实是一个图像描述对象。
这是一个例子，您可以看到场景已填充。
让我们把这个打印出来吧。
所以我正在使用一种叫做文本换行的东西，它打印一些格式化的东西，呃，换行
位于一定数量字符的末尾。
我们将打印场景、消息、样式和方向。
呃，一切都在这里。
呃，这很漂亮，很清爽，看到一个色彩缤纷、富有想象力的房间内部展示了一个工作空间
以及一扇通向充满活力的门户信息的门。
该图像传达了创造力和人工智能潜力的主题，暗示了通往新可能性的大门。
风格 充满活力、说明性的风格，采用大胆的色彩和夸张的特征，赋予其超现实的感觉
以及俏皮的外观和方位景观。
它正确地识别出了这实际上是一张风景图片的基本知识。
呃,如果我们也回到图片上来,我会指出一些很聪明的东西,这只是我
意识到，实际上现在正在和你谈论这个，那个，呃，这里不存在。
目前尚不清楚为什么它认为这与人工智能有关。
答案是，你可以看到，因为写作人工智能就在这里，我认为这是唯一的线索，
除非我遗漏了一些明显的东西，否则这是这张图的唯一线索
来自，来自，来自我上过的一门课程，这门课程是关于，你知道，门口，它意味着什么
进入人工智能的世界，呃，呃，嗯，是的，我开设这门课程很有趣
我把它作为我的，我的形象，所以我在那里有人工智能。
有趣的是，它发现了这一点并将其包含在描述中。
我不得不说非常非常令人印象深刻。
但这不是重点。
这样做的目的是向您展示我们可以轻松地使用结构化输出，并且我们可以取回我们的
数据。
这就是根据这个模式。
如果需要的话，这将使我们能够进行更多处理。