eino  by cloudwego

Golang framework for LLM application development

created 8 months ago
5,962 stars

Top 8.8% on sourcepulse

GitHubView on GitHub
Project Summary

Eino is a Golang framework designed for building LLM/AI applications, offering a structured approach to component composition and orchestration. It targets developers seeking a scalable, reliable, and efficient way to develop AI applications, inspired by frameworks like LangChain and LlamaIndex but tailored for Go conventions.

How It Works

Eino provides a powerful composition framework that abstracts common LLM application patterns into reusable component abstractions (e.g., ChatModel, Tool, Retriever). These components can be chained or formed into directed graphs (cyclic or acyclic) for complex data flows. The framework handles type checking, stream processing, concurrency management, and aspect injection, simplifying the development of sophisticated AI workflows like ReAct agents.

Quick Start & Requirements

Highlighted Details

  • Orchestration: Supports Chain (linear) and Graph (DAG) for complex data flows.
  • Stream Processing: Handles stream concatenation, merging, boxing, and copying across components and callbacks.
  • Extensibility: Features a robust aspect (callback) system for cross-cutting concerns like logging and tracing.
  • Component Abstractions: Defines clear interfaces for components (Input, Output, Options, streaming paradigms).

Maintenance & Community

Licensing & Compatibility

  • License: Apache-2.0.
  • Compatibility: Permissive license suitable for commercial and closed-source applications.

Limitations & Caveats

The workflow feature for field-level data mapping is currently in alpha.

Health Check
Last commit

2 days ago

Responsiveness

1 day

Pull Requests (30d)
32
Issues (30d)
28
Star History
2,837 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.