File tree 5 files changed +59
-0
lines changed
5 files changed +59
-0
lines changed Original file line number Diff line number Diff line change @@ -4,6 +4,7 @@ DISCORD_API_TOKEN= # Bot token
4
4
OPENAI_API_KEY = sk-* # OpenAI API key, starting with sk-
5
5
REDPILL_API_KEY = # REDPILL API Key
6
6
GROQ_API_KEY = gsk_*
7
+ OPENROUTER_API_KEY =
7
8
8
9
ELEVENLABS_XI_API_KEY = # API key from elevenlabs
9
10
@@ -27,6 +28,13 @@ X_SERVER_URL=
27
28
XAI_API_KEY =
28
29
XAI_MODEL =
29
30
31
+ # OpenRouter (Use one model for everything or set individual for small, medium, large tasks)
32
+ # leave blank to use defaults hermes 70b for small tasks & 405b for medium/large tasks
33
+ OPENROUTER_MODEL =
34
+ SMALL_OPENROUTER_MODEL =
35
+ MEDIUM_OLLAMA_MODEL =
36
+ LARGE_OLLAMA_MODEL =
37
+
30
38
31
39
# Set to Use for New OLLAMA provider
32
40
OLLAMA_SERVER_URL = #Leave blank for default localhost:11434
Original file line number Diff line number Diff line change @@ -128,6 +128,11 @@ export function getTokenForProvider(
128
128
character . settings ?. secrets ?. REDPILL_API_KEY ||
129
129
settings . REDPILL_API_KEY
130
130
) ;
131
+ case ModelProviderName . OPENROUTER :
132
+ return (
133
+ character . settings ?. secrets ?. OPENROUTER ||
134
+ settings . OPENROUTER_API_KEY
135
+ ) ;
131
136
}
132
137
}
133
138
Original file line number Diff line number Diff line change @@ -214,6 +214,31 @@ export async function generateText({
214
214
break ;
215
215
}
216
216
217
+
218
+ case ModelProviderName . OPENROUTER : {
219
+ elizaLogger . log ( "Initializing OpenRouter model." ) ;
220
+ const serverUrl = models [ provider ] . endpoint ;
221
+ const openrouter = createOpenAI ( { apiKey, baseURL : serverUrl } ) ;
222
+
223
+ const { text : openrouterResponse } = await aiGenerateText ( {
224
+ model : openrouter . languageModel ( model ) ,
225
+ prompt : context ,
226
+ temperature : temperature ,
227
+ system :
228
+ runtime . character . system ??
229
+ settings . SYSTEM_PROMPT ??
230
+ undefined ,
231
+ maxTokens : max_response_length ,
232
+ frequencyPenalty : frequency_penalty ,
233
+ presencePenalty : presence_penalty ,
234
+ } ) ;
235
+
236
+ response = openrouterResponse ;
237
+ elizaLogger . log ( "Received response from OpenRouter model." ) ;
238
+ break ;
239
+ }
240
+
241
+
217
242
case ModelProviderName . OLLAMA :
218
243
{
219
244
console . log ( "Initializing Ollama model." ) ;
Original file line number Diff line number Diff line change @@ -162,6 +162,25 @@ const models: Models = {
162
162
[ ModelClass . EMBEDDING ] : "text-embedding-3-small" ,
163
163
} ,
164
164
} ,
165
+ [ ModelProviderName . OPENROUTER ] : {
166
+ endpoint : "https://openrouter.ai/api/v1" ,
167
+ settings : {
168
+ stop : [ ] ,
169
+ maxInputTokens : 128000 ,
170
+ maxOutputTokens : 8192 ,
171
+ frequency_penalty : 0.0 ,
172
+ presence_penalty : 0.0 ,
173
+ temperature : 0.6 ,
174
+ } ,
175
+ // Available models: https://docs.red-pill.ai/get-started/supported-models
176
+ // To test other models, change the models below
177
+ model : {
178
+ [ ModelClass . SMALL ] : "nousresearch/hermes-3-llama-3.1-70b" ,
179
+ [ ModelClass . MEDIUM ] : "nousresearch/hermes-3-llama-3.1-405b" ,
180
+ [ ModelClass . LARGE ] : "nousresearch/hermes-3-llama-3.1-405b" ,
181
+ [ ModelClass . EMBEDDING ] : "text-embedding-3-small" ,
182
+ } ,
183
+ } ,
165
184
[ ModelProviderName . OLLAMA ] : {
166
185
settings : {
167
186
stop : [ ] ,
Original file line number Diff line number Diff line change @@ -112,6 +112,7 @@ export type Models = {
112
112
[ ModelProviderName . GOOGLE ] : Model ;
113
113
[ ModelProviderName . CLAUDE_VERTEX ] : Model ;
114
114
[ ModelProviderName . REDPILL ] : Model ;
115
+ [ ModelProviderName . OPENROUTER ] : Model ;
115
116
[ ModelProviderName . OLLAMA ] : Model ;
116
117
} ;
117
118
@@ -125,6 +126,7 @@ export enum ModelProviderName {
125
126
GOOGLE = "google" ,
126
127
CLAUDE_VERTEX = "claude_vertex" ,
127
128
REDPILL = "redpill" ,
129
+ OPENROUTER = "openrouter" ,
128
130
OLLAMA = "ollama" ,
129
131
}
130
132
You can’t perform that action at this time.
0 commit comments