|
1 | 1 | import path from "node:path";
|
2 |
| -import { getEndpoint } from "./models.ts"; |
| 2 | +import { |
| 3 | + getEmbeddingModelSettings, |
| 4 | + getEndpoint, |
| 5 | + getModelSettings, |
| 6 | +} from "./models.ts"; |
3 | 7 | import { IAgentRuntime, ModelProviderName } from "./types.ts";
|
4 | 8 | import settings from "./settings.ts";
|
5 | 9 | import elizaLogger from "./logger.ts";
|
@@ -33,19 +37,20 @@ export type EmbeddingConfig = {
|
33 | 37 | export const getEmbeddingConfig = (): EmbeddingConfig => ({
|
34 | 38 | dimensions:
|
35 | 39 | settings.USE_OPENAI_EMBEDDING?.toLowerCase() === "true"
|
36 |
| - ? 1536 // OpenAI |
| 40 | + ? getEmbeddingModelSettings(ModelProviderName.OPENAI).dimensions |
37 | 41 | : settings.USE_OLLAMA_EMBEDDING?.toLowerCase() === "true"
|
38 |
| - ? 1024 // Ollama mxbai-embed-large |
| 42 | + ? getEmbeddingModelSettings(ModelProviderName.OLLAMA).dimensions |
39 | 43 | : settings.USE_GAIANET_EMBEDDING?.toLowerCase() === "true"
|
40 |
| - ? 768 // GaiaNet |
| 44 | + ? getEmbeddingModelSettings(ModelProviderName.GAIANET) |
| 45 | + .dimensions |
41 | 46 | : 384, // BGE
|
42 | 47 | model:
|
43 | 48 | settings.USE_OPENAI_EMBEDDING?.toLowerCase() === "true"
|
44 |
| - ? "text-embedding-3-small" |
| 49 | + ? getEmbeddingModelSettings(ModelProviderName.OPENAI).name |
45 | 50 | : settings.USE_OLLAMA_EMBEDDING?.toLowerCase() === "true"
|
46 |
| - ? settings.OLLAMA_EMBEDDING_MODEL || "mxbai-embed-large" |
| 51 | + ? getEmbeddingModelSettings(ModelProviderName.OLLAMA).name |
47 | 52 | : settings.USE_GAIANET_EMBEDDING?.toLowerCase() === "true"
|
48 |
| - ? settings.GAIANET_EMBEDDING_MODEL || "nomic-embed" |
| 53 | + ? getEmbeddingModelSettings(ModelProviderName.GAIANET).name |
49 | 54 | : "BGE-small-en-v1.5",
|
50 | 55 | provider:
|
51 | 56 | settings.USE_OPENAI_EMBEDDING?.toLowerCase() === "true"
|
@@ -134,11 +139,17 @@ export function getEmbeddingZeroVector(): number[] {
|
134 | 139 | let embeddingDimension = 384; // Default BGE dimension
|
135 | 140 |
|
136 | 141 | if (settings.USE_OPENAI_EMBEDDING?.toLowerCase() === "true") {
|
137 |
| - embeddingDimension = 1536; // OpenAI dimension |
| 142 | + embeddingDimension = getEmbeddingModelSettings( |
| 143 | + ModelProviderName.OPENAI |
| 144 | + ).dimensions; // OpenAI dimension |
138 | 145 | } else if (settings.USE_OLLAMA_EMBEDDING?.toLowerCase() === "true") {
|
139 |
| - embeddingDimension = 1024; // Ollama mxbai-embed-large dimension |
| 146 | + embeddingDimension = getEmbeddingModelSettings( |
| 147 | + ModelProviderName.OLLAMA |
| 148 | + ).dimensions; // Ollama mxbai-embed-large dimension |
140 | 149 | } else if (settings.USE_GAIANET_EMBEDDING?.toLowerCase() === "true") {
|
141 |
| - embeddingDimension = 768; // GaiaNet dimension |
| 150 | + embeddingDimension = getEmbeddingModelSettings( |
| 151 | + ModelProviderName.GAIANET |
| 152 | + ).dimensions; // GaiaNet dimension |
142 | 153 | }
|
143 | 154 |
|
144 | 155 | return Array(embeddingDimension).fill(0);
|
|
0 commit comments