run-llama / llama_deploy

Deploy your agentic worfklows to production
https://docs.llamaindex.ai/en/stable/module_guides/llama_deploy/
MIT License
1.85k stars 193 forks source link
agents deployment framework llamaindex llm multi-agents

PyPI - Version PyPI - Python Version Static Badge

Unit Testing E2E Testing Coverage Status

πŸ¦™ Llama Deploy πŸ€–

Llama Deploy (formerly llama-agents) is an async-first framework for deploying, scaling, and productionizing agentic multi-service systems based on workflows from llama_index. With Llama Deploy, you can build any number of workflows in llama_index and then run them as services, accessible through a HTTP API by a user interface or other services part of your system.

The goal of Llama Deploy is to easily transition something that you built in a notebook to something running on the cloud with the minimum amount of changes to the original code, possibly zero. In order to make this transition a pleasant one, you can interact with Llama Deploy in two ways:

Both the SDK and the CLI are part of the Llama Deploy Python package. To install, just run:

pip install llama_deploy

[!TIP] For a comprehensive guide to Llama Deploy's architecture and detailed descriptions of its components, visit our official documentation.

Why Llama Deploy?

  1. Seamless Deployment: It bridges the gap between development and production, allowing you to deploy llama_index workflows with minimal changes to your code.
  2. Scalability: The microservices architecture enables easy scaling of individual components as your system grows.
  3. Flexibility: By using a hub-and-spoke architecture, you can easily swap out components (like message queues) or add new services without disrupting the entire system.
  4. Fault Tolerance: With built-in retry mechanisms and failure handling, Llama Deploy adds robustness in production environments.
  5. State Management: The control plane manages state across services, simplifying complex multi-step processes.
  6. Async-First: Designed for high-concurrency scenarios, making it suitable for real-time and high-throughput applications.

[!NOTE] This project was initially released under the name llama-agents, but the introduction of Workflows in llama_index turned out to be the most intuitive way for our users to develop agentic applications. We then decided to add new agentic features in llama_index directly, and focus Llama Deploy on closing the gap between local development and remote execution of agents as services.

Getting Started

The fastest way to start using Llama Deploy is playing with a practical example. This repository contains a few applications you can use as a reference:

We recommend to start from the Quick start example and move to Use a deployment from a web-based user interface immediately after. Each folder contains a README file that will guide you through the process.