الانتقال إلى المحتوى الرئيسي

واجهة Perplexity Search API

يدعم OpenClaw واجهة Perplexity Search API بوصفها موفّرًا لـ web_search. وهي تعيد نتائج منظّمة تحتوي على الحقول title وurl وsnippet. ولأجل التوافق، يدعم OpenClaw أيضًا إعدادات Perplexity Sonar/OpenRouter القديمة. إذا كنت تستخدم OPENROUTER_API_KEY، أو مفتاحًا بصيغة sk-or-... في plugins.entries.perplexity.config.webSearch.apiKey، أو تضبط plugins.entries.perplexity.config.webSearch.baseUrl / model، فسيتحول الموفّر إلى مسار chat-completions ويعيد إجابات مركبة بالذكاء الاصطناعي مع استشهادات بدلًا من نتائج Search API المنظّمة.

الحصول على مفتاح Perplexity API

  1. أنشئ حساب Perplexity على perplexity.ai/settings/api
  2. أنشئ مفتاح API من لوحة التحكم
  3. خزّن المفتاح في التكوين أو اضبط PERPLEXITY_API_KEY في بيئة Gateway.

التوافق مع OpenRouter

إذا كنت تستخدم OpenRouter بالفعل مع Perplexity Sonar، فأبقِ provider: "perplexity" واضبط OPENROUTER_API_KEY في بيئة Gateway، أو خزّن مفتاحًا بصيغة sk-or-... في plugins.entries.perplexity.config.webSearch.apiKey. عناصر التحكم الاختيارية للتوافق:
  • plugins.entries.perplexity.config.webSearch.baseUrl
  • plugins.entries.perplexity.config.webSearch.model

أمثلة التكوين

واجهة Perplexity Search API الأصلية

{
  plugins: {
    entries: {
      perplexity: {
        config: {
          webSearch: {
            apiKey: "pplx-...",
          },
        },
      },
    },
  },
  tools: {
    web: {
      search: {
        provider: "perplexity",
      },
    },
  },
}

التوافق مع 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",
      },
    },
  },
}

أين تضبط المفتاح

عبر التكوين: شغّل openclaw configure --section web. فهو يخزّن المفتاح في ~/.openclaw/openclaw.json ضمن plugins.entries.perplexity.config.webSearch.apiKey. ويقبل هذا الحقل أيضًا كائنات SecretRef. عبر البيئة: اضبط PERPLEXITY_API_KEY أو OPENROUTER_API_KEY في بيئة عملية Gateway. وبالنسبة إلى تثبيت gateway، ضعه في ~/.openclaw/.env (أو في بيئة الخدمة الخاصة بك). راجع متغيرات البيئة. إذا كان provider: "perplexity" مهيأً وكان SecretRef الخاص بمفتاح Perplexity غير محلول من دون بديل env، فسيفشل بدء التشغيل/إعادة التحميل سريعًا.

معلمات الأداة

تنطبق هذه المعلمات على مسار واجهة Perplexity Search API الأصلية.
المعلمةالوصف
queryاستعلام البحث (مطلوب)
countعدد النتائج المطلوب إرجاعها (1-10، الافتراضي: 5)
countryرمز الدولة ISO مكوّن من حرفين (مثل “US” أو “DE”)
languageرمز اللغة ISO 639-1 (مثل “en” أو “de” أو “fr”)
freshnessعامل تصفية زمني: day ‏(24 ساعة) أو week أو month أو year
date_afterالنتائج المنشورة بعد هذا التاريخ فقط (YYYY-MM-DD)
date_beforeالنتائج المنشورة قبل هذا التاريخ فقط (YYYY-MM-DD)
domain_filterمصفوفة قائمة سماح/قائمة حظر للنطاقات (الحد الأقصى 20)
max_tokensإجمالي ميزانية المحتوى (الافتراضي: 25000، الحد الأقصى: 1000000)
max_tokens_per_pageحد الرموز لكل صفحة (الافتراضي: 2048)
بالنسبة إلى مسار التوافق القديم Sonar/OpenRouter:
  • تُقبل query وcount وfreshness
  • تكون count للتوافق فقط هناك؛ إذ يظل الرد عبارة عن إجابة مركبة واحدة مع استشهادات بدلًا من قائمة من N نتائج
  • تعيد عوامل التصفية الخاصة بـ Search API فقط، مثل country وlanguage وdate_after، وdate_before وdomain_filter وmax_tokens وmax_tokens_per_page أخطاء صريحة
أمثلة:
// Country and language-specific search
await web_search({
  query: "renewable energy",
  country: "DE",
  language: "de",
});

// Recent results (past week)
await web_search({
  query: "AI news",
  freshness: "week",
});

// Date range search
await web_search({
  query: "AI developments",
  date_after: "2024-01-01",
  date_before: "2024-06-30",
});

// Domain filtering (allowlist)
await web_search({
  query: "climate research",
  domain_filter: ["nature.com", "science.org", ".edu"],
});

// Domain filtering (denylist - prefix with -)
await web_search({
  query: "product reviews",
  domain_filter: ["-reddit.com", "-pinterest.com"],
});

// More content extraction
await web_search({
  query: "detailed AI research",
  max_tokens: 50000,
  max_tokens_per_page: 4096,
});

قواعد تصفية النطاقات

  • الحد الأقصى 20 نطاقًا لكل عامل تصفية
  • لا يمكن خلط قائمة السماح وقائمة الحظر في الطلب نفسه
  • استخدم السابقة - لعناصر قائمة الحظر (مثل ["-reddit.com"])

ملاحظات

  • تعيد واجهة Perplexity Search API نتائج بحث ويب منظّمة (title وurl وsnippet)
  • يؤدي OpenRouter أو الضبط الصريح لـ plugins.entries.perplexity.config.webSearch.baseUrl / model إلى إعادة Perplexity إلى Sonar chat completions من أجل التوافق
  • يعيد توافق Sonar/OpenRouter إجابة مركبة واحدة مع استشهادات، وليس صفوف نتائج منظّمة
  • تُخزَّن النتائج مؤقتًا لمدة 15 دقيقة افتراضيًا (قابلة للتكوين عبر cacheTtlMinutes)

ذو صلة