mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-10 02:02:45 +00:00
fix(web_search): Fix invalid model name sent to Perplexity (#12795)
* fix(web_search): Fix invalid model name sent to Perplexity * chore: Only apply fix to direct Perplexity calls * fix(web_search): normalize direct Perplexity model IDs * fix: add changelog note for perplexity model normalization (#12795) (thanks @cdorsey) * fix: align tests and fetch type for gate stability (#12795) (thanks @cdorsey) * chore: keep #12795 scoped to web_search changes --------- Co-authored-by: Sebastian <19554889+sebslight@users.noreply.github.com>
This commit is contained in:
@@ -4,6 +4,8 @@ import { __testing } from "./web-search.js";
|
||||
const {
|
||||
inferPerplexityBaseUrlFromApiKey,
|
||||
resolvePerplexityBaseUrl,
|
||||
isDirectPerplexityBaseUrl,
|
||||
resolvePerplexityRequestModel,
|
||||
normalizeFreshness,
|
||||
resolveGrokApiKey,
|
||||
resolveGrokModel,
|
||||
@@ -58,6 +60,32 @@ describe("web_search perplexity baseUrl defaults", () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe("web_search perplexity model normalization", () => {
|
||||
it("detects direct Perplexity host", () => {
|
||||
expect(isDirectPerplexityBaseUrl("https://api.perplexity.ai")).toBe(true);
|
||||
expect(isDirectPerplexityBaseUrl("https://api.perplexity.ai/")).toBe(true);
|
||||
expect(isDirectPerplexityBaseUrl("https://openrouter.ai/api/v1")).toBe(false);
|
||||
});
|
||||
|
||||
it("strips provider prefix for direct Perplexity", () => {
|
||||
expect(resolvePerplexityRequestModel("https://api.perplexity.ai", "perplexity/sonar-pro")).toBe(
|
||||
"sonar-pro",
|
||||
);
|
||||
});
|
||||
|
||||
it("keeps prefixed model for OpenRouter", () => {
|
||||
expect(
|
||||
resolvePerplexityRequestModel("https://openrouter.ai/api/v1", "perplexity/sonar-pro"),
|
||||
).toBe("perplexity/sonar-pro");
|
||||
});
|
||||
|
||||
it("keeps model unchanged when URL is invalid", () => {
|
||||
expect(resolvePerplexityRequestModel("not-a-url", "perplexity/sonar-pro")).toBe(
|
||||
"perplexity/sonar-pro",
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe("web_search freshness normalization", () => {
|
||||
it("accepts Brave shortcut values", () => {
|
||||
expect(normalizeFreshness("pd")).toBe("pd");
|
||||
|
||||
Reference in New Issue
Block a user