Skip to content

Commit c551e17

Browse files
authored
refactor: remove legacy codebaseIndexOpenAiCompatibleModelDimension property (#5459)
1 parent 0606c56 commit c551e17

27 files changed

+308
-98
lines changed

src/core/config/__tests__/importExport.spec.ts

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -628,7 +628,7 @@ describe("importExport", () => {
628628
codebaseIndexEmbedderBaseUrl: "http://localhost:11434", // Wrong URL from Ollama
629629
// OpenAI Compatible settings are now stored directly in codebaseIndexConfig
630630
codebaseIndexOpenAiCompatibleBaseUrl: "https://custom-openai-api.example.com/v1",
631-
codebaseIndexOpenAiCompatibleModelDimension: 1536,
631+
codebaseIndexEmbedderModelDimension: 1536,
632632
},
633633
}
634634

@@ -673,7 +673,7 @@ describe("importExport", () => {
673673
codebaseIndexEmbedderBaseUrl: "",
674674
// OpenAI Compatible settings are now stored directly in codebaseIndexConfig
675675
codebaseIndexOpenAiCompatibleBaseUrl: "https://api.example.com/v1",
676-
codebaseIndexOpenAiCompatibleModelDimension: 768,
676+
codebaseIndexEmbedderModelDimension: 768,
677677
},
678678
}
679679

@@ -688,9 +688,7 @@ describe("importExport", () => {
688688

689689
const exportedData = (safeWriteJson as Mock).mock.calls[0][1]
690690
// Settings are now exported as-is from codebaseIndexConfig
691-
expect(
692-
exportedData.globalSettings.codebaseIndexConfig.codebaseIndexOpenAiCompatibleModelDimension,
693-
).toBe(768)
691+
expect(exportedData.globalSettings.codebaseIndexConfig.codebaseIndexEmbedderModelDimension).toBe(768)
694692
expect(exportedData.globalSettings.codebaseIndexConfig.codebaseIndexOpenAiCompatibleBaseUrl).toBe(
695693
"https://api.example.com/v1",
696694
)
@@ -731,7 +729,7 @@ describe("importExport", () => {
731729
codebaseIndexEmbedderBaseUrl: "http://localhost:11434", // Wrong URL from Ollama
732730
// OpenAI Compatible settings are now stored directly in codebaseIndexConfig
733731
codebaseIndexOpenAiCompatibleBaseUrl: "https://openai-compatible.example.com/v1",
734-
codebaseIndexOpenAiCompatibleModelDimension: 1536,
732+
codebaseIndexEmbedderModelDimension: 1536,
735733
},
736734
}
737735

@@ -749,9 +747,7 @@ describe("importExport", () => {
749747
expect(exportedData.globalSettings.codebaseIndexConfig.codebaseIndexOpenAiCompatibleBaseUrl).toBe(
750748
"https://openai-compatible.example.com/v1",
751749
)
752-
expect(
753-
exportedData.globalSettings.codebaseIndexConfig.codebaseIndexOpenAiCompatibleModelDimension,
754-
).toBe(1536)
750+
expect(exportedData.globalSettings.codebaseIndexConfig.codebaseIndexEmbedderModelDimension).toBe(1536)
755751
// The generic embedder base URL is still there
756752
expect(exportedData.globalSettings.codebaseIndexConfig.codebaseIndexEmbedderBaseUrl).toBe(
757753
"http://localhost:11434",
@@ -921,7 +917,6 @@ describe("importExport", () => {
921917
codebaseIndexEmbedderModelDimension: 1536,
922918
// OpenAI Compatible settings are now stored directly here
923919
codebaseIndexOpenAiCompatibleBaseUrl: "https://imported-url.example.com/v1",
924-
codebaseIndexOpenAiCompatibleModelDimension: 1536,
925920
},
926921
},
927922
})
@@ -956,7 +951,7 @@ describe("importExport", () => {
956951
expect.objectContaining({
957952
codebaseIndexConfig: expect.objectContaining({
958953
codebaseIndexOpenAiCompatibleBaseUrl: "https://imported-url.example.com/v1",
959-
codebaseIndexOpenAiCompatibleModelDimension: 1536,
954+
codebaseIndexEmbedderModelDimension: 1536,
960955
}),
961956
}),
962957
)
@@ -1105,7 +1100,6 @@ describe("importExport", () => {
11051100
codebaseIndexEmbedderModelDimension: testModelDimension,
11061101
// OpenAI Compatible settings are now stored directly in codebaseIndexConfig
11071102
codebaseIndexOpenAiCompatibleBaseUrl: "https://api.example.com/v1",
1108-
codebaseIndexOpenAiCompatibleModelDimension: testModelDimension,
11091103
},
11101104
}
11111105

@@ -1160,7 +1154,7 @@ describe("importExport", () => {
11601154

11611155
// Step 9: Verify that the model dimension was preserved exactly in global settings
11621156
const importedGlobalSettings = mockContextProxy.setValues.mock.calls[0][0]
1163-
expect(importedGlobalSettings.codebaseIndexConfig?.codebaseIndexOpenAiCompatibleModelDimension).toBe(
1157+
expect(importedGlobalSettings.codebaseIndexConfig?.codebaseIndexEmbedderModelDimension).toBe(
11641158
testModelDimension,
11651159
)
11661160
expect(importedGlobalSettings.codebaseIndexConfig?.codebaseIndexOpenAiCompatibleBaseUrl).toBe(
@@ -1198,7 +1192,7 @@ describe("importExport", () => {
11981192
codebaseIndexEmbedderBaseUrl: "https://api.example.com/v1",
11991193
// OpenAI Compatible settings are now stored directly in codebaseIndexConfig
12001194
codebaseIndexOpenAiCompatibleBaseUrl: "https://api.example.com/v1",
1201-
codebaseIndexOpenAiCompatibleModelDimension: testModelDimension, // 0 is a valid value
1195+
codebaseIndexEmbedderModelDimension: testModelDimension, // 0 is a valid value
12021196
},
12031197
}
12041198

@@ -1219,7 +1213,7 @@ describe("importExport", () => {
12191213

12201214
// Verify the exported data includes the model dimension even when it's 0
12211215
const exportedData = (safeWriteJson as Mock).mock.calls[0][1]
1222-
expect(exportedData.globalSettings.codebaseIndexConfig.codebaseIndexOpenAiCompatibleModelDimension).toBe(0)
1216+
expect(exportedData.globalSettings.codebaseIndexConfig.codebaseIndexEmbedderModelDimension).toBe(0)
12231217

12241218
// Test import roundtrip
12251219
const exportedFileContent = JSON.stringify(exportedData)
@@ -1247,7 +1241,7 @@ describe("importExport", () => {
12471241

12481242
// Verify that model dimension 0 was preserved in global settings
12491243
const setValuesCall = mockContextProxy.setValues.mock.calls[0][0]
1250-
expect(setValuesCall.codebaseIndexConfig?.codebaseIndexOpenAiCompatibleModelDimension).toBe(0)
1244+
expect(setValuesCall.codebaseIndexConfig?.codebaseIndexEmbedderModelDimension).toBe(0)
12511245
})
12521246

12531247
it("should handle missing model dimension gracefully", async () => {

src/core/webview/webviewMessageHandler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1967,8 +1967,8 @@ export const webviewMessageHandler = async (
19671967
codebaseIndexEmbedderProvider: settings.codebaseIndexEmbedderProvider,
19681968
codebaseIndexEmbedderBaseUrl: settings.codebaseIndexEmbedderBaseUrl,
19691969
codebaseIndexEmbedderModelId: settings.codebaseIndexEmbedderModelId,
1970+
codebaseIndexEmbedderModelDimension: settings.codebaseIndexEmbedderModelDimension, // Generic dimension
19701971
codebaseIndexOpenAiCompatibleBaseUrl: settings.codebaseIndexOpenAiCompatibleBaseUrl,
1971-
codebaseIndexOpenAiCompatibleModelDimension: settings.codebaseIndexOpenAiCompatibleModelDimension,
19721972
codebaseIndexSearchMaxResults: settings.codebaseIndexSearchMaxResults,
19731973
codebaseIndexSearchMinScore: settings.codebaseIndexSearchMinScore,
19741974
}

src/i18n/locales/ca/embeddings.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,5 +37,16 @@
3737
"invalidBaseUrl": "URL base no vàlida. Comproveu la vostra configuració d'URL.",
3838
"invalidModel": "Model no vàlid. Comproveu la vostra configuració de model.",
3939
"invalidResponse": "Resposta no vàlida del servei d'incrustació. Comproveu la vostra configuració."
40+
},
41+
"serviceFactory": {
42+
"openAiConfigMissing": "Falta la configuració d'OpenAI per crear l'embedder",
43+
"ollamaConfigMissing": "Falta la configuració d'Ollama per crear l'embedder",
44+
"openAiCompatibleConfigMissing": "Falta la configuració compatible amb OpenAI per crear l'embedder",
45+
"geminiConfigMissing": "Falta la configuració de Gemini per crear l'embedder",
46+
"invalidEmbedderType": "Tipus d'embedder configurat no vàlid: {{embedderProvider}}",
47+
"vectorDimensionNotDeterminedOpenAiCompatible": "No s'ha pogut determinar la dimensió del vector per al model '{{modelId}}' amb el proveïdor '{{provider}}'. Assegura't que la 'Dimensió d'incrustació' estigui configurada correctament als paràmetres del proveïdor compatible amb OpenAI.",
48+
"vectorDimensionNotDetermined": "No s'ha pogut determinar la dimensió del vector per al model '{{modelId}}' amb el proveïdor '{{provider}}'. Comprova els perfils del model o la configuració.",
49+
"qdrantUrlMissing": "Falta l'URL de Qdrant per crear l'emmagatzematge de vectors",
50+
"codeIndexingNotConfigured": "No es poden crear serveis: La indexació de codi no està configurada correctament"
4051
}
4152
}

src/i18n/locales/de/embeddings.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,5 +37,16 @@
3737
"invalidBaseUrl": "Ungültige Basis-URL. Bitte überprüfe deine URL-Konfiguration.",
3838
"invalidModel": "Ungültiges Modell. Bitte überprüfe deine Modellkonfiguration.",
3939
"invalidResponse": "Ungültige Antwort vom Embedder-Dienst. Bitte überprüfe deine Konfiguration."
40+
},
41+
"serviceFactory": {
42+
"openAiConfigMissing": "OpenAI-Konfiguration fehlt für die Erstellung des Embedders",
43+
"ollamaConfigMissing": "Ollama-Konfiguration fehlt für die Erstellung des Embedders",
44+
"openAiCompatibleConfigMissing": "OpenAI-kompatible Konfiguration fehlt für die Erstellung des Embedders",
45+
"geminiConfigMissing": "Gemini-Konfiguration fehlt für die Erstellung des Embedders",
46+
"invalidEmbedderType": "Ungültiger Embedder-Typ konfiguriert: {{embedderProvider}}",
47+
"vectorDimensionNotDeterminedOpenAiCompatible": "Konnte die Vektordimension für Modell '{{modelId}}' mit Anbieter '{{provider}}' nicht bestimmen. Stelle sicher, dass die 'Embedding-Dimension' in den OpenAI-kompatiblen Anbietereinstellungen korrekt eingestellt ist.",
48+
"vectorDimensionNotDetermined": "Konnte die Vektordimension für Modell '{{modelId}}' mit Anbieter '{{provider}}' nicht bestimmen. Überprüfe die Modellprofile oder Konfiguration.",
49+
"qdrantUrlMissing": "Qdrant-URL fehlt für die Erstellung des Vektorspeichers",
50+
"codeIndexingNotConfigured": "Kann keine Dienste erstellen: Code-Indizierung ist nicht richtig konfiguriert"
4051
}
4152
}

src/i18n/locales/en/embeddings.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,5 +37,16 @@
3737
"invalidBaseUrl": "Invalid base URL. Please check your URL configuration.",
3838
"invalidModel": "Invalid model. Please check your model configuration.",
3939
"invalidResponse": "Invalid response from embedder service. Please check your configuration."
40+
},
41+
"serviceFactory": {
42+
"openAiConfigMissing": "OpenAI configuration missing for embedder creation",
43+
"ollamaConfigMissing": "Ollama configuration missing for embedder creation",
44+
"openAiCompatibleConfigMissing": "OpenAI Compatible configuration missing for embedder creation",
45+
"geminiConfigMissing": "Gemini configuration missing for embedder creation",
46+
"invalidEmbedderType": "Invalid embedder type configured: {{embedderProvider}}",
47+
"vectorDimensionNotDeterminedOpenAiCompatible": "Could not determine vector dimension for model '{{modelId}}' with provider '{{provider}}'. Please ensure the 'Embedding Dimension' is correctly set in the OpenAI-Compatible provider settings.",
48+
"vectorDimensionNotDetermined": "Could not determine vector dimension for model '{{modelId}}' with provider '{{provider}}'. Check model profiles or configuration.",
49+
"qdrantUrlMissing": "Qdrant URL missing for vector store creation",
50+
"codeIndexingNotConfigured": "Cannot create services: Code indexing is not properly configured"
4051
}
4152
}

src/i18n/locales/es/embeddings.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,5 +37,16 @@
3737
"invalidBaseUrl": "URL base no válida. Comprueba la configuración de tu URL.",
3838
"invalidModel": "Modelo no válido. Comprueba la configuración de tu modelo.",
3939
"invalidResponse": "Respuesta no válida del servicio de embedder. Comprueba tu configuración."
40+
},
41+
"serviceFactory": {
42+
"openAiConfigMissing": "Falta la configuración de OpenAI para crear el incrustador",
43+
"ollamaConfigMissing": "Falta la configuración de Ollama para crear el incrustador",
44+
"openAiCompatibleConfigMissing": "Falta la configuración compatible con OpenAI para crear el incrustador",
45+
"geminiConfigMissing": "Falta la configuración de Gemini para crear el incrustador",
46+
"invalidEmbedderType": "Tipo de incrustador configurado inválido: {{embedderProvider}}",
47+
"vectorDimensionNotDeterminedOpenAiCompatible": "No se pudo determinar la dimensión del vector para el modelo '{{modelId}}' con el proveedor '{{provider}}'. Asegúrate de que la 'Dimensión de incrustación' esté configurada correctamente en los ajustes del proveedor compatible con OpenAI.",
48+
"vectorDimensionNotDetermined": "No se pudo determinar la dimensión del vector para el modelo '{{modelId}}' con el proveedor '{{provider}}'. Verifica los perfiles del modelo o la configuración.",
49+
"qdrantUrlMissing": "Falta la URL de Qdrant para crear el almacén de vectores",
50+
"codeIndexingNotConfigured": "No se pueden crear servicios: La indexación de código no está configurada correctamente"
4051
}
4152
}

src/i18n/locales/fr/embeddings.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,5 +37,16 @@
3737
"invalidBaseUrl": "URL de base invalide. Veuillez vérifier votre configuration d'URL.",
3838
"invalidModel": "Modèle invalide. Veuillez vérifier votre configuration de modèle.",
3939
"invalidResponse": "Réponse invalide du service d'embedder. Veuillez vérifier votre configuration."
40+
},
41+
"serviceFactory": {
42+
"openAiConfigMissing": "Configuration OpenAI manquante pour la création de l'embedder",
43+
"ollamaConfigMissing": "Configuration Ollama manquante pour la création de l'embedder",
44+
"openAiCompatibleConfigMissing": "Configuration compatible OpenAI manquante pour la création de l'embedder",
45+
"geminiConfigMissing": "Configuration Gemini manquante pour la création de l'embedder",
46+
"invalidEmbedderType": "Type d'embedder configuré invalide : {{embedderProvider}}",
47+
"vectorDimensionNotDeterminedOpenAiCompatible": "Impossible de déterminer la dimension du vecteur pour le modèle '{{modelId}}' avec le fournisseur '{{provider}}'. Assure-toi que la 'Dimension d'embedding' est correctement définie dans les paramètres du fournisseur compatible OpenAI.",
48+
"vectorDimensionNotDetermined": "Impossible de déterminer la dimension du vecteur pour le modèle '{{modelId}}' avec le fournisseur '{{provider}}'. Vérifie les profils du modèle ou la configuration.",
49+
"qdrantUrlMissing": "URL Qdrant manquante pour la création du stockage de vecteurs",
50+
"codeIndexingNotConfigured": "Impossible de créer les services : L'indexation du code n'est pas correctement configurée"
4051
}
4152
}

src/i18n/locales/hi/embeddings.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,5 +37,16 @@
3737
"invalidBaseUrl": "अमान्य बेस यूआरएल। कृपया अपनी यूआरएल कॉन्फ़िगरेशन जांचें।",
3838
"invalidModel": "अमान्य मॉडल। कृपया अपनी मॉडल कॉन्फ़िगरेशन जांचें।",
3939
"invalidResponse": "एम्बेडर सेवा से अमान्य प्रतिक्रिया। कृपया अपनी कॉन्फ़िगरेशन जांचें।"
40+
},
41+
"serviceFactory": {
42+
"openAiConfigMissing": "एम्बेडर बनाने के लिए OpenAI कॉन्फ़िगरेशन गायब है",
43+
"ollamaConfigMissing": "एम्बेडर बनाने के लिए Ollama कॉन्फ़िगरेशन गायब है",
44+
"openAiCompatibleConfigMissing": "एम्बेडर बनाने के लिए OpenAI संगत कॉन्फ़िगरेशन गायब है",
45+
"geminiConfigMissing": "एम्बेडर बनाने के लिए Gemini कॉन्फ़िगरेशन गायब है",
46+
"invalidEmbedderType": "अमान्य एम्बेडर प्रकार कॉन्फ़िगर किया गया: {{embedderProvider}}",
47+
"vectorDimensionNotDeterminedOpenAiCompatible": "प्रदाता '{{provider}}' के साथ मॉडल '{{modelId}}' के लिए वेक्टर आयाम निर्धारित नहीं कर सका। कृपया सुनिश्चित करें कि OpenAI-संगत प्रदाता सेटिंग्स में 'एम्बेडिंग आयाम' सही तरीके से सेट है।",
48+
"vectorDimensionNotDetermined": "प्रदाता '{{provider}}' के साथ मॉडल '{{modelId}}' के लिए वेक्टर आयाम निर्धारित नहीं कर सका। मॉडल प्रोफ़ाइल या कॉन्फ़िगरेशन की जांच करें।",
49+
"qdrantUrlMissing": "वेक्टर स्टोर बनाने के लिए Qdrant URL गायब है",
50+
"codeIndexingNotConfigured": "सेवाएं नहीं बना सकते: कोड इंडेक्सिंग ठीक से कॉन्फ़िगर नहीं है"
4051
}
4152
}

src/i18n/locales/id/embeddings.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,5 +37,16 @@
3737
"invalidBaseUrl": "URL dasar tidak valid. Silakan periksa konfigurasi URL Anda.",
3838
"invalidModel": "Model tidak valid. Silakan periksa konfigurasi model Anda.",
3939
"invalidResponse": "Respons tidak valid dari layanan embedder. Silakan periksa konfigurasi Anda."
40+
},
41+
"serviceFactory": {
42+
"openAiConfigMissing": "Konfigurasi OpenAI tidak ada untuk membuat embedder",
43+
"ollamaConfigMissing": "Konfigurasi Ollama tidak ada untuk membuat embedder",
44+
"openAiCompatibleConfigMissing": "Konfigurasi yang kompatibel dengan OpenAI tidak ada untuk membuat embedder",
45+
"geminiConfigMissing": "Konfigurasi Gemini tidak ada untuk membuat embedder",
46+
"invalidEmbedderType": "Tipe embedder yang dikonfigurasi tidak valid: {{embedderProvider}}",
47+
"vectorDimensionNotDeterminedOpenAiCompatible": "Tidak dapat menentukan dimensi vektor untuk model '{{modelId}}' dengan penyedia '{{provider}}'. Pastikan 'Dimensi Embedding' diatur dengan benar di pengaturan penyedia yang kompatibel dengan OpenAI.",
48+
"vectorDimensionNotDetermined": "Tidak dapat menentukan dimensi vektor untuk model '{{modelId}}' dengan penyedia '{{provider}}'. Periksa profil model atau konfigurasi.",
49+
"qdrantUrlMissing": "URL Qdrant tidak ada untuk membuat penyimpanan vektor",
50+
"codeIndexingNotConfigured": "Tidak dapat membuat layanan: Pengindeksan kode tidak dikonfigurasi dengan benar"
4051
}
4152
}

src/i18n/locales/it/embeddings.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,5 +37,16 @@
3737
"invalidBaseUrl": "URL di base non valido. Controlla la configurazione del tuo URL.",
3838
"invalidModel": "Modello non valido. Controlla la configurazione del tuo modello.",
3939
"invalidResponse": "Risposta non valida dal servizio embedder. Controlla la tua configurazione."
40+
},
41+
"serviceFactory": {
42+
"openAiConfigMissing": "Configurazione OpenAI mancante per la creazione dell'embedder",
43+
"ollamaConfigMissing": "Configurazione Ollama mancante per la creazione dell'embedder",
44+
"openAiCompatibleConfigMissing": "Configurazione compatibile con OpenAI mancante per la creazione dell'embedder",
45+
"geminiConfigMissing": "Configurazione Gemini mancante per la creazione dell'embedder",
46+
"invalidEmbedderType": "Tipo di embedder configurato non valido: {{embedderProvider}}",
47+
"vectorDimensionNotDeterminedOpenAiCompatible": "Impossibile determinare la dimensione del vettore per il modello '{{modelId}}' con il provider '{{provider}}'. Assicurati che la 'Dimensione di embedding' sia impostata correttamente nelle impostazioni del provider compatibile con OpenAI.",
48+
"vectorDimensionNotDetermined": "Impossibile determinare la dimensione del vettore per il modello '{{modelId}}' con il provider '{{provider}}'. Controlla i profili del modello o la configurazione.",
49+
"qdrantUrlMissing": "URL Qdrant mancante per la creazione dello storage vettoriale",
50+
"codeIndexingNotConfigured": "Impossibile creare i servizi: L'indicizzazione del codice non è configurata correttamente"
4051
}
4152
}

0 commit comments

Comments
 (0)