ai 浏览器网页控制自主工作流规划这是一个云服务商公单管理平台,这是客服电话记录转文字,我们需要把电话记录填写到公单登记表,打开木头 ai 浏览器, ai 助手在聊天框中粘贴客服电话记录, 然后要求 ai 循环填写用户公单。为了能看清填写效果,每填写一个暂停五秒。 ai 首先理解我们的要求, 在第一轮决策中识别填写首个用户信息,第二轮判断表单未填写完毕,继续思考完成第一个用户信息填写提交成功,暂停五秒后进入第三轮决策,这一次瞬间识别工单信息并完成填表。
粉丝2410获赞2046

面试时被问到大模型结构化输出解决方案,同学们,这个问题在面试里出现的频率极高,如果你的回答只是我在 prompt 里加一句,请输出 jason, 或者我多给他几个例子,那面试官只会觉得你是个提示词,调包侠。为什么?因为在真正的工业级生产环境下,大模型是概率生成的,概率就意味着不确定性。今天我不仅要教你怎么解决这个问题,还要带你从底层积累到架构设计, 彻底搞懂这套专家级的方案。 ai 大 模型学习资料可以在主页置顶群里。大家好,我是彭宇。先看病音,我们首先得问个为什么,为什么大模型这么聪明,却连个简单的 json 括号都闭合不了?大家看屏幕, 咱们从三个维度来拆解。首先是 next token 机制,大模型本质上是个概率复读机,他每吐出一个字,其实都是在算概率,他脑子里没有语法数, 他不知道左括号必须对应右括号,他只是觉得这时候出个括号概率比较大,但这事没保票。其次是讨厌的 r l h f, 也就是人类反馈对齐 模型,被训的太想当好人了,你问他要数据,他非要客气一下,说好的没问题,这是为您准备的 jason, 哎,这一客气, 你的代码解析器就该报错了。最后是 token 编码的问题,看这个图标为什么叫截断冲突?因为 jason 里的特殊符号在 tokenizer 编码的时候, 权重分布很乱,尤其是长文本生成,模型生成到后面累了,计算资源或者注意力一散,括号就丢了,这就是病根。那在实际开发中, 这些病根会演变成什么样的翻车现场呢?我给大家列了四个最让程序员崩溃的坑,你们看看有没有似曾相识的感觉?第一, markdown 标签包裹 模型,喜欢输出那三个反引号,加上 jason 关键字,这东西在 ui 界面好看,但你直接扔给解析函数,保准报错。第二,长文本截断, 你让他提取五十个人的信息,吐到第四十八个的时候, token 达到上限了, jason 戛然而止,这种段尾式的输出后处理非常难受。第三, key 明幻觉,这个最坑,你明明在 prompt 里写了字段,叫 user 下划线 id, 他 生成的代码里给你写成拼在一起的 user id, 甚至写成中文用户 id, 字断名一错,下游业务逻辑全线崩溃。第四,类型不兼容,该给数字给字母串,该给数族给个 no。 这四座大山靠简单的 prompt 调优是没法完全搬走的。既然病音找到了,坑也看清了,怎么解决?这就是我今天要讲的核心,四层深度防御体系, 咱们一层一层往上加。第一层,羽翼归一,这是咱们的老手艺了,写清楚 jason skit 少样本示意, 这层的作用是让模型知道你想干嘛,能解决百分之六十的基础问题。第二层,原生协议控制,这里的重点是能用官方模式就别自己写 prompt, 现在主流大模型 api 都支持 json 或者 to call 链,这相当于在模型底层强制开启了一个开关,告诉他别废话, 只许吐参数,这能再解决百分之二十的问题。第三层,也是最能体现你专家水平的解码引导层,大家看这个磁铁图标, 这里涉及到一个很硬核的技术,叫 logitech masking, 分 值掩码,代表工具是 outlines 或者 guidance, 它的原理是在模型生成每一个 token 的 那一毫秒, 用一个状态机去过滤,如果不符合 jason 语法,那个词的概率直接被抹成零。这相当于给模型修了一条导轨,他想跑偏都跑不了。这是目前实现百分百格式正确的最优解。最后第四层解析自愈层,咱们得有防御性编程思维,万一真出错了呢?这时候 我们要引入 jason repair 这种库,去自动补全丢掉的括号,删掉多余的废话。同时结合 python 教验,一旦发现类型不对, 立刻把错误日制塞回给模型,让它重新生成,这就是 self correction 自修复循环。讲到这,大家发现没有,解决 jason 输出问题,其实是一场消除不确定性的战争。咱们看最后的专家聚焦。 第一,防御性编程永远不要信任模型的原始输出,必须通过较验网关。第二,方案分级,小打小闹,用 prompt 正儿八经做业务,必须上 to calling, 甚至约束解码。第三,反馈必还错并不可怕,可怕的是你没有自动纠错的机制。所以呢, 回到面试官那个问题,你不要只谈 prompt, 你 要从语义、协议、踩样、融错这四个维度去聊架构。记住一句话,大模型是感性的,但工程是理性的,用确定性的架构去约束概率性的输出,这就是专家。

这个后面再讲,后面我们先把三个生成 jason 的 方式给大家去进行一个讲解,学会 ai 自动化工作生活全拿下。大家好,我是瑞口,上一节课呢,我们讲了一个非常重要的概念,叫做 jason, 那 我们知道 jason 其实相当于是自动化工作流的灵魂了,我们想要学习自动化工作流,无论你是学习 code 呀, mac 呀, em 呀,都离不开 jason 这个概念,这个数据的储存的方式以及数据传递的方式。 那么如何在 mac 里面具体的去使用 jason 呢?它到底是怎么样去处理呢?这一刻我们就给大家来进行一些具体的案例的展示。 那因为 mac 的 本质是一个数据工厂,它的本质是对 jason 进行处理,比如说创建一个 jason, 比如说 拆分提取 jason 里面的某一个数据,或者是提取出来这个数据之后对它进行处理。那 mac 其实它里面很多模块其实做的就是这种事情。那我们来看啊,首先就是来我们到 mac 的 一个官网里面,我们来看怎么样去创建一个 jason。 mac 里面创建 json 的 方式呢?有三种。第一种就是我们可以直接手动地去输入一个 json, 比如说我们用这个工具,这个工具里面有很多模块,比如说设置一个变量呀,或者是文本相关的,我们都可以啊,比如说我们常用的设置一个变量, 那这个变量我们命名为 json, 这里呢?值呢?这个变量的值我们就可以手动敲出来,比如说我之前写了一个,这里直接给大家展示啊,我们来看一下啊, 这是个 json, 对 吧?它是基于我们上一节课讲的 json 的 规则,是符合这个规则的,首先是括号,然后呢这是键值队,这是它的键冒号引号,这是订单编号,是一个 text, 这个大家还记得吧?这个五呢?没有引号说明它是一个 number 啊,这个也是一个 number, 这个呢是布尔型,因为它是 fall 或 choose, 这个是个日期,但是呢,它是一个文本型啊, 这是一个 collection, 这是一个数据库里呢,也是 collection, 基本上这是一个非常常规的一个 json。 好, 我们创建之后,点击保存,运行一下,我们看一下这个模块的输出, 看一下它输出之后呢,它是以这种字母串的方式来进行输出的啊, 这里显示的是一个长字母串,看到没?所以呢,它是一个 jason 的 字母串,这是一种创建的方式,有一些输入的地方,我们可以手动设置一个,当然也可以通过数据映设,比如说我们手动创建一个 jason 的 结构之后呢,如果前面有模块,我们可以把这个时间,对吧?我们可以给它, 哎,比如说这里时间,我们可以这样,我们确定了一个接收的结构之后,我们删除,这里面有一些添加时间的一些点,之前我们讲的这个,比如这个 now, 这个时间就变成现在,对吧?我们再运行一下,看一下, 你看这个时间,现在就变成当前的时间了,我们也可以通过这种方式来进行数据的映设。好, 那这是第一种方式,第二种方式呢,就是我们可以使用 mac 里面自带的 jason 的 工具来进行创建,我们来看一下,点击加号输入 jason, mac 里面提供了专门的 jason 的 工具,搜索一下,可以看一下啊,这个 jason 里面有很多啊,有创建 jason 啊,创建 jason, 我 们选一下, 好,看一下,创建 jason, 它这个每一个 jason 它都是一个数据结构,对吧?它每个 jason 的 结构是不一样的,所以呢,我们可以去在这里添加一个结构,或者是选择已有的结构,比如说我们以这个 微信图文的公众号图文的 jason 的 结构,我们点一下这个创建 jason, 如果你第一次创建,你可以点击这个加号,点加号你会看到我们就可以添加什么, 比如说第一个名字,就这个剑的名字,他是什么类型?我们讲过四大天王是吧?是 collection, 是 布尔啊什么的都在这里面啊,就在里面创建,你可以再添加,添加之后呢?如果比如说我们这里选择 collection, 因为 collection 还有下一节吗?我们可以再层层嵌套,因为我们讲的是一个 jason 的 结构,它是可以多级嵌套的,我们可以创建一个数据结构,创建数据结构之后,以后你就可以再去使用了。你比如说我这个某信公众号的图文的 jason, 结构是我之前创建好的,那我这里选择之后呢,我就可以往里面去输入内容,比如说这个素材啊,新闻的热度,那么比如说一二三,随便输一个链接也是 随便输一个吧,我随便输一点,给大家演示一下,就用这图片,用这标题内容。好,下面继续啊,标题我们随便输啊,作者摘要图片 url 文章的内容,你看他有多级结构的,这个呢,可能是一级标题,再往后面文章的内容,我们可以再添加文章内容段落编号,这个要填数字的,必须要填数字啊,因为他是个井号。段落,这个就文本就随便填了,段落内容好配图, 这是第一段,其实我们还可以再添加,那这个段落呢?比如说第二段,对吧?好,随便,好,我们就这样给大家演示一下,我们保存点击运行之后看一下啊, 看一下输出,它创建的呢也是一个 jason 的 字串,是一个非常标准的金文字串,只不过它没有换行,没有进行美化嘛,但是它是一个 jason, 我 们如何判断它是一个 jason 呢?这个字串我们如何变成?哎,我们平时的这种输出的可以去解析的呢? 那这里就要讲的第二个就是关于 jason 的 解析,这个后面再讲,后面我们先把三个生成 jason 的 方式给大家去进行一个讲解,第三种方式是什么呢?第三种方式就是使用 ai 去生成 jason, 那 这个的话其实也是非常方便的,因为 ai 现在能做很多事情,比如说我们选择 deepstack, 我们选择用 ai 去生成 json, 有 两个必要的条件。第一个必要条件就是你要确认这个大模型它是有输出结构化数据的能力的,如果你不确定,你就去阅读这个 ai 的 相关的 api 的 文档,它会明确的写它能不能输出结构化数据, 如果 ok, 能输出结构化数据,它才能够去生成 jason, 如果不行的话是不行的,这是第一个前提条件,那比如说这个 basic 呢?我之前阅读过它的文档,它是可以的,比如说我们给它一个角色 jason, 比如说让它输出一个 jason 啊,我们给它一个提示词,输出一个标准的 jason。 然后呢第二个必要条件是你要告诉它这个 jason 的 势力结构 啊,你要你要明确的告诉他输出的这个 json 它的结构是什么样的?比如说市力, 我们给他一个市力,你告诉他这个该怎么输出,比如说我把我把这个 json 输给他,我告诉他这个时间大概是什么时候,然后呢其他的数据给他一个市力,你也可以在这里面给他写要求每一个建值啊,怎么去命名啊?要求你要明确的告诉他 这是它的第二个必要条。第三个必要条件是什么呢?我们选择刚才讲了选择一个能够输出 json 的, 比如说这个啊,第三个必要条件是这里一般 ai 输出都有一个,你让它输出文本还是输出 json, 我 们要选择输出 json, 选择输出 json 啊,就这三个条件,我再重复一下,第一个要确认这个大模型他是有结构化输出的能力的。第二个提示词里面你要明确的说明你要让他输出一个 jason, 并且给他一个 jason 的 势力结构。第三个就是要选择确保他输出的是一个 jason 的 结构,然后我们点击确认保存,然后运行一下,这个时候呢他应该写 jason, 而且他会输出一个 jason, 等一下我们稍微看一下,看到 在这个结果里面我们点开,对吧?它输出的就是一个 jason, 就 一个 jason, 这是输出,那它为什么没有像这些条目一样有加号可以让我们选择里面的数据呢?因为这只是一个 jason 的 字母串。


很多人觉得 agent 团队合作就像几个人在群聊,其实这完全是拟人化包装出来的幻觉。如果你去翻看底层的技术日制,你会发现 agent 之间根本不存在什么透明对话,他们的合作本质非常枯燥, 就是不停地在读写 json 文件。简单来说,就是 a 代理往指定位置写了一段结构化数据, b 代理再去把它读出来解析,这就是 agent 通信的物理真相,不是在聊天,而是在跑数据交换。 既然知道了底层是 json 读写,那就别停留在猜想,直接把相关的源码或者运行日期丢给 ai, 给它一个明确指令,找出消息持久化的具体逻辑, 你要定位到那个具体的文件路径和数据结构。这一步的核心是把模糊的技术直觉变成确凿的代码证据,光知道原理还不够,你得让他看得见。 动手写个简单的日制看板。逻辑很简单,实时监听那个 j 散文件的变动,然后把数据抓出来,格式化显示在屏幕上。 当那些看不见的数据交换变成跳动的实时监控流,你就掌握了调试的主动权,不再是盲目的猜代码哪里出了错。最后一步,把这个临时工具封装成标准技能, 别每次调试都献血脚本,把它做成一个可调用的模块或者插件。以后不管你开发什么 agent 团队,直接挂在这个监控技能。 到这一步,你才算真正把一个技术细节转化成了你手里实打实的生产力资产,这种积累,就是你和普通开发者拉开差距的关键。很多人觉得写个日制看板只是顺手的事,但你要明白,生产力的差距就是由这些不起眼的小工具拉开的。 当你把验证、构建、封装这套动作标准化,形成自己的工具链,你会发现调试效率不是在慢慢提升,而是在翻倍增长。这种复利效应能让你在处理复杂系统时比别人快出一个量级。 最后说句扎心的,在这个时代,知道什么其实没那么重要,重要的是你能不能把看到的信息变成行动。别再把技术细节往收藏夹里塞了,那只会让你产生掌握知识的幻觉。 记住,信息的价值永远在行动之后才显现。下次看到好东西,按我说的三步走,验证原理、开发工具、封装技能,动起手来,这些信息才能真正变成你的资产。 道理讲完了,接下来就是实战,下集,我会手把手带你封装一个 agent 通信监控技能,把今天说的这套逻辑彻底跑通。我会分享完整的工具源码,建议关注一下我们下集,直接看代码。

今天和大家分享我近期做的一个 web coding 项目啊,就是借助 ai 调动大模型,实现我们课课程教案的自动化、标准化的批量生成啊。接下来我直接给大家看一下实际的啊这个效果。首先大家看这份学校发布的原始教案模板, 我们能看到这个模板上不仅内容要求很多啊,这个格式也是很规范很严格的。那么如果我们纯手动的去填写啊这单门课程的教案,那么需要耗费大量的精力,工作量非常大,因为这一门课程的话,可能会涉及到很多很多的教案, 而我们通过这个程序去调用大模型运行啊,我们就可以实现啊,高效的啊,这个批量的教程生成,我给大家看一下最终生成的这个效果啊,我以这个 java 高级编程这门课为例啊,我设置了为这门课生成十八个章节的十八个教案, 大家看一下最终这个效果生成的教案的格式啊,几乎是完全贴合啊学校的标准文档要求啊,并且我认真的核对过这个生成的内容啊,这个质量是非常高的,甚至有时候比我们手动写的内容还更精准啊,具有很高的这个参考价值。 我们这门课的教案的话,这十八个章节一共是六万多字,说通过我这样大模型生成,大概就是十分钟就完成了, 这可以说是手动便携教案难以比拟的这个效率。并且这个程序呢,并非对单一课程,它是一个通用的程序。我打开我们的工程文件,这里面有一个点 csb 的 这个表格文档,在这里面我们只需要填好 啊这个课程的基础信息和课程描述,我们运行程序后啊,就能嗯,非常快速的去生成啊。这个课程的完整教材还是比较便捷的,我基本上是测试了将近二十份课程的教材, 那这个后台使用的大模型是 kimi 二点五和 deepsea, 我 都试了一下,实测下来这两款模型的效果都不错 啊。最后我说明的是,这个项目仅作为 web 抠定的技术实践,那么在实际教学中,还是啊各位老师结合自己课程特点和学生的实际情况,认真编写教材吧 啊,不过啊,通过 ai 生成的教案啊,确实能为我们的教案便携工作提供啊非常有价值的内容参考和格式参考。那么如果有老师对这个项目的技术细节感兴趣,或者想要进一步交流的啊,希望大家在啊私信里留言,我们后续再详细讨论。

用 ai 做片子,真的不应该靠抽卡。今天我们做了很多 ai 的 项目,广告、品牌片、动漫、短剧,几乎每天都在跑 那。做了这么多项目,我们发现 ai 最坑人的地方不是生成失败,而是每一张都差不多,那种感觉特别折磨,好像什么都对,但好像什么都不对。所以呢,我们也养成了一种近乎本能的回避,只要是涉及到人物正面的表演,连续动作和对抗 就会换一种方式。但是做的越久,我们越清楚一件事,有些冲突你是绕不过去的。于是,真正棘手的问题一个个浮出水面,人物一旦连续动起来,形象还能保持吗?项目如果需要反复的修改,甚至是交付,最初的质感还能守得住吗? 拿我们最近完成的一部玄幻短片来说吧,我们没有一上来就追求视觉的轰炸, 而是先逼问自己,卡住我们的会是什么?我们发现,所有的动作和光影难题都卡在同一个根上。其实我们一直在对 ai 说废话,过去呢,写题的词就像在玩一场文字的游戏,八 k 超轻电影感,各种形容词堆满一屏,以为越多越好。 但这一次,我们换了一种沟通方式,不再堆砌形容词,而是在像导演一样在现场说戏,镜头怎么推,人物什么时候该停顿,情绪是沉淀还是迸发。沟通的方式一变,提日词就不再是创作的护城河了,而是一个阶段性的工具。当然,真正的挑战是藏在那些最容易被忽略的细节里。 第一个绕不开的就是人物的一致性,那在任何激烈动作生成之前,我们会提前从多个角度锁定人物的面孔、服饰和身材的比例,确保他不管怎么翻滚,依然是同一个人。 那人物稳定之后呢?光影才是让画面火起来的关键。就拿这个镜头来说吧,箭从下往上一挑,影子被劈开,光刷一下扫过他错格的脸,你会明显的感觉到这一张是有重量感的。那这一次我们也明显的感觉到了 ai 对 肢体和动作的逻辑的理解真的发生了质变。 以前处理打斗场面就是在抽卡,你永远不知道下一次会抽成什么样,只能不停的抽,靠运气撞出一两个还不错勉强能用的镜头。整个过程呢,是高度随机,也特别的消耗耐心。但随着技术的迭代, ai 开始能够稳定的给出一组连贯可用的动作训练,而不是靠运气的画面, 他能够帮你把最耗时的试错环节接了过去,这个时候你才能真正的把精力重新放回到判断、选择和你表达本身上 这一步呢。 ai, 它不再是一个能够让人焦虑的随机生成器,而是真正变成一个能够听懂意图, 配合你创作的小伙伴。所以我们现在回头看,才有了那句,用 ai 做片子,真的不应该靠抽卡,因为抽卡解决不了人物,解决不了空间,也解决不了情绪。 ai 可以 帮你跑的很快,但选不选、改不改,怎么就永远都是人的事。 那对于新的创造者来说, ai 确实是一次不用等设备,也不用等资历的机会,但前提只有一个,你得知道自己在选什么。 ai 不 会替你做判断,他只会把你的判断执行的比较快而已,嘿嘿嘿。

本视频将为你总结十八条 ai 智能体核心经验。这些方法无需复杂技术背景,且已被众多资深用户证明非常有效。掌握它们,你使用 ai 的 能力将轻松超越百分之九十的普通用户。第一条, ai 的 上下文就像牛奶,越新鲜越好。 当绘画信息堆积,模型就会开始变笨,产生幻觉。最核心的秘诀是,每开启一个新任务,必须毫不犹豫的使用 clear 命令,或者直接开启一个全新的绘画。第两条, 面对复杂任务,不要指望 ai 能一静到底,最聪明的做法是接力棒工作流,在第一个绘画里,让他做研究出结论,然后开启第二个全新的绘画,把结论喂给他,让他只负责执行,这样能完美避开上下文污染,让输出质量直接翻倍。 第三条,突破云端限制。当网页版工具拒绝处理你的超大表格或海量文件时,在本地文件夹唤醒 agent, 它没有文件大小限制,能持续工作几个小时,帮你完成数据的清洗和合并。第四条,与其每次重复偏好,不如建立本地员工手册。 在你工作文件夹里建个名为路由的文本文件,写清楚你的规矩。现在的 agent 会自动读取当前文件夹下的规则,相当于给数字员工发了一本入职说明。 第五条,彻底抛弃许愿式提示词,别总想着说一句话就让他把事办全,对,那是祈祷,不是指令。正确的做法是强制他分步走,先探索,让他读完文件跟你讨论才计划,要求他给出整理方案, 在你批准前严禁做任何修改,最后才是执行。只有你通过了计划,他才能动手,这种控制力才是区分高手和小白的分水岭。 第六条,为智能体设定自我验证机制。这是瞬间提升成功率最强的技巧。布置任务时顺手加一句,完成工作后,请你自己写一个验证脚本,或者执行一次检查,比如确保表格总格是百分之百。 没有验证的 ai, 结果看着漂亮,内里全是乱码,你要是不检查,就是在给自己埋坑。第七条,熟练掌握紧急刹车,发现智能体像脱缰野马一样开始瞎操作,立刻按退出键强行打断,不要傻等它结束,然后直接用撤销或者回退命令 让他撤销刚才的错误,这比让他重新做一遍要安全的多,也高效的多。第八条,触发深度思考。面对策划方案这种逻辑复杂的问题,在提示词里明确加上请深思熟虑或者强化思考, 现在的模型底层会因此触发更长的思考。炼录,让他把算力花在规划上,而不是急着吐字。磨刀不误砍柴工,思考预算给足了,逻辑才经得起推敲。第九条,严格隔离工作区。绝对不要在包含你个人隐私的根目录下启动 agent, 他能读取当前目录下的所有文件。如果你不想让他看到不该看的东西,或者不小心删掉你的重要文档,就必须为每一个具体任务新建文件夹,把需要的文件拖进去,只在这个隔离区里启动它。 第十条,为全天候运行的 agent 开设专属小号,绝对不要给他你的个人主账号权限,把他当成刚入职的新员工,为他注册独立的邮箱和云盘,这样就算他遭遇恶意指令注入或者逻辑暴走,你可以随时封号,把损失降到最低。 第十一条,明确负面清单大模型在遵循不要做什么时,往往比应该做什么更精准。在提示词里明确列出界限,比如不要删除原始文件,不要修改特定列,这种明确的边界感能让他的执行稳、准、狠。 第十二条,在 a 阵动手前永远打快照。在他进行任何批量重命名或内容替换之前,直接下命令,先帮我把整个文件夹复制一份,并命名为备份。不要嫌麻烦,这不仅是给他留空间,更是给你自己留一剂后悔药。 第十三条,开启并行工作。在网页版里,你只能排队等 ai 做事,但使用本地 agent 的 工具,你可以同时打开五个终端窗口,比如研究五个对手,别让一个 ai 挨个查。直接启动五个 agent, 分 别下指令并行处理,几分钟内就能拿完所有结果,这才是真正的工业级提效。 第十四条,从解决每日烦恼开始,别一上来就想造火箭,或者让 ai 帮你自动炒股。成功的用户都是从极小的痛点开始的, 比如自动分类乱糟糟的下载文件夹,或者提取几十份发票里的关键金额。先把这些小麻烦解决掉,你才能真正摸清它的逻辑边界。 第十五条,为 agent 预设错误恢复路径。它们常会在某些死胡同卡住,比如网站进不去。 作为一个成熟的老板,你得在提示词里给他 plan b, 明确告诉他,如果访问失败,立刻转用 google 搜索或者切换备用模型。别让他停下来问,你要让他自己想办法绕过去,保持任务自动运转。 第十六条,调用管道符与拖拽,告别手动复制粘贴。学会直接把文件拖进窗口,或者用一行简单的命令把庞大的日制数据直接放给 ai, 别在对话框里一点点搬运,让他直接吞下数据进行深度分析。 第十七条,指定输出公建标准,普通的 prompt 只会给你一堆散乱的文字,高级做法是要求最终交付。五、格式化,比如指定,只要表格包含名称、定价和策略三列,明确要求它。别说任何礼貌性废话,只要结果。第十八条,拥抱多模态生态, 没有哪个模型是全能的,学会让他们各司其职,文字论色理、逻辑,找 cloud, 看图刷长视频,切给 jimmy, 需要极强常识推理,再找 gpt。 这十八条经验,归根结底一句话,像优秀的管理者一样去指挥、限制并激发你的数字员工,这才是真正的 ai 进阶之路。

hello, 大家好,欢迎来到 m a f 教学系列视频的第二集。在本期内容中,你将学会如何在 m a f 框架中 构建你的工具,让 ai 可以 轻松调用,以及如何结构化你 ai 的 输出,让 ai ai 去输出你想要的的结构的内容。那么就开始我们今天的内容吧。 那么在今天内容开启之前,我们想对上一期视频中进行一个补充。在上期视频中,我们介绍了可以使用 u i l 的 图片链接,让 agent 去识别我们图片。但其实还有一种方法可以让 agent 直接读取我们图片,只要你能获取到这个图片的信息,那么非常简单,我们只需要读取我们图片的信息, 我们使用 feel read or better 就 可以做到了。当然,这里我会使用一张我们预先设好的图片。那这张图片呢?是我们微软开发者大会上呃, steven 和 scott 的 一个简单交流。呃,我们再看一下, 是这一张图片。那我们 ai a 键可以正常识别吗?那也非常简单,和上次是一样的,上次我们用的是 u r r 的 内容,那这次我们使用的是, 欸,它这是哈 data 内容,但它不是字典的,是我们的 data 的 内容。这样我们就可以非常简单的,嗯, a i 嗯, message。 这样我们就可以顺利地输出我们想要的内容了。 可以看到非常精准地识别了一个这个场景。呃,也非常不错,那这就是我们想补充的内容。那么接下来就是我们今天的内容。 我们现在已经有了能力与 ai 的 发生对话,发生交流。那么现在我们有什么办法让 ai 去调用我们程序中的函数呢?哪只脚使用到我们工具 tools 就一个概念,那么如何在 m f 中编写 tos, 那 其实也非常简单。我们首先编写一个函数,那么我们写一个最简单的一个函数,比如说 get weather, 那 这里我们是比如说我们或许某个城市人 weather, 当然这里我们可能肯定不会去查询我们实际上有什么, 实际上是因为这太麻烦了,那么这里就直接反馈我们的内容,那这就是我们的一个 函数啊,但是现在我们要将它转换为工具,传入到我们的 ai 之中,还有 agent 之中,让 agent 有 能力去调用我们这个函数,那现在 只要在我们的 agent 里面简单的输入 tos, 然后我们这里可以简单的输入列表表示去输,然后我们使用 a a function factory ai 的 函数工厂,然后我们直接 create 就 ok 了。 get weathers, 这样我们的 tools 就 直接传进去了,当然你这样其实上已经是可以用了,它内部也是有一些承载我们,但我们这就不太接它太细了,它这有些承载。 在这种情况下,我们还可以让这个工具变得更加准确一些。我们可以使用我们的描述特性 获取指定城市的天气,让我们使用描述这个特性,让我们这个工具能够更加准确地被 egg 理解, 这样它就可以将我们理解我们的对话之后,将指定参数直接传入其中,最后获得其的返回值。那这就是我们如何在 m f 中取舍我们的工具那么简单。接下来我们就简单进行一个测试,比如说杭州的天气如何, 我们可以直接运行,看一下结果是否符合我们的预期,是不是最高二十五度,最低十五度呢? 可以看到虽然它做了一些的加工处理,但是我们确实获得了这一个概念,如果我们没有这个 tools 的 话,它肯定是获取不到这个内容的。当然你下面就可以去 修改你的 tools, 或者说是调用一些更复杂的函数,这就是我们如何在 m f 中让 ai 具有 tool 能够调用我们的函数。 那当然其实 twos 并不怎么简,并没有这么简单。在我们下一期视频中,我们会介绍 m c p, 但除了 m c p 之外,它其实还有一些官方的 twos, 比如说 first 搜索文件呢,或者说你直接连上网去在互联互联网中搜索内容的一些 twos 是 可以直接被使用的,但是在现在这个版本中竟然已经有稳定版本,但是在我们这这个 m f 中还没有完全稳定的版本啊。并且还有一些 twos, 就 如果你使用过 copid 或者是其他的一些 ipad 就 编程工具,它可以,你可以看到它有时候是会让询问你是否允许使用工具。在 m f 中也是设计了这个功能,但是这个功能现在并不没有稳定的 api, 所以 说这这这个这些内容,等到 这些 api 彻底稳定之后,我们再继续补上这个内容。那么这个就是我们如何在 m f 中使用我们的 tools。 现在我们已经可以让 agent 去调用我们代码中的函数,那现在我们要对 agent 进行进一步的进化,我们希望让 agent 以我们需要的格式去输出我们的内容,那当然你也可以使用你的 提示词去规定它,但是我们在 m a f 中有一个更好的选择,可以去更好的规范我们的输出。那如何做好这一点呢?比如说我们现在有一个的 d t o, 或者说是任何你想要的数据结构,我们这里边是 person, 它由一个 string a a 构成。 呃, a g 过程,那当然其实这个在记录中我们尽可能还是使用那个大写开头的,这样是更符合我们的语法规定。 现在我们想让他以我们想要的格式输出,以 person 的 形式返回,我们如何做到呢?那在最新版的 m v f 中,我们现在是非常方便就能做到这件事情,比如说 随便给我一个人的信息, ok, 那 如果现在我们直接直接让他问他,他肯定不会以我们想要的方式给我们。结果 可以看到出来了吗?可以看到会有一个非常奇怪的输出出来,那现在我们只需要在这里范型中加上 perse, 我 们再次输出, 可以看到它就以我们想要的格式输出了我们的内容,那当然 我们还可以去指定一下这个,当他们使用使用 jason, 我 们在代码中还可以去指定他。这个 jason 是 一个如何一个如何规则输出,因为 jason 并不只有一种虚拟化的方式, 很简单,我们只需要在我们这个 run 后面可以看到我们这有一个 siri, 就是 虚拟化的的一个设置配置。虚拟化配置,那我们只需要非常简单的, 这里使用的,比如说不使用常规的,不使用它默认是使用 web 的, 那我们默认我先改成常规的, 可以看到他的输出就会变为可以看到他的输出就变为大写,这是我们 c f 当中内部,内部默认的一个虚化形式,他的首字母会变成大写,那这就是我们 让 ai 以我们指定的格式去输出,我们让当然我们可以看到的是它那个返回的内容,也是,其实也是,就是直接是这个类,而不是而不是单纯的文字。你是可以直接获取到它类,而不是而不只是它单纯的文字。就比如说 我们的 person 的 result 就 可以拿到我们直接的这个虚构好的画好的类,呃,反虚化的好的类,而不是它的文本版本,那这就是如何去限制我们的结构化输出。那么当然我们可以与 tools 去结合一下 as person person, 然后当然这里我们不需要有一个任何参数,比如说然后这我们可以直接返回这个,我们可以直接返回这个,然后 new person well, and then one thousand。 现在我们再获取人物 a d 人物 信息,那现在呢?我们再把这个给传到我们的 tools 当中,我们再次输出,可以看到会发生什么呢? 可以看到这时候就返回了我们这个 tools 中所包含的内容,并且以我们结构化的方式输出了我们的内容。那么这就是我们今天所学习到的知识。 其一,我们可以将 ai 去让 ai 可以 去调用我们代码中的函数。其二,我们可以结构化,让 ai 结构化的输出我们想要的内容。那么今天内容就到这里,感谢大家收看。