From db4499d6dfa7046fd9b578c3bca814de40ac6bdf Mon Sep 17 00:00:00 2001 From: gaoliao1688 Date: Fri, 19 Jun 2026 15:14:15 +0700 Subject: [PATCH] fix(perplexity): use /v1/models endpoint for key validation Perplexity deprecated /models (404); switch to /v1/models for provider test connection and models route. (#1895, fixes #1894) Co-authored-by: Cursor --- src/app/api/providers/[id]/models/route.js | 2 +- src/app/api/providers/[id]/test/testUtils.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/api/providers/[id]/models/route.js b/src/app/api/providers/[id]/models/route.js index 5147899e..17af05e2 100644 --- a/src/app/api/providers/[id]/models/route.js +++ b/src/app/api/providers/[id]/models/route.js @@ -226,7 +226,7 @@ const PROVIDER_MODELS_CONFIG = { groq: createOpenAIModelsConfig("https://api.groq.com/openai/v1/models"), xai: createOpenAIModelsConfig("https://api.x.ai/v1/models"), mistral: createOpenAIModelsConfig("https://api.mistral.ai/v1/models"), - perplexity: createOpenAIModelsConfig("https://api.perplexity.ai/models"), + perplexity: createOpenAIModelsConfig("https://api.perplexity.ai/v1/models"), together: createOpenAIModelsConfig("https://api.together.xyz/v1/models"), fireworks: createOpenAIModelsConfig("https://api.fireworks.ai/inference/v1/models"), cerebras: createOpenAIModelsConfig("https://api.cerebras.ai/v1/models"), diff --git a/src/app/api/providers/[id]/test/testUtils.js b/src/app/api/providers/[id]/test/testUtils.js index 9ec2311d..1d529467 100644 --- a/src/app/api/providers/[id]/test/testUtils.js +++ b/src/app/api/providers/[id]/test/testUtils.js @@ -502,7 +502,7 @@ async function testApiKeyConnection(connection, effectiveProxy = null) { return { valid: res.ok, error: res.ok ? null : "Invalid API key" }; } case "perplexity": { - const res = await fetchWithConnectionProxy("https://api.perplexity.ai/models", { headers: { Authorization: `Bearer ${connection.apiKey}` } }, effectiveProxy); + const res = await fetchWithConnectionProxy("https://api.perplexity.ai/v1/models", { headers: { Authorization: `Bearer ${connection.apiKey}` } }, effectiveProxy); return { valid: res.ok, error: res.ok ? null : "Invalid API key" }; } case "together": {