Eino:字节跳动开源基于Golang的AI应用开发框架,组件化设计助力构建AI应用

简介: Eino 是字节跳动开源的大模型应用开发框架,帮助开发者高效构建基于大模型的 AI 应用。支持组件化设计、流式处理和可视化开发工具。

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


大家好,我是蚝油菜花,今天跟大家分享一下 Eino 这个由字节跳动开源的大模型应用开发框架。

🚀 快速阅读

Eino 是字节跳动开源的大模型应用开发框架,旨在帮助开发者高效构建基于大模型的 AI 应用。

  1. 核心功能:组件化设计、图编排引擎、流式处理机制、回调机制。
  2. 技术原理:基于 Go 语言,支持稳定的内核、灵活的扩展性和完善的工具生态。

Eino 是什么

Eino

Eino 是字节跳动开源的大模型应用开发框架,能够帮助开发者高效构建基于大模型的 AI 应用。它以 Go 语言为基础,具备稳定的内核、灵活的扩展性和完善的工具生态。Eino 的核心是组件化设计,通过定义不同的组件(如 ChatModel、Lambda 等)和编排方式(如 Chain 和 Graph),开发者可以灵活地构建复杂的业务逻辑。此外,Eino 支持流式处理,自动处理流的拼接和复制等细节,提升应用性能。Eino 还提供了可视化开发工具 EinoDev,降低了开发门槛,并结合 Langfuse 平台进行运行观测。

Eino 的目标是成为 Golang 中最好的大模型应用开发框架,借鉴了开源社区中的优秀框架(如 LangChain 和 LlamaIndex),并结合了最新的研究和实际应用场景,强调简单性、可扩展性、可靠性和高效性,更好地符合 Golang 编程规范。

Eino 的主要功能

  • 丰富的组件:将常见构建模块抽象为组件,每个组件有多种实现,支持嵌套和复杂业务逻辑。
  • 强大的编排:基于图编排实现数据流的有向、可控传输,支持类型检查、流处理、并发管理等。
  • 完善的流处理:自动处理流式与非流式数据的转换、拼接、合并和复制。
  • 高扩展性的切面(Callbacks):支持多种切面,用于日志记录、追踪、指标统计等,暴露组件实现的内部细节。

Eino 的技术原理

  • 组件化架构:Eino 将应用逻辑拆分为多个组件,每个组件负责特定的功能(如文本生成、数据检索、工具调用等)。组件基于定义好的接口进行交互,开发者根据需求选择或实现具体的组件。
  • 图编排引擎:用图(Graph)表示组件之间的依赖关系和执行顺序。每个组件是一个节点(Node),节点之间的连接关系(边 Edge)定义数据的流转路径。支持分支逻辑(Branch),根据条件动态选择不同的执行路径。
  • 流式处理机制:支持流式输入和输出,自动处理流的拼接(Concat)和流化(T -> StreamReader[T]),提升应用的实时性和性能。
  • 回调机制(Callbacks):提供 Callbacks 机制,支持开发者在组件运行的开始和结束时插入自定义逻辑。基于回调函数,开发者可以实现日志记录、性能监控等功能。
  • 向量化知识库:提供工具将知识库内容进行向量化处理,并存储到向量数据库(如 Redis)中。在应用运行时,基于语义检索从知识库中召回相关信息,增强应用的知识背景支持。
  • 可视化开发工具:提供 EinoDev 插件,支持可视化界面进行组件选择和编排。开发者可以通过拖拽组件的方式快速构建应用逻辑,并生成对应的代码。

如何运行 Eino

1. 使用组件直接调用

model, _ := openai.NewChatModel(ctx, config) // 创建一个可调用的 LLM 实例
message, _ := model.Generate(ctx, []*Message{
    SystemMessage("you are a helpful assistant."),
    UserMessage("what does the future AI App look like?")})

2. 使用编排创建简单的链

eino_simple_chain

chain, _ := NewChain[map[string]any, *Message]().
           AppendChatTemplate(prompt).
           AppendChatModel(model).
           Compile(ctx)

chain.Invoke(ctx, map[string]any{"query": "what's your name?"})

3. 使用图编排创建更复杂的逻辑

eino_tool_call_graph

graph := NewGraph[map[string]any, *schema.Message]()

_ = graph.AddChatTemplateNode("node_template", chatTpl)
_ = graph.AddChatModelNode("node_model", chatModel)
_ = graph.AddToolsNode("node_tools", toolsNode)
_ = graph.AddLambdaNode("node_converter", takeOne)

_ = graph.AddEdge(START, "node_template")
_ = graph.AddEdge("node_template", "node_model")
_ = graph.AddBranch("node_model", branch)
_ = graph.AddEdge("node_tools", "node_converter")
_ = graph.AddEdge("node_converter", END)

compiledGraph, err := graph.Compile(ctx)
if err != nil {
    return err
}
out, err := r.Invoke(ctx, map[string]any{"query":"Beijing's weather this weekend"})

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

相关文章
|
12月前
|
云安全 人工智能 安全
Dify平台集成阿里云AI安全护栏,构建AI Runtime安全防线
阿里云 AI 安全护栏加入Dify平台,打造可信赖的 AI
4331 166
|
12月前
|
人工智能 运维 Kubernetes
Serverless 应用引擎 SAE:为传统应用托底,为 AI 创新加速
在容器技术持续演进与 AI 全面爆发的当下,企业既要稳健托管传统业务,又要高效落地 AI 创新,如何在复杂的基础设施与频繁的版本变化中保持敏捷、稳定与低成本,成了所有技术团队的共同挑战。阿里云 Serverless 应用引擎(SAE)正是为应对这一时代挑战而生的破局者,SAE 以“免运维、强稳定、极致降本”为核心,通过一站式的应用级托管能力,同时支撑传统应用与 AI 应用,让企业把更多精力投入到业务创新。
1088 30
|
12月前
|
人工智能 测试技术 API
构建AI智能体:二、DeepSeek的Ollama部署FastAPI封装调用
本文介绍如何通过Ollama本地部署DeepSeek大模型,结合FastAPI实现API接口调用。涵盖Ollama安装、路径迁移、模型下载运行及REST API封装全过程,助力快速构建可扩展的AI应用服务。
2977 8
|
12月前
|
人工智能 API 开发工具
构建AI智能体:一、初识AI大模型与API调用
本文介绍大模型基础知识及API调用方法,涵盖阿里云百炼平台密钥申请、DashScope SDK使用、Python调用示例(如文本情感分析、图像文字识别),助力开发者快速上手大模型应用开发。
3520 18
构建AI智能体:一、初识AI大模型与API调用
|
12月前
|
人工智能 缓存 运维
【智造】AI应用实战:6个agent搞定复杂指令和工具膨胀
本文介绍联调造数场景下的AI应用演进:从单Agent模式到多Agent协同的架构升级。针对复杂指令执行不准、响应慢等问题,通过意图识别、工具引擎、推理执行等多Agent分工协作,结合工程化手段提升准确性与效率,并分享了关键设计思路与实践心得。
1628 20
【智造】AI应用实战:6个agent搞定复杂指令和工具膨胀
|
12月前
|
存储 机器学习/深度学习 人工智能
构建AI智能体:三、Prompt提示词工程:几句话让AI秒懂你心
本文深入浅出地讲解Prompt原理及其与大模型的关系,系统介绍Prompt的核心要素、编写原则与应用场景,帮助用户通过精准指令提升AI交互效率,释放大模型潜能。
1658 7
|
机器学习/深度学习 人工智能 算法
AI框架的赢者法则:生态繁荣的昇思MindSpore,成为大模型时代的新选择
2024年被视为大模型应用的元年。昇思MindSpore AI框架凭借其强大的开源社区和技术创新,在全球范围内迅速崛起。截至2024年11月,该框架的下载量已超过1100万次,覆盖130多个国家和地区的2400多个城市,拥有3.7万名贡献者。昇思MindSpore不仅在人才培养和社区治理方面表现出色,还在大模型的开发、训练和应用中发挥了关键作用,支持了50多个主流大模型,覆盖15个行业。随着其市场份额预计达到30%,昇思MindSpore正逐步成为行业共识,推动大模型在各领域的广泛应用。
613 12
|
机器学习/深度学习 人工智能 算法
国产AI框架支棱起来了!这所211高校凭昇思MindSpore连发10篇顶刊/顶会论文
国产AI框架支棱起来了!这所211高校凭昇思MindSpore连发10篇顶刊/顶会论文
702 0
|
人工智能 算法 开发者
华为开源全场景AI计算框架MindSpore,性能可达 Pytorch+2080Ti 的1.93倍
华为开源全场景AI计算框架MindSpore,性能可达 Pytorch+2080Ti 的1.93倍
1170 0

热门文章

最新文章

推荐镜像

更多