feat(web_search): add optional model parameter for Perplexity provider
Allows runtime model override without config changes or gateway restart. - Add 'model' parameter to web_search tool schema - Override configured default when parameter is provided - Return error if used with non-Perplexity provider (Brave) Closes #2882
This commit is contained in:
parent
3fe4b2595a
commit
6fe931ace0
@ -63,6 +63,12 @@ const WebSearchSchema = Type.Object({
|
||||
"Filter results by discovery time (Brave only). Values: 'pd' (past 24h), 'pw' (past week), 'pm' (past month), 'py' (past year), or date range 'YYYY-MM-DDtoYYYY-MM-DD'.",
|
||||
}),
|
||||
),
|
||||
model: Type.Optional(
|
||||
Type.String({
|
||||
description:
|
||||
"Perplexity model to use (Perplexity provider only). Overrides the configured default. Examples: 'sonar', 'sonar-pro', 'sonar-reasoning'.",
|
||||
}),
|
||||
),
|
||||
});
|
||||
|
||||
type WebSearchConfig = NonNullable<MoltbotConfig["tools"]>["web"] extends infer Web
|
||||
@ -450,6 +456,14 @@ export function createWebSearchTool(options?: {
|
||||
docs: "https://docs.molt.bot/tools/web",
|
||||
});
|
||||
}
|
||||
const modelOverride = readStringParam(params, "model");
|
||||
if (modelOverride && provider !== "perplexity") {
|
||||
return jsonResult({
|
||||
error: "unsupported_model_override",
|
||||
message: "model parameter is only supported by the Perplexity web_search provider.",
|
||||
docs: "https://docs.molt.bot/tools/web",
|
||||
});
|
||||
}
|
||||
const freshness = rawFreshness ? normalizeFreshness(rawFreshness) : undefined;
|
||||
if (rawFreshness && !freshness) {
|
||||
return jsonResult({
|
||||
@ -475,7 +489,7 @@ export function createWebSearchTool(options?: {
|
||||
perplexityAuth?.source,
|
||||
perplexityAuth?.apiKey,
|
||||
),
|
||||
perplexityModel: resolvePerplexityModel(perplexityConfig),
|
||||
perplexityModel: modelOverride || resolvePerplexityModel(perplexityConfig),
|
||||
});
|
||||
return jsonResult(result);
|
||||
},
|
||||
|
||||
Loading…
Reference in New Issue
Block a user