Eino: Components
LLM application development differs from traditional app development primarily due to two core capabilities:
- Semantic text processing: understanding and generating human language, handling relationships within unstructured content.
- Intelligent decision-making: reasoning from context and making appropriate action decisions.
These capabilities lead to three major application patterns:
- Direct conversation: process user input and produce responses.
- Knowledge processing: semantically process, store, and retrieve textual documents.
- Tool calling: reason from context and call appropriate tools.
These patterns summarize common LLM app scenarios and provide a basis for abstraction and standardization. Eino abstracts these into reusable components.
Mapping components to patterns:
Conversation components:
Template and parameter preparation for LLM interaction:
ChatTemplateDirect LLM interaction:
ChatModel
Text semantics components:
Document acquisition and processing:
Document.Loader,Document.TransformerSemantic embedding of documents:
Embedding- See Embedding Guide
Indexing and storage of embeddings:
Indexer- See Indexer Guide
Retrieval of semantically related documents:
Retriever- See Retriever Guide
Decision and execution components:
Tool-enabled decision making for LLMs:
ToolsNode- See ToolsNode Guide
Custom logic:
User-defined business logic:
Lambda- See Lambda Guide
Components provide application capabilities — the bricks and mortar of LLM app construction. Eino’s component abstractions follow these principles:
- Modularity and standardization: unify common capabilities into clear modules with well-defined boundaries for flexible composition.
- Extensibility: keep interfaces minimally constraining so developers can implement custom components easily.
- Reusability: package common capabilities and implementations as ready-to-use tooling.
These abstractions establish consistent development paradigms, reduce cognitive load, and improve collaboration efficiency, letting developers focus on business logic instead of reinventing the wheel.