尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Eino快速入门:10分钟用Go写出第一个LLM应用

Eino快速入门:10分钟用Go写出第一个LLM应用 Eino快速入门10分钟用Go写出第一个LLM应用【免费下载链接】einoGo 语言编写的终极大型语言模型LLM应用开发框架强调简洁性、可扩展性、可靠性与有效性。项目地址: https://gitcode.com/CloudWeGo/einoEino 是一个用 Go 语言编写的 LLM 应用开发框架Go LLM 开发框架强调简洁性、可扩展性、可靠性与有效性。本教程带你从零开始安装 Eino、直接调用大模型组件、用 Chain 编排构建 LLM 应用再到 Graph 编排与开箱即用的 ReAct Agent——全程只需 10 分钟适合刚接触大模型应用开发的 Go 开发者。一、为什么选择 EinoGo 开发者的 LLM 应用框架Eino 借鉴了 LangChain、LlamaIndex 等优秀框架的设计并深度贴合 Go 语言编程惯例核心提供四大能力 组件抽象ChatModel、Tool、ChatTemplate、Retriever 等常用组件开箱即用编排框架Chain 与 Graph 两种编排 API帮你搞定类型检查、并发管理流式处理自动处理大模型流式响应的拼接、合并与复制回调切面日志、追踪、指标等横切关注点轻松注入。整个仓库结构非常清晰先建立整体认知 ️目录职责components/各类组件的抽象定义模型、工具、提示词、检索器等compose/Chain / Graph 编排能力与流式处理核心schema/消息、文档、流读取器等通用数据结构callbacks/回调切面机制支持日志与追踪注入flow/开箱即用的最佳实践流程如 ReAct 智能体二、环境准备3步装好 EinoEino 要求Go 1.18 及以上版本见 go.mod安装只需两条命令 # 1. 在你的 Go 项目中拉取 Eino 框架 go get github.com/cloudwego/eino # 2. 确认版本正常 go mod tidy Eino 生态还包括 EinoExt组件具体实现与可视化开发调试工具本教程聚焦框架核心。三、第一个LLM应用直接调用ChatModel组件最快的上手方式是直接使用组件。假设你已有一个 ChatModel 实例具体实现在 EinoExt 中提供几行代码就能与大模型对话 model, _ : openai.NewChatModel(ctx, config) // 创建一个可调用 LLM 实例 message, _ : model.Generate(ctx, []*schema.Message{ schema.SystemMessage(you are a helpful assistant.), schema.UserMessage(what does the future AI App look like?), })组件接口的定义位于 components/model/interface.go。但直接使用组件只是起点——真正的威力来自编排它封装了 LLM 应用的常见模式并帮你处理流式响应、类型安全等难题。四、Chain编排把组件串成一条流水线Chain是简单的链式有向图数据只能向前推进适合提示词 → 模型 → 后处理这类线性流程 。用建造者模式三步完成chain, _ : compose.NewChain[map[string]any, *schema.Message](). AppendChatTemplate(prompt). // 第一步填充提示词模板 AppendChatModel(model). // 第二步调用大模型 Compile(ctx) // 第三步编译为可执行图 chain.Invoke(ctx, map[string]any{query: whats your name?})Chain 的入口函数是 NewChain完整的用法说明可以阅读 compose/chain.go 中的注释。除了顺序串联Chain 还支持在任意位置插入并行与分支节点上图展示了AppendParallel同一份输入同时发给多个节点处理结果汇合后继续向后。类似地AppendBranch则只选择被分支条件选中的节点执行实现条件路由。五、Graph编排自由构建你的有向图当流程出现回路或复杂跳转时就轮到Graph登场了。Graph 支持循环或非循环有向图节点即组件实例边即数据流通道 ️graph : compose.NewGraph[map[string]any, *schema.Message]() _ graph.AddChatTemplateNode(node_template, chatTpl) _ graph.AddChatModelNode(node_model, chatModel) _ graph.AddToolsNode(node_tools, toolsNode) _ graph.AddEdge(compose.START, node_template) _ graph.AddEdge(node_template, node_model) _ graph.AddBranch(node_model, branch) // 条件分支决定走工具还是直接回答 compiled, _ : graph.Compile(ctx) out, _ : compiled.Invoke(ctx, map[string]any{query: 北京这个周末天气})Graph 的入口是 NewGraph。下面这张图就是一个典型的工具调用工作流模型输出要么直接回答要么触发 ToolsNode 执行工具后再收尾六、ReAct Agent开箱即用的智能体如果不想从零搭建模型思考 → 调用工具 → 再思考的循环Eino 在 flow/agent/react/react.go 中提供了完整的ReAct 智能体实现 。它的执行逻辑是ChatModel 接收消息后自主判断——需要工具就进入 ToolsNode 执行工具结果回填到状态中继续推理不需要工具就直接输出最终答案。得益于 Graph 编排它免费获得了编译期类型检查、流式拼接、并发安全的共享状态以及回调切面注入。七、流式处理让LLM实时吐字流式输出是 LLM 应用体验的关键。Eino 会自动处理流的拼接、合并、包装与复制且一个编译好的图支持 4 种调用范式 调用范式输入输出Invoke非流式非流式Stream非流式流式Collect流式非流式Transform流式流式流读取器的核心定义在 schema/stream.go这意味着无论组件本身是否支持流式下游节点都能透明地拿到正确形态的数据。八、一图看懂 Eino 框架结构最后用一张架构全景图收尾帮你把前面学到的模块串起来 ️自底向上Schema数据结构→Components组件抽象→ComposeChain/Graph 编排引擎→FlowReAct Agent 等最佳实践右侧的 EinoExt 则提供了各组件的具体实现与回调处理器。九、总结你的下一步10 分钟回顾一下收获 ✅安装 Eino 只需go get要求 Go 1.18单个组件可直接调用完成一次 LLM 对话Chain 适合线性流程Graph 支持分支与回路的复杂编排ReAct Agent、多路检索器等最佳实践在 flow/ 中开箱即用流式处理与回调切面由框架透明承担。建议的进阶路线先精读 README.zh_CN.md 快速上手章节 → 研究 flow/agent/react/ 的智能体实现 → 尝试用 Graph 编排自己的工具调用应用。祝你开发愉快Go 起你的第一个 LLM 应用吧 【免费下载链接】einoGo 语言编写的终极大型语言模型LLM应用开发框架强调简洁性、可扩展性、可靠性与有效性。项目地址: https://gitcode.com/CloudWeGo/eino创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表