6.8 KiB
| read_when | summary | title | x-i18n | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
API Perplexity Search et compatibilité Sonar/OpenRouter pour `web_search` | Recherche Perplexity (chemin hérité) |
|
API Perplexity Search
OpenClaw prend en charge l’API Perplexity Search comme fournisseur web_search.
Elle renvoie des résultats structurés avec les champs title, url et snippet.
Pour la compatibilité, OpenClaw prend également en charge les anciennes configurations Perplexity Sonar/OpenRouter.
Si vous utilisez OPENROUTER_API_KEY, une clé sk-or-... dans plugins.entries.perplexity.config.webSearch.apiKey, ou définissez plugins.entries.perplexity.config.webSearch.baseUrl / model, le fournisseur bascule vers le chemin chat-completions et renvoie des réponses synthétisées par IA avec citations au lieu des résultats structurés de l’API Search.
Obtenir une clé API Perplexity
- Créez un compte Perplexity sur perplexity.ai/settings/api
- Générez une clé API dans le tableau de bord
- Stockez la clé dans la configuration ou définissez
PERPLEXITY_API_KEYdans l’environnement du Gateway.
Compatibilité OpenRouter
Si vous utilisiez déjà OpenRouter pour Perplexity Sonar, conservez provider: "perplexity" et définissez OPENROUTER_API_KEY dans l’environnement du Gateway, ou stockez une clé sk-or-... dans plugins.entries.perplexity.config.webSearch.apiKey.
Contrôles de compatibilité facultatifs :
plugins.entries.perplexity.config.webSearch.baseUrlplugins.entries.perplexity.config.webSearch.model
Exemples de configuration
API Perplexity Search native
{
plugins: {
entries: {
perplexity: {
config: {
webSearch: {
apiKey: "pplx-...",
},
},
},
},
},
tools: {
web: {
search: {
provider: "perplexity",
},
},
},
}
Compatibilité OpenRouter / Sonar
{
plugins: {
entries: {
perplexity: {
config: {
webSearch: {
apiKey: "<openrouter-api-key>",
baseUrl: "https://openrouter.ai/api/v1",
model: "perplexity/sonar-pro",
},
},
},
},
},
tools: {
web: {
search: {
provider: "perplexity",
},
},
},
}
Où définir la clé
Via la configuration : exécutez openclaw configure --section web. Cela stocke la clé dans
~/.openclaw/openclaw.json sous plugins.entries.perplexity.config.webSearch.apiKey.
Ce champ accepte aussi des objets SecretRef.
Via l’environnement : définissez PERPLEXITY_API_KEY ou OPENROUTER_API_KEY
dans l’environnement du processus Gateway. Pour une installation gateway, placez-la dans
~/.openclaw/.env (ou dans l’environnement de votre service). Voir Variables d’environnement.
Si provider: "perplexity" est configuré et que la SecretRef de clé Perplexity n’est pas résolue sans repli env, le démarrage/rechargement échoue immédiatement.
Paramètres de l’outil
Ces paramètres s’appliquent au chemin natif de l’API Perplexity Search.
| Paramètre | Description |
|---|---|
query |
Requête de recherche (requis) |
count |
Nombre de résultats à renvoyer (1-10, par défaut : 5) |
country |
Code pays ISO à 2 lettres (par ex. "US", "DE") |
language |
Code langue ISO 639-1 (par ex. "en", "de", "fr") |
freshness |
Filtre temporel : day (24 h), week, month, ou year |
date_after |
Résultats publiés uniquement après cette date (YYYY-MM-DD) |
date_before |
Résultats publiés uniquement avant cette date (YYYY-MM-DD) |
domain_filter |
Tableau de liste d’autorisation/de refus de domaines (max 20) |
max_tokens |
Budget total de contenu (par défaut : 25000, max : 1000000) |
max_tokens_per_page |
Limite de jetons par page (par défaut : 2048) |
Pour le chemin hérité de compatibilité Sonar/OpenRouter :
query,count, etfreshnesssont acceptéscountn’est là que pour compatibilité ; la réponse reste une seule réponse synthétisée avec citations plutôt qu’une liste de N résultats- Les filtres propres à l’API Search tels que
country,language,date_after,date_before,domain_filter,max_tokens, etmax_tokens_per_pagerenvoient des erreurs explicites
Exemples :
// Recherche spécifique au pays et à la langue
await web_search({
query: "renewable energy",
country: "DE",
language: "de",
});
// Résultats récents (semaine passée)
await web_search({
query: "AI news",
freshness: "week",
});
// Recherche sur une plage de dates
await web_search({
query: "AI developments",
date_after: "2024-01-01",
date_before: "2024-06-30",
});
// Filtrage de domaine (liste d’autorisation)
await web_search({
query: "climate research",
domain_filter: ["nature.com", "science.org", ".edu"],
});
// Filtrage de domaine (liste de refus - préfixe avec -)
await web_search({
query: "product reviews",
domain_filter: ["-reddit.com", "-pinterest.com"],
});
// Extraction de contenu plus importante
await web_search({
query: "detailed AI research",
max_tokens: 50000,
max_tokens_per_page: 4096,
});
Règles de filtre de domaine
- Maximum 20 domaines par filtre
- Impossible de mélanger liste d’autorisation et liste de refus dans une même requête
- Utilisez le préfixe
-pour les entrées de liste de refus (par ex.["-reddit.com"])
Remarques
- L’API Perplexity Search renvoie des résultats de recherche web structurés (
title,url,snippet) - OpenRouter ou un
plugins.entries.perplexity.config.webSearch.baseUrl/modelexplicite rebascule Perplexity vers les chat completions Sonar pour compatibilité - La compatibilité Sonar/OpenRouter renvoie une réponse synthétisée unique avec citations, et non des lignes de résultats structurées
- Les résultats sont mis en cache pendant 15 minutes par défaut (configurable via
cacheTtlMinutes)
Voir Outils web pour la configuration complète de web_search. Voir Documentation API Perplexity Search pour plus de détails.