Skip to content

Commit

Permalink
single env to fetch provider key!
Browse files Browse the repository at this point in the history
  • Loading branch information
wtfsayo committed Feb 2, 2025
1 parent a897109 commit e78d94e
Show file tree
Hide file tree
Showing 3 changed files with 3 additions and 193 deletions.
159 changes: 2 additions & 157 deletions agent/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -533,165 +533,10 @@ async function handlePluginImporting(plugins: string[]) {
}

export function getTokenForProvider(
provider: ModelProviderName,
character: Character
): string | undefined {
switch (provider) {
// no key needed for llama_local, ollama, lmstudio, gaianet or bedrock
case ModelProviderName.LLAMALOCAL:
return "";
case ModelProviderName.OLLAMA:
return "";
case ModelProviderName.LMSTUDIO:
return "";
case ModelProviderName.GAIANET:
return "";
case ModelProviderName.BEDROCK:
return "";
case ModelProviderName.OPENAI:
return (
character.settings?.secrets?.OPENAI_API_KEY ||
settings.OPENAI_API_KEY
);
case ModelProviderName.ETERNALAI:
return (
character.settings?.secrets?.ETERNALAI_API_KEY ||
settings.ETERNALAI_API_KEY
);
case ModelProviderName.NINETEEN_AI:
return (
character.settings?.secrets?.NINETEEN_AI_API_KEY ||
settings.NINETEEN_AI_API_KEY
);
case ModelProviderName.LLAMACLOUD:
case ModelProviderName.TOGETHER:
return (
character.settings?.secrets?.LLAMACLOUD_API_KEY ||
settings.LLAMACLOUD_API_KEY ||
character.settings?.secrets?.TOGETHER_API_KEY ||
settings.TOGETHER_API_KEY ||
character.settings?.secrets?.OPENAI_API_KEY ||
settings.OPENAI_API_KEY
);
case ModelProviderName.CLAUDE_VERTEX:
case ModelProviderName.ANTHROPIC:
return (
character.settings?.secrets?.ANTHROPIC_API_KEY ||
character.settings?.secrets?.CLAUDE_API_KEY ||
settings.ANTHROPIC_API_KEY ||
settings.CLAUDE_API_KEY
);
case ModelProviderName.REDPILL:
return (
character.settings?.secrets?.REDPILL_API_KEY ||
settings.REDPILL_API_KEY
);
case ModelProviderName.OPENROUTER:
return (
character.settings?.secrets?.OPENROUTER_API_KEY ||
settings.OPENROUTER_API_KEY
);
case ModelProviderName.GROK:
return (
character.settings?.secrets?.GROK_API_KEY ||
settings.GROK_API_KEY
);
case ModelProviderName.HEURIST:
return (
character.settings?.secrets?.HEURIST_API_KEY ||
settings.HEURIST_API_KEY
);
case ModelProviderName.GROQ:
return (
character.settings?.secrets?.GROQ_API_KEY ||
settings.GROQ_API_KEY
);
case ModelProviderName.GALADRIEL:
return (
character.settings?.secrets?.GALADRIEL_API_KEY ||
settings.GALADRIEL_API_KEY
);
case ModelProviderName.FAL:
return (
character.settings?.secrets?.FAL_API_KEY || settings.FAL_API_KEY
);
case ModelProviderName.ALI_BAILIAN:
return (
character.settings?.secrets?.ALI_BAILIAN_API_KEY ||
settings.ALI_BAILIAN_API_KEY
);
case ModelProviderName.VOLENGINE:
return (
character.settings?.secrets?.VOLENGINE_API_KEY ||
settings.VOLENGINE_API_KEY
);
case ModelProviderName.NANOGPT:
return (
character.settings?.secrets?.NANOGPT_API_KEY ||
settings.NANOGPT_API_KEY
);
case ModelProviderName.HYPERBOLIC:
return (
character.settings?.secrets?.HYPERBOLIC_API_KEY ||
settings.HYPERBOLIC_API_KEY
);

case ModelProviderName.VENICE:
return (
character.settings?.secrets?.VENICE_API_KEY ||
settings.VENICE_API_KEY
);
case ModelProviderName.ATOMA:
return (
character.settings?.secrets?.ATOMASDK_BEARER_AUTH ||
settings.ATOMASDK_BEARER_AUTH
);
case ModelProviderName.NVIDIA:
return (
character.settings?.secrets?.NVIDIA_API_KEY ||
settings.NVIDIA_API_KEY
);
case ModelProviderName.AKASH_CHAT_API:
return (
character.settings?.secrets?.AKASH_CHAT_API_KEY ||
settings.AKASH_CHAT_API_KEY
);
case ModelProviderName.GOOGLE:
return (
character.settings?.secrets?.GOOGLE_GENERATIVE_AI_API_KEY ||
settings.GOOGLE_GENERATIVE_AI_API_KEY
);
case ModelProviderName.MISTRAL:
return (
character.settings?.secrets?.MISTRAL_API_KEY ||
settings.MISTRAL_API_KEY
);
case ModelProviderName.LETZAI:
return (
character.settings?.secrets?.LETZAI_API_KEY ||
settings.LETZAI_API_KEY
);
case ModelProviderName.INFERA:
return (
character.settings?.secrets?.INFERA_API_KEY ||
settings.INFERA_API_KEY
);
case ModelProviderName.DEEPSEEK:
return (
character.settings?.secrets?.DEEPSEEK_API_KEY ||
settings.DEEPSEEK_API_KEY
);
case ModelProviderName.LIVEPEER:
return (
character.settings?.secrets?.LIVEPEER_GATEWAY_URL ||
settings.LIVEPEER_GATEWAY_URL
);
default: {
const errorMessage = `Failed to get token - unsupported model provider: ${provider}`;
elizaLogger.error(errorMessage);
throw new Error(errorMessage);
}
}
// change: unified single MODEL_API_KEY for all providers
return character.settings?.secrets?.MODEL_API_KEY || settings.MODEL_API_KEY;
}

function initializeDatabase(dataDir: string) {
Expand Down
8 changes: 1 addition & 7 deletions packages/core/src/generation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,20 +12,14 @@ import {
type GenerateObjectResult,
type StepResult as AIStepResult,
} from "ai";
import { Buffer } from "buffer";
import { Buffer } from "node:buffer";
import { createOllama } from "ollama-ai-provider";
import OpenAI from "openai";
import { encodingForModel, type TiktokenModel } from "js-tiktoken";
import { AutoTokenizer } from "@huggingface/transformers";
import Together from "together-ai";
import type { ZodSchema } from "zod";
import { elizaLogger } from "./index.ts";
import {
models,
getModelSettings,
getImageModelSettings,
getEndpoint,
} from "./models.ts";
import {
parseBooleanFromText,
parseJsonArrayFromText,
Expand Down
29 changes: 0 additions & 29 deletions packages/core/src/models.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1154,32 +1154,3 @@ import {
// },
// };

export function getModelSettings(
provider: ModelProviderName,
type: ModelClass,
runtime: IAgentRuntime
): ModelSettings | undefined {
return runtime.getProvider(provider)?.model[type] as ModelSettings | undefined;
}

export function getImageModelSettings(
provider: ModelProviderName,
runtime: IAgentRuntime
): ImageModelSettings | undefined {
return runtime.getProvider(provider)?.model[ModelClass.IMAGE] as
| ImageModelSettings
| undefined;
}

export function getEmbeddingModelSettings(
provider: ModelProviderName,
runtime: IAgentRuntime
): EmbeddingModelSettings | undefined {
return runtime.getProvider(provider)?.model[ModelClass.EMBEDDING] as
| EmbeddingModelSettings
| undefined;
}

export function getEndpoint(provider: ModelProviderName, runtime: IAgentRuntime) {
return runtime.getProvider(provider).endpoint;
}

0 comments on commit e78d94e

Please sign in to comment.