Skip to content

Commit 5f30beb

Browse files
authored
Merge branch 'main' into shaw/add-echochambers
2 parents c79f5a4 + 1c9a5a1 commit 5f30beb

File tree

163 files changed

+9753
-4325
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

163 files changed

+9753
-4325
lines changed

.env.example

+59-6
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,15 @@ DISCORD_VOICE_CHANNEL_ID= # The ID of the voice channel the bot should join (opt
55

66
# AI Model API Keys
77
OPENAI_API_KEY= # OpenAI API key, starting with sk-
8+
SMALL_OPENAI_MODEL= # Default: gpt-4o-mini
9+
MEDIUM_OPENAI_MODEL= # Default: gpt-4o
10+
LARGE_OPENAI_MODEL= # Default: gpt-4o
11+
EMBEDDING_OPENAI_MODEL= # Default: text-embedding-3-small
12+
IMAGE_OPENAI_MODEL= # Default: dall-e-3
813

14+
# Eternal AI's Decentralized Inference API
915
ETERNALAI_URL=
16+
ETERNALAI_MODEL= #Default: "neuralmagic/Meta-Llama-3.1-405B-Instruct-quantized.w4a16"
1017
ETERNALAI_API_KEY=
1118

1219
GROK_API_KEY= # GROK API Key
@@ -16,6 +23,14 @@ GOOGLE_GENERATIVE_AI_API_KEY= # Gemini API key
1623

1724
ALI_BAILIAN_API_KEY= # Ali Bailian API Key
1825
VOLENGINE_API_KEY= # VolEngine API Key
26+
NANOGPT_API_KEY= # NanoGPT API Key
27+
28+
HYPERBOLIC_API_KEY= # Hyperbolic API Key
29+
HYPERBOLIC_MODEL=
30+
IMAGE_HYPERBOLIC_MODEL= # Default: FLUX.1-dev
31+
SMALL_HYPERBOLIC_MODEL= # Default: meta-llama/Llama-3.2-3B-Instruct
32+
MEDIUM_HYPERBOLIC_MODEL= # Default: meta-llama/Meta-Llama-3.1-70B-Instruct
33+
LARGE_HYPERBOLIC_MODEL= # Default: meta-llama/Meta-Llama-3.1-405-Instruct
1934

2035
# Speech Synthesis
2136
ELEVENLABS_XI_API_KEY= # API key from elevenlabs
@@ -81,25 +96,49 @@ MEDIUM_GOOGLE_MODEL= # Default: gemini-1.5-flash-latest
8196
LARGE_GOOGLE_MODEL= # Default: gemini-1.5-pro-latest
8297
EMBEDDING_GOOGLE_MODEL= # Default: text-embedding-004
8398

99+
# Groq Configuration
100+
SMALL_GROQ_MODEL= # Default: llama-3.1-8b-instant
101+
MEDIUM_GROQ_MODEL= # Default: llama-3.3-70b-versatile
102+
LARGE_GROQ_MODEL= # Default: llama-3.2-90b-vision-preview
103+
EMBEDDING_GROQ_MODEL= # Default: llama-3.1-8b-instant
84104

105+
# NanoGPT Configuration
106+
SMALL_NANOGPT_MODEL= # Default: gpt-4o-mini
107+
MEDIUM_NANOGPT_MODEL= # Default: gpt-4o
108+
LARGE_NANOGPT_MODEL= # Default: gpt-4o
85109

86110
#LlamaLocal Configuration
87111
LLAMALOCAL_PATH= # Default: "" which is the current directory in plugin-node/dist/ which gets destroyed and recreated on every build
88112

89113
# API Keys
90114
ANTHROPIC_API_KEY= # For Claude
115+
SMALL_ANTHROPIC_MODEL= # Default: claude-3-haiku-20240307
116+
MEDIUM_ANTHROPIC_MODEL= # Default: claude-3-5-sonnet-20241022
117+
LARGE_ANTHROPIC_MODEL= # Default: claude-3-5-sonnet-20241022
118+
91119
HEURIST_API_KEY= # Get from https://heurist.ai/dev-access
92120

93121
# Heurist Models
94-
SMALL_HEURIST_LANGUAGE_MODEL=
95-
MEDIUM_HEURIST_LANGUAGE_MODEL=
96-
LARGE_HEURIST_LANGUAGE_MODEL=
97-
HEURIST_IMAGE_MODEL=
122+
SMALL_HEURIST_MODEL= # Default: meta-llama/llama-3-70b-instruct
123+
MEDIUM_HEURIST_MODEL= # Default: meta-llama/llama-3-70b-instruct
124+
LARGE_HEURIST_MODEL= # Default: meta-llama/llama-3.1-405b-instruct
125+
HEURIST_IMAGE_MODEL= # Default: PepeXL
98126

99127
# Gaianet Configuration
100128
GAIANET_MODEL=
101129
GAIANET_SERVER_URL=
130+
131+
SMALL_GAIANET_MODEL= # Default: llama3b
132+
SMALL_GAIANET_SERVER_URL= # Default: https://llama3b.gaia.domains/v1
133+
134+
MEDIUM_GAIANET_MODEL= # Default: llama
135+
MEDIUM_GAIANET_SERVER_URL= # Default: https://llama8b.gaia.domains/v1
136+
137+
LARGE_GAIANET_MODEL= # Default: qwen72b
138+
LARGE_GAIANET_SERVER_URL= # Default: https://qwen72b.gaia.domains/v1
139+
102140
GAIANET_EMBEDDING_MODEL=
141+
USE_GAIANET_EMBEDDING= # Set to TRUE for GAIANET/768, leave blank for local
103142

104143
# EVM
105144
EVM_PRIVATE_KEY=
@@ -143,6 +182,8 @@ INTIFACE_WEBSOCKET_URL=ws://localhost:12345
143182
FARCASTER_FID= # the FID associated with the account your are sending casts from
144183
FARCASTER_NEYNAR_API_KEY= # Neynar API key: https://neynar.com/
145184
FARCASTER_NEYNAR_SIGNER_UUID= # signer for the account you are sending casts from. create a signer here: https://dev.neynar.com/app
185+
FARCASTER_DRY_RUN=false # Set to true if you want to run the bot without actually publishing casts
186+
FARCASTER_POLL_INTERVAL=120 # How often (in seconds) the bot should check for farcaster interactions (replies and mentions)
146187

147188
# Coinbase
148189
COINBASE_COMMERCE_KEY= # from coinbase developer portal
@@ -167,7 +208,12 @@ ZEROG_PRIVATE_KEY=
167208
ZEROG_FLOW_ADDRESS=
168209

169210
# TEE Configuration
170-
DSTACK_SIMULATOR_ENDPOINT=
211+
# TEE_MODE options:
212+
# - LOCAL: Uses simulator at localhost:8090 (for local development)
213+
# - DOCKER: Uses simulator at host.docker.internal:8090 (for docker development)
214+
# - PRODUCTION: No simulator, uses production endpoints
215+
# Defaults to OFF if not specified
216+
TEE_MODE=OFF #LOCAL|DOCKER|PRODUCTION
171217
WALLET_SECRET_SALT= # ONLY DEFINE IF YOU WANT TO USE TEE Plugin, otherwise it will throw errors
172218

173219
# Galadriel Configuration
@@ -204,4 +250,11 @@ ECHOCHAMBERS_API_KEY=testingkey0011
204250
ECHOCHAMBERS_USERNAME=eliza
205251
ECHOCHAMBERS_DEFAULT_ROOM=general
206252
ECHOCHAMBERS_POLL_INTERVAL=60
207-
ECHOCHAMBERS_MAX_MESSAGES=10
253+
ECHOCHAMBERS_MAX_MESSAGES=10
254+
255+
# AWS S3 Configuration Settings for File Upload
256+
AWS_ACCESS_KEY_ID=
257+
AWS_SECRET_ACCESS_KEY=
258+
AWS_REGION=
259+
AWS_S3_BUCKET=
260+
AWS_S3_UPLOAD_PATH=

.github/workflows/image.yaml

+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
#
2+
name: Create and publish a Docker image
3+
4+
# Configures this workflow to run every time a change is pushed to the branch called `release`.
5+
on:
6+
release:
7+
types: [created]
8+
workflow_dispatch:
9+
10+
# Defines two custom environment variables for the workflow. These are used for the Container registry domain, and a name for the Docker image that this workflow builds.
11+
env:
12+
REGISTRY: ghcr.io
13+
IMAGE_NAME: ${{ github.repository }}
14+
15+
# There is a single job in this workflow. It's configured to run on the latest available version of Ubuntu.
16+
jobs:
17+
build-and-push-image:
18+
runs-on: ubuntu-latest
19+
# Sets the permissions granted to the `GITHUB_TOKEN` for the actions in this job.
20+
permissions:
21+
contents: read
22+
packages: write
23+
attestations: write
24+
id-token: write
25+
#
26+
steps:
27+
- name: Checkout repository
28+
uses: actions/checkout@v4
29+
# Uses the `docker/login-action` action to log in to the Container registry registry using the account and password that will publish the packages. Once published, the packages are scoped to the account defined here.
30+
- name: Log in to the Container registry
31+
uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1
32+
with:
33+
registry: ${{ env.REGISTRY }}
34+
username: ${{ github.actor }}
35+
password: ${{ secrets.GITHUB_TOKEN }}
36+
# This step uses [docker/metadata-action](https://github.com/docker/metadata-action#about) to extract tags and labels that will be applied to the specified image. The `id` "meta" allows the output of this step to be referenced in a subsequent step. The `images` value provides the base name for the tags and labels.
37+
- name: Extract metadata (tags, labels) for Docker
38+
id: meta
39+
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7
40+
with:
41+
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
42+
# This step uses the `docker/build-push-action` action to build the image, based on your repository's `Dockerfile`. If the build succeeds, it pushes the image to GitHub Packages.
43+
# It uses the `context` parameter to define the build's context as the set of files located in the specified path. For more information, see "[Usage](https://github.com/docker/build-push-action#usage)" in the README of the `docker/build-push-action` repository.
44+
# It uses the `tags` and `labels` parameters to tag and label the image with the output from the "meta" step.
45+
- name: Build and push Docker image
46+
id: push
47+
uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4
48+
with:
49+
context: .
50+
push: true
51+
tags: ${{ steps.meta.outputs.tags }}
52+
labels: ${{ steps.meta.outputs.labels }}
53+
54+
# This step generates an artifact attestation for the image, which is an unforgeable statement about where and how it was built. It increases supply chain security for people who consume the image. For more information, see "[AUTOTITLE](/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds)."
55+
- name: Generate artifact attestation
56+
uses: actions/attest-build-provenance@v1
57+
with:
58+
subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME}}
59+
subject-digest: ${{ steps.push.outputs.digest }}
60+
push-to-registry: true
61+

.github/workflows/require-develop.yml

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
name: Check pull request source branch
2+
on:
3+
pull_request_target:
4+
types:
5+
- opened
6+
- reopened
7+
- synchronize
8+
- edited
9+
jobs:
10+
check-branches:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- name: Check branches
14+
run: |
15+
if [ ${{ github.head_ref }} != "develop" ] && [ ${{ github.base_ref }} == "main" ]; then
16+
echo "Merge requests to main branch are only allowed from dev branch."
17+
exit 1
18+
fi

Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ COPY characters ./characters
2525

2626
# Install dependencies and build the project
2727
RUN pnpm install \
28-
&& pnpm build \
28+
&& pnpm build-docker \
2929
&& pnpm prune --prod
3030

3131
# Create a new stage for the final image

0 commit comments

Comments
 (0)