Skip to content

Commit

Permalink
Adding Venice ElizaOS Template (#634)
Browse files Browse the repository at this point in the history
Adding template for one-click ElizaOS Agent Deployment using Venice API
on Akash

---------

Co-authored-by: Kyle Cohen <[email protected]>
  • Loading branch information
kyle-veniceai and Kyle Cohen authored Feb 24, 2025
1 parent 34338ac commit 4ae2500
Show file tree
Hide file tree
Showing 5 changed files with 141 additions and 0 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ Also, follow [@akashnet\_](https://twitter.com/akashnet_) to stay in the loop wi
- [Serge](serge-cpu)
- [Stable Diffusion](stable-diffusion-ui)
- [Terminal GPT](tgpt)
- [Venice-ElizaOS](Venice-ElizaOS)
- [Weaviate](weaviate)
- [Whisper ASR](whisper-asr-cpu)
- [Whisper GUI](whisper-gui-cpu)
Expand Down
59 changes: 59 additions & 0 deletions Venice-ElizaOS/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Launching an Eliza Agent using Venice API on Akash

This is a template for launching an Eliza Agent with direct interaction and Twitter/X integration on Akash. This enables users to input their Venice API Key, Twitter Credentials, and Character information to get the Eliza agent up and running. You will need a Venice API key for this to work properly.

# About Venice
Venice is a privacy focused generative AI platform, allowing users to interact with open-source LLMs without storing any private user data. To get started with Venice's API, either purchase a pro account, stake $VVV to obtain daily inference allotments or fund your account with USD and head over to https://venice.ai/settings/api. Venice hosts state of the art open-source AI models and supports the OpenAI API standard, allowing users to easily interact with the platform. Learn more about the Venice API at https://venice.ai/api.

## Obtaining a Venice API Key
Users can access the Venice API in 3 different ways:

1. Pro Account: Users with a PRO account will gain access to the Venice API within the “Explorer Tier”. This tier has lower rate-limits, and is intended for simple interaction with the API.

2. VCUs: With Venice’s launch of the $VVV token, users who stake tokens within the Venice protocol gain access to a daily AI inference allocation (as well as ongoing staking yield). When staking, users receive VCUs, which represent a portion of the overall Venice compute capacity. You can stake $VVV tokens and see your VCU allotment here (https://venice.ai/token). Users with positive VCU balance are entitled to “Paid Tier” rate limits.

3. USD: User’s can also opt to deposit USD into their account to pay for API inference the same way that they would on other platforms, like OpenAI or Anthropic. Users with positive USD balance are entitled to “Paid Tier” rate limits.

## Usage
To launch an Eliza Agent using Venice API through Akash, you need to follow the following instructions:

* Create new deployment on Akash
* Launch Using Template (this template)
* Edit the SDL file with the following
1. Venice API Key
2. Venice Model selection - Go to https://docs.venice.ai/api-reference/endpoint/models/list?playground=open for Model IDs
3. Twitter credentials and configurations. If you decide to not use the twitter integration, delete "twitter" within "CHAR_CLIENTS="
4. Character Card information, used to define the personality of the character. View samples of characters from the Eliza github https://github.com/elizaOS/eliza/tree/main/characters
* Create the deployment and select a provider
* View the "Events" to ensure the docker container properly scales up
* View the "Logs" to ensure the Eliza agent properly connects to twitter and starts up
* Identify the port that is being forwarded to "3000" and click on it. You should see "Welcome, this is the REST API!"
* Interact with your character through the API.
Identify the agent id:
```
curl --location 'http://<provider>:<port>/agents'
```
Chat with the agent:
```
curl --location 'http://<provider>:<port>/<agentid>/message' \
--header 'Content-Type: application/json' \
--data '{
"text": "what is your name"
}'
```
* Go to the twitter account that was configured and see what your agent is posting!
## Documentation
Venice API Spec https://docs.venice.ai/api-reference/api-spec
Venice Integrations (including in-depth how-to guide) https://docs.venice.ai/welcome/guides/integrations
## Support
To learn more and get support:
* Check the Venice API documentation (https://docs.venice.ai/welcome/about-venice)
* Review detailed model specifications in our model endpoints list (https://docs.venice.ai/api-reference/endpoint/models/list?_gl=1*1ij5ulr*_gcl_au*MzMxODkxODc3LjE3MzgwNDc3NTU._gl=1*1ij5ulr*_gcl_au*MzMxODkxODc3LjE3MzgwNDc3NTU.)
* Join the Venice Discord for developer discussions and support in the #api channel (https://discord.gg/venice)
4 changes: 4 additions & 0 deletions Venice-ElizaOS/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"$schema": "../config.schema.json",
"ssh": false,
"logoUrl": "https://raw.githubusercontent.com/akash-network/awesome-akash/master/Venice-ElizaOS/image.png"}
77 changes: 77 additions & 0 deletions Venice-ElizaOS/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
---
version: "2.0"
services:
service-1:
image: kylecohen01/venice_eliza:1.1
expose:
- port: 3000
as: 3000
to:
- global: true
- port: 5173 #these are currently enabled for testing of the chat UI. This is currently not functional. Placeholder for testing
as: 5173
to:
- global: true
- port: 5174 #these are currently enabled for testing of the chat UI. This is currently not functional. Placeholder for testing
as: 5174
to:
- global: true
env:
- TWITTER_USERNAME= #twitter username
- TWITTER_PASSWORD= #twitter password
- TWITTER_EMAIL= #twitter email address
- TWITTER_POLL_INTERVAL=120
- TWITTER_SEARCH_ENABLE=FALSE
- TWITTER_TARGET_USERS= #twitter accounts to target
- POST_INTERVAL_MIN=60 #min posting frequency
- POST_INTERVAL_MAX=120 #max posting frequency
- POST_IMMEDIATELY=true
- TWITTER_DRY_RUN=false #test-run, true does not post to twitter
- TWITTER_SPACES_ENABLE=false
- ENABLE_TWITTER_POST_GENERATION=true
- ENABLE_ACTION_PROCESSING=false
- MAX_ACTIONS_PROCESSING=1
- ACTION_TIMELINE_TYPE=foryou
- VENICE_API_KEY= #venice api key
- SMALL_VENICE_MODEL=llama-3.3-70b #venice model selectors
- MEDIUM_VENICE_MODEL=llama-3.3-70b #venice model selectors
- LARGE_VENICE_MODEL=llama-3.3-70b #venice model selectors
- IMAGE_VENICE_MODEL=flux-dev #venice model selectors
- DEFAULT_LOG_LEVEL=debug #log level - debug shows everything
- CHAR_CLIENTS=twitter #clients to enable. SDL only setup for twitter integation or empty for chat only
- CHAR_NAME= #name your character, do not use quotes
- CHAR_BIO= #character bio, separate by commas, do not use quotes
- CHAR_LORE= #character lore, separate by commas, do not use quotes
- PROMPT_1_INPUT= #user sample prompt
- PROMPT_1_RESPONSE= #character sample response
- PROMPT_2_INPUT= #user sample prompt
- PROMPT_2_RESPONSE= #character sample response
- POST_EXAMPLES=
- CHAR_OVERALL_STYLE= #character overall style, separate by commas, do not use quotes
- CHAR_CHAT_STYLE= #character chat style, separate by commas, do not use quotes
- CHAR_POST_STYLE= #character post style, separate by commas, do not use quotes
- CHAR_ADJECTIVES= #character adjectives, separate by commas, do not use quotes
profiles:
compute:
service-1:
resources:
cpu:
units:
- 16
memory:
size: 32gb #tuning of these values for optimization required
storage:
- size: 64Gi #tuning of these values for optimization required
placement:
dcloud:
pricing:
service-1:
denom: uakt
amount: 1000000
attributes:
host: akash
deployment:
service-1:
dcloud:
profile: service-1
count: 1
Binary file added Venice-ElizaOS/image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 4ae2500

Please sign in to comment.