Meet Julep: The Open-Source Platform for Building Stateful AI Apps
Artificial Intelligence (AI) is rapidly transforming industries and workflows, offering unprecedented opportunities for innovation. One of the latest advancements in this field is Julep, an open-source platform designed to facilitate the creation of stateful AI applications. In this comprehensive blog post, we'll explore Julep in detail, from its unique features to its practical applications, and provide an SEO-optimized guide to help you leverage this powerful tool for your AI projects.
What is Julep?
Julep is an open-source alternative to commercial Assistant APIs, equipped with a managed backend for memory, Retrieval-Augmented Generation (RAG), tools, and tasks. It's akin to a "Supabase" for building AI agents, offering a robust and scalable solution for developers aiming to create sophisticated AI applications with stateful interactions.
Key Features of Julep
1. Statefulness by Design
One of Julep's standout features is its inherent statefulness. It manages conversation history by default, enabling developers to create more coherent and context-aware AI applications. Using simple flags like remember
and recall
, you can fine-tune whether to save or retrieve conversation history, ensuring your AI agents maintain continuity in their interactions.
2. Support for Users & Agents
Julep supports various user-agent interaction models, such as "One Agent <-> Many Users" and "Many Agents <-> One User." This flexibility allows for diverse use cases, from customer support bots to multi-agent collaborative systems.
3. Built-in RAG (Retrieval-Augmented Generation)
Julep includes built-in RAG capabilities, allowing you to add, delete, and update documents to provide context for your AI applications. This feature enhances the accuracy and relevance of the responses generated by the language model.
4. Extensive Tool Integration
With over 90 tools built-in, Julep makes it easy to connect your AI applications to third-party services. The toolset.handle_tool_calls(julep_client, session.id, response)
function simplifies tool integration, enabling seamless interactions with external APIs and services.
5. Local-first Deployment
Julep is designed for local-first deployment, making it easy to run your applications on local servers using Docker Compose. This approach ensures data privacy and control while also providing the flexibility to scale up as needed.
6. Dynamic LLM Switching
Julep allows you to switch between different Language Models (LLMs) on the fly, such as OpenAI, Anthropic, or Ollama, while preserving state. This capability ensures you can leverage the best model for your specific application without losing context.
7. Agentic Workflows
Julep supports the definition of agentic workflows, enabling asynchronous execution of tasks by one or more agents. This feature helps manage complex workflows without worrying about timeouts or compounding errors.
Why Choose Julep?
Addressing Common Challenges in AI App Development
Developing AI applications with memory, knowledge, and tools integration can be challenging. Julep addresses these difficulties by providing a cohesive platform that simplifies the development process.
High Barrier to Entry
The barrier to creating AI applications with advanced capabilities is often high, requiring extensive knowledge of various tools and techniques. Julep lowers this barrier by offering an integrated solution that combines essential features in a user-friendly manner.
Controlling Agentic Behavior
Multi-agent frameworks can be complex and difficult to control. Julep simplifies the management of agentic behavior, making it easier to develop and maintain sophisticated AI systems.
Getting Started with Julep
Quickstart Guide
Option 1: Use the Julep Cloud
For those looking for a hassle-free setup, Julep offers a hosted platform currently in Beta.
- Visit Julep Platform.
- Generate and add your
JULEP_API_KEY
in the.env
file.
Option 2: Install and Run Julep Locally
To run Julep locally, follow the self-hosting guide available here.
Installation
To get started with Julep, you'll need to set up the client and create an agent, user, and session. Below is a step-by-step guide to help you through the process.
Setting Up the Client
from julep import Client
from pprint import pprint
import textwrap
import os
base_url = os.environ.get("JULEP_API_URL")
api_key = os.environ.get("JULEP_API_KEY")
client = Client(api_key=api_key, base_url=base_url)
Create an Agent
An agent is an object to which LLM settings, like the model and temperature, along with tools, are scoped.
agent = client.agents.create(
name="Jessica",
model="gpt-4",
tools=[] # Define tools here
)
Create a User
A user represents the end-user of the application. Memories are formed and saved for each user, and many users can interact with one agent.
user = client.users.create(
name="Anon",
about="Average nerdy tech enthusiast spending 8 hours a day on a laptop",
)
Create a Session
A session allows a user and an agent to communicate. The session stores conversation history and summary, ensuring continuity.
situation_prompt = """You are Jessica. You're a stuck-up Cali teenager.
You basically complain about everything. You live in Bel-Air, Los Angeles, and drag yourself to Curtis High School when you must."""
session = client.sessions.create(
user_id=user.id, agent_id=agent.id, situation=situation_prompt
)
Start a Stateful Conversation
To maintain the session's statefulness, set both recall
and remember
to True
.
user_msg = "Hey, what do you think of Starbucks?"
response = client.sessions.chat(
session_id=session.id,
messages=[
{
"role": "user",
"content": user_msg,
"name": "Anon",
}
],
recall=True,
remember=True,
)
print("\n".join(textwrap.wrap(response.response[0][0].content, width=100)))
Julep API and SDKs
Julep provides comprehensive API documentation and SDKs for Python and TypeScript, making it easy to integrate and extend its functionality.
Python SDK
To install the Python SDK, run:
pip install julep
For more information, refer to the Python SDK documentation.
TypeScript SDK
To install the TypeScript SDK using npm
, run:
npm install @julep/sdk
For more information, refer to the TypeScript SDK documentation.
Deployment Options
Self-Hosting
For those who prefer to manage their own infrastructure, Julep offers a detailed self-hosting guide. This guide covers everything from setting up a local development environment to deploying Julep in a production setting using Docker Compose.
Production Deployment
Deploying Julep to production involves more advanced configurations, such as multi-tenancy, reverse proxy setups, and self-hosted LLMs. The Julep team offers support for these configurations and can help tailor the platform to meet your specific needs. You can schedule a call here for more personalized assistance.
Contributing to Julep
Julep is an open-source project, and contributions from the community are welcome. Whether you're fixing bugs, adding new features, or improving documentation, your input helps enhance the platform for everyone. For more details, check out the CONTRIBUTING.md file in the repository.
Licensing
Julep is released under the Apache 2.0 License. By using, contributing to, or distributing the Julep AI platform, you agree to the terms and conditions of this license. For more information, refer to the LICENSE file.
Contact and Support
If you have any questions or need assistance, there are several ways to get in touch with the Julep AI team:
- Discord: Join the Julep Community on Discord to discuss ideas, ask questions, and get help from other users and the development team.
- GitHub Issues: For technical issues, bug reports, and feature requests, open an issue on the Julep AI GitHub repository.
- Email Support: For direct assistance, send an email to hey@julep.ai, and the support team will respond as soon as possible.
- Social Media: Follow Julep on Twitter and LinkedIn for updates and announcements.
- Schedule a Call: To discuss your project and how Julep can help, schedule a call with the team.
Conclusion
Julep is a powerful and versatile platform for building stateful AI applications. Its comprehensive feature set, including built-in memory management, RAG capabilities, extensive tool integrations, and support for dynamic LLM switching, makes it an ideal choice for developers looking to create sophisticated AI solutions. By following this guide, you'll be well on your way to harnessing the full potential of Julep for your AI projects. Whether you're working on customer support bots, virtual assistants, or complex multi-agent systems, Julep provides the tools and flexibility you need to succeed.