Skip to content
Jonathan Miller edited this page Dec 6, 2024 · 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
git checkout reformat

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

To get help with eve, run:

rye run eve --help

Create with tools

rye run eve create flux_schnell --prompt "universe in a bottle" --aspect_ratio "16:9"`

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

rye run eve update txt2img img2vid vid2vid_sdxl

Test a tool on stage (using test.json)

rye run eve test flux_schnell

Chat with Eve (not working yet)

rye run eve chat

Running Clients

Eve comes with a number of lightweight clients that allow you to interact with an eve agent on different social platforms.

Example for Discord (Assumes you have a .env file in the eve/clients/discord folder based on the example env)

Running locally:

rye sync --features "discord"
rye run python eve/clients/discord/client.py --env=./eve/clients/discord/.env

Running with docker

docker build -f eve/clients/discord/Dockerfile --build-arg ENV_FILE=eve/clients/discord/.env -t eve-discord .
docker run --name eve-discord eve-discord

Running Agents

To run an agent from a yaml file, use the eve start command. 1st arg is a relative path to a yaml file containing an eve agent spec, with --env being optional arg (defaults to .env)

This 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:

rye run eve start eve/agents/new.yaml --env=./eve/clients/discord/.env

Deploying Agents to Modal

Create a .env.{key} file in eve/agents with your client secrets 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

rye run python scripts/deploy_agent.py

Or to deploy individual agents:

rye run python scripts/deploy_agent.py --agents=agent1,agent2
Clone this wiki locally