Skip to content
Gene Kogan edited this page Jan 5, 2025 · 29 revisions

⚠️ Note: This doesn't work without Eden secrets yet. A localhost-ready version of Eve is expected in the future.

Prerequisites

Install Rye for Python & package management

Install homebrew

Install the following homebrew packages:

brew install libmagic
brew install ffmpeg

Set up the workflows repo:

git clone https://github.com/edenartlab/workflows.git
cd workflows

Clone Eve (in the same parent directory as workflows) and install packages:

git clone https://github.com/edenartlab/eve.git
cd eve
rye sync

Copy .env.example and fill in with appropriate secret values

Quick Start

Note: All commands should be prefixed by rye run when using rye build.

To get help with eve, run:

eve --help

Create with tools

eve tool run flux_schnell --prompt "universe in a bottle" --aspect_ratio "16:9" --lora "6771cb755516ab6933fc6baa"

Upload tool config to stage (to target prod, add --db prod:

eve tool update txt2img img2vid vid2vid_sdxl

Test a tool on stage (using tool's test.json)

eve tool test flux_schnell

Chat with an agent (e.g. banny). Default is eve.

eve chat banny

Agent folder structure

An agent in the agents folder should have the following structure:

  • api.yaml to define its spec
  • test.json to define a test
  • `.env to define its secrets
image

Creating or updating agents

To either add a new agent, or update it, run the following (for e.g. banny)

eve agent update banny

Include --db prod to update it on prod.

Running Agents

eve start [AGENT] will launch clients based on what you've specified in the clients section of your yaml, ie

clients:
  discord:
    enabled: true
  local:
    enabled: true

To start the agent, run this command:

eve start [AGENT_NAME]

Note that by default, eve start targets STAGE. You can target PROD with eve start --db prod. STAGE and PROD both refer to remote API. To target a local running API, run eve api in one terminal to start the api (which will target STAGE db), and run eve start [AGENT_NAME] --local.

Deploying Agents to Modal

Create a .env file in your agent's folder with your client secrets. Follow .env.example in eve/agents

Add key and deployments properties to your agent's yaml file. Key is the mongo agent.key property. Ex:

name: Eve
key: eve

...

deployments:
  - discord

Run

eve deploy agent1 agent2 --db prod

To deploy all agents to production:

eve deploy --all --db prod
Clone this wiki locally