Eino logo

Eino

by cloudwego

Eino aims to be the ultimate LLM application development framework in Golang. It offers a framework that emphasizes simplicity, scalability, reliability and effectiveness that better aligns with Golang programming conventions.

View on GitHub

Last updated: N/A

What is Eino?

Eino is an LLM application development framework in Golang that provides component abstractions, a composition framework, a set of APIs, bundled flows and examples, and tools for the entire development cycle.

How to use Eino?

Eino provides components that can be used directly or orchestrated using Chains or Graphs. Chains are simple chained directed graphs, while Graphs are more powerful and flexible, allowing for cyclic or acyclic directed graphs. The framework handles type safety, concurrency management, aspect injection, and option assignment.

Key features of Eino

  • Rich Components: Encapsulates common building blocks into component abstractions.

  • Powerful Orchestration: Implements complex business logic through graph orchestration.

  • Complete Stream Processing: Handles streaming data between components automatically.

  • Highly Extensible Aspects (Callbacks): Supports aspects for logging, tracing, metrics, etc.

Use cases of Eino

  • Building ReAct agents

  • Creating chat applications

  • Developing tool-calling applications

  • Implementing multi-query retrievers

FAQ from Eino

What is Eino?

Eino is an LLM application development framework in Golang.

What are the main features of Eino?

Rich components, powerful orchestration, complete stream processing, and highly extensible aspects (callbacks).

How does Eino handle stream processing?

Eino automatically concatenates, boxes, merges, and copies streams as needed during graph execution.

What is graph orchestration in Eino?

Graph orchestration allows for the directed flow of data through multiple components, with the framework handling type checking, concurrency management, aspect injection, and option assignment.

Where can I find examples of how to use Eino?

Check out the EinoExamples repository for example applications and best practices.