字节大模型应用开发框架 Eino 全解(一)|结合 RAG 知识库案例分析框架生态
前言大家好,这里是白泽,Eino 是字节开源的 Golang 大模型应用开发框架,诸如豆包、扣子等 Agent 应用或工作流都是借助这个框架进行开发。
我将通过《字节大模型应用开发框架 Eino 全解》系列,从框架结构、组件生态、以及项目案例、mcp集成等维度,带你全方面掌握 Golang 大模型应用开发。
本章介绍
[*]Eino 框架生态介绍,以及相关仓库地址。
[*]借助白泽上一期开源的 Eino 编写的 基于 Redis 文档向量检索系统,梳理 Eino 框架的各个组件模块,以及交互、编排方式。
Eino 框架生态
[*]Eino(主代码仓库):包含类型定义、流处理机制、组件抽象、编排功能、切面机制等。
[*]EinoExt:组件实现、回调处理程序实现、组件使用示例,以及各种工具,如评估器、提示优化器等。
[*]Eino Devops:可视化开发、可视化调试等。
[*]EinoExamples:是包含示例应用程序和最佳实践的代码仓库。
[*]Eino 用户手册:快速理解 Eino 中的概念,掌握基于 Eino 开发设计 AI 应用的技能。(Eino 开源不满一年,文档仍在完善)
Redis 文档向量检索系统(RAG)
接下来将通过这个案例,介绍一下 Eino 框架的各个组件,以及如何使用组件进行编排构建 Agent,同时带你熟悉一下 Eino 本身的代码结构。
项目地址:https://github.com/BaiZe1998/go-learning/tree/main/eino_assistant
项目架构图:
flowchart TD subgraph 索引构建阶段 MD --> FL[文件加载器] FL --> SP[文档分割器] SP --> EM1[嵌入模型] EM1 --> VEC1[文档向量] VEC1 --> RDB[(Redis向量数据库)] end subgraph 查询检索阶段 Q[用户问题] --> EM2[嵌入模型] EM2 --> VEC2[查询向量] VEC2 --> KNN{KNN向量搜索} RDB --> KNN KNN --> TOP end subgraph 回答生成阶段 TOP --> PC[提示构建] Q --> PC PC --> PROMPT[增强提示] PROMPT --> LLM[大语言模型] LLM --> ANS[生成回答] end subgraph 系统架构 direction LR RET[检索器\nRetriever] --> RAG_SYS GEN[生成器\nGenerator] --> RAG_SYS OPT[参数配置\ntopK等] --> RAG_SYS end Q --> RAG_SYS RAG_SYS --> ANS classDef phase fill:#f9f,stroke:#333,stroke-width:2px; class 索引构建阶段,查询检索阶段,回答生成阶段 phase;整个项目包含三个阶段,索引构建、检查索引、回答生成、接下来以索引构建阶段为例,介绍一下用上了 Eino 哪些组件,以及组件之间的关系,完整的项目讲解可以看往期的文章。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]