Skip to content

Commit 7ad2cac

Browse files
committed
feat: Integrate OpenRouter as model provider
1 parent 2d17b37 commit 7ad2cac

File tree

2 files changed

+16
-8
lines changed

2 files changed

+16
-8
lines changed

core/src/core/embedding.ts

+8-4
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,17 @@ import { IAgentRuntime, ModelProvider } from "./types.ts";
88
*/
99
export async function embed(runtime: IAgentRuntime, input: string) {
1010
// get the charcter, and handle by model type
11-
const model = models[runtime.character.settings.model];
12-
13-
if (model !== ModelProvider.OPENAI) {
11+
const provider = runtime.modelProvider;
12+
13+
// Use local llama for non-OpenAI/OpenRouter providers
14+
if (provider !== ModelProvider.OPENAI && provider !== ModelProvider.OPENROUTER) {
1415
return await runtime.llamaService.getEmbeddingResponse(input);
1516
}
1617

17-
const embeddingModel = models[runtime.modelProvider].model.embedding;
18+
const embeddingModel = getModel(provider, ModelClass.EMBEDDING, runtime);
19+
const endpoint = provider === ModelProvider.OPENROUTER ?
20+
"https://openrouter.ai/api/v1" :
21+
models[provider].endpoint;
1822

1923
// Check if we already have the embedding in the lore
2024
const cachedEmbedding = await retrieveCachedEmbedding(runtime, input);

core/src/core/generation.ts

+8-4
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,13 @@ export async function generateText({
7070

7171
switch (provider) {
7272
case ModelProvider.OPENAI:
73-
case ModelProvider.LLAMACLOUD: {
74-
prettyConsole.log("Initializing OpenAI model.");
75-
const openai = createOpenAI({ apiKey });
73+
case ModelProvider.LLAMACLOUD:
74+
case ModelProvider.OPENROUTER: {
75+
prettyConsole.log(`Initializing ${provider} model.`);
76+
const openai = createOpenAI({
77+
apiKey,
78+
baseURL: provider === ModelProvider.OPENROUTER ? "https://openrouter.ai/api/v1" : undefined
79+
});
7680

7781
console.log('****** CONTEXT\n', context)
7882

@@ -88,7 +92,7 @@ export async function generateText({
8892
console.log("****** RESPONSE\n", openaiResponse);
8993

9094
response = openaiResponse;
91-
prettyConsole.log("Received response from OpenAI model.");
95+
prettyConsole.log(`Received response from ${provider} model.`);
9296
break;
9397
}
9498

0 commit comments

Comments
 (0)