diff --git a/src/app/api/providers/[id]/test/testUtils.js b/src/app/api/providers/[id]/test/testUtils.js index 1d52946723..cac169c978 100644 --- a/src/app/api/providers/[id]/test/testUtils.js +++ b/src/app/api/providers/[id]/test/testUtils.js @@ -354,11 +354,14 @@ async function testApiKeyConnection(connection, effectiveProxy = null) { if (!modelsBase) return { valid: false, error: "Missing base URL" }; try { modelsBase = modelsBase.replace(/\/$/, ""); - if (modelsBase.endsWith("/messages")) modelsBase = modelsBase.slice(0, -9); - const res = await fetchWithConnectionProxy(`${modelsBase}/models`, { - headers: { "x-api-key": connection.apiKey, "anthropic-version": "2023-06-01", "Authorization": `Bearer ${connection.apiKey}` }, + const testModel = connection.defaultModel || "claude-3-haiku-20240307"; + const res = await fetchWithConnectionProxy(`${modelsBase}/v1/messages`, { + method: "POST", + headers: { "x-api-key": connection.apiKey, "anthropic-version": "2023-06-01", "content-type": "application/json" }, + body: JSON.stringify({ model: testModel, max_tokens: 1, messages: [{ role: "user", content: "test" }] }), }, effectiveProxy); - return { valid: res.ok, error: res.ok ? null : "Invalid API key or base URL" }; + const valid = res.status !== 401 && res.status !== 403; + return { valid, error: valid ? null : "Invalid API key or base URL" }; } catch (err) { return { valid: false, error: err.message }; }