跟月影学前端智能体开发
月影
波波熊科技联合创始人
1771 人已学习
新⼈⾸单¥59
跟月影学前端智能体开发
15
15
1.0x
00:00/00:00
登录|注册

12|深度剖析(上):Ling框架的底层实现

你好,我是月影。首先给假期还在学习的你点个赞。
上节课,我们已经通过实践初步了解了 Ling 的使用方法,那么接下来两节课,我们就来深入 Ling 的实现细节,看看 Ling 框架里几个模块的具体设计,以及它们是如何协同工作的。掌握了这些,也会对你去处理复杂的 AI 工作流有所启发。

Ling 的四个子系统

Ling 框架包含四个子系统。
adapter:大模型 API 底层模块适配器,目前支持标准 OpenAI 和 Coze 两类文本大模型 API。
bot:对大模型节点的抽象,负责管理和控制单一节点。
parser:JSONParser 实现,这是一个可独立使用的子系统,前面课程中已经使用过。
tube:对流式(Streaming)对象的封装、前后端通讯的数据格式定义以及事件管理。
在使用 Ling 框架的时候,我们通过创建 Ling 对象实例来管理 bot。bot 在内部处理节点输入输出时调用 adapter,根据配置的模型参数,由 adapter 选择具体的 API 调用。在 adapter 具体调用 API 过程中会通过 parser 来动态解析大模型输入输出,并将处理好的数据通过 tube 发送,最后再由 tube 转发给前端。
下面我们来分别深入拆解一下这些模块,由于 Parser 模块就是动态 JSON 解析模块,在前面的章节中我们已经单独拆解过了,因此接下来我们主要分别介绍一下其他三个模块以及最外层的 Ling 管理模块。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
  • 解释
  • 总结

1. Ling框架包含四个子系统:adapter、bot、parser和tube,它们协同工作来处理复杂的AI工作流。 2. Adapter模块是底层的模块,负责调用大模型对话接口,兼容OpenAI和Coze两种规格,覆盖了常用的文本大模型。 3. Ling对象实例通过管理bot来处理节点输入输出,调用adapter选择具体的API调用,并通过parser动态解析大模型输入输出,最后通过tube发送数据给前端。 4. 代码实现了兼容OpenAI的API调用逻辑主体部分,包括处理消息、配置信息和输出格式,以及通过OpenAI SDK调用对话主体部分。 5. 重点关注Adapter模块的具体实现代码,因为它是执行大模型对话的底层模块。 6. 代码中的ChatConfig和ChatOptions对象定义了大模型的配置和对话输出内容的配置,包括模型名、服务地址、鉴权信息以及对输出内容的控制参数。 7. 代码中使用了条件判断来兼容两种子规格,分别是标准的OpenAI和微软的AzureOpenAI,通过判断config.endpoint来选择不同的对象创建方式。 8. 代码中使用了parser来解析内容,根据输出格式是否是JSON采用不同的解析方式,将解析内容存入缓冲区。 9. 代码中通过遍历events来解析内容进行处理,将内容放入缓冲对象buffer,然后再用一个异步过程,将对象中的内容一一放入Tube对象的流式队列里,实现内容的分步发送。 10. 代码中实现了对话结束的回调函数和parser解析内容中触发onStringResolved和onObjectResolved时调用相应的回调函数。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《跟月影学前端智能体开发》
新⼈⾸单¥59
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部
文章页面操作
MAC
windows
作用
esc
esc
退出沉浸式阅读
shift + f
f11
进入/退出沉浸式
command + ⬆️
home
滚动到页面顶部
command + ⬇️
end
滚动到页面底部
⬅️ (仅针对订阅)
⬅️ (仅针对订阅)
上一篇
➡️ (仅针对订阅)
➡️ (仅针对订阅)
下一篇
command + j
page up
向下滚动一屏
command + k
page down
向上滚动一屏
p
p
音频播放/暂停
j
j
向下滚动一点
k
k
向上滚动一点
空格
空格
向下滚动一屏
播放器操作
MAC
windows
作用
esc
esc
退出全屏
⬅️
⬅️
快退
➡️
➡️
快进
空格
空格
视频播放/暂停(视频全屏时生效)