Tools

การค้นหา Perplexity

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 และส่งคืนคำตอบที่ AI สังเคราะห์พร้อมการอ้างอิงแทนผลลัพธ์ 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 ไม่สามารถแก้ค่าได้โดยไม่มีตัวสำรองจากสภาพแวดล้อม การเริ่มต้น/โหลดซ้ำจะล้มเหลวทันที

พารามิเตอร์ของเครื่องมือ

พารามิเตอร์เหล่านี้ใช้กับเส้นทาง Perplexity Search API แบบเนทีฟ

querystringrequired

คำค้นหา

countnumber

จำนวนผลลัพธ์ที่จะส่งคืน (1-10)

countrystring

รหัสประเทศ ISO 2 ตัวอักษร (เช่น US, DE)

languagestring

รหัสภาษา ISO 639-1 (เช่น en, de, fr)

freshness'day' | 'week' | 'month' | 'year'

ตัวกรองเวลา - day คือ 24 ชั่วโมง

date_afterstring

เฉพาะผลลัพธ์ที่เผยแพร่หลังวันที่นี้ (YYYY-MM-DD)

date_beforestring

เฉพาะผลลัพธ์ที่เผยแพร่ก่อนวันที่นี้ (YYYY-MM-DD)

domain_filterstring[]

อาร์เรย์รายการโดเมนที่อนุญาต/ปฏิเสธ (สูงสุด 20)

max_tokensnumber

งบประมาณเนื้อหารวม (สูงสุด 1000000)

max_tokens_per_pagenumber

ขีดจำกัดโทเค็นต่อหน้า

สำหรับเส้นทางความเข้ากันได้กับ 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)

ที่เกี่ยวข้อง