SuperAPI AI 工具集

perplexity-api

智能体与模型

查看项目

更新于 10-16 08:26

技能介绍

用途

perplexity-api 技能用于接入 Perplexity 的 Sonar API,实现实时网络搜索、带引用的答案以及搜索增强型大语言模型响应,从而增强 AI 驱动的应用。

何时使用

适用于需要当前网络数据的任务,例如用可验证来源回答用户查询、为 LLM 输出补充实时信息,或进行需要引用的研究。对于静态数据或不需要实时访问的场景应避免使用,以防止不必要的 API 调用。

主要能力

  • 执行实时网络搜索,支持查询参数过滤(例如按日期或域名)。
  • 以 JSON 对象形式返回答案,包含文本响应和引用 URL。
  • 与 LLM 集成,生成搜索增强型响应,将 API 结果与模型推理结合。
  • 支持多种查询类型:标准搜索、聚焦查询和引用提取。
  • 具备速率限制意识,每个 API 密钥每分钟最多 100 次请求。

使用方式

调用前始终通过环境变量设置 API 密钥。使用 HTTP GET 或 POST 请求进行查询,解析 JSON 响应,必要时处理异步结果。对于 AI 智能体,可作为子程序集成:先检查本地知识,再调用此 API 获取网络更新。模式:认证 -> 发送查询 -> 处理响应 -> 记录或缓存结果。

常用命令/API

  • 端点:https://api.perplexity.ai/search(简单查询用 GET,复杂查询用 POST 并携带 JSON 请求体)。
  • 认证:必需;通过 $PERPLEXITY_API_KEY 设置(例如 export PERPLEXITY_API_KEY=your_api_key)。
  • CLI 示例:
curl -H "Authorization: Bearer $PERPLEXITY_API_KEY" -G https://api.perplexity.ai/search --data-urlencode "q=latest AI news"
  • API 参数:

    • q:必需字符串,用于查询(例如 "climate change effects")。
    • limit:整数,结果数量(例如 5)。
    • format:字符串,响应格式(例如 "json" 或 "text")。
  • Python 代码片段:

import requests; os.environ['PERPLEXITY_API_KEY'] = 'your_key'

response = requests.get('https://api.perplexity.ai/search', params={'q': 'query'}, headers={'Authorization': f'Bearer {os.environ["PERPLEXITY_API_KEY"]}'}).json()

print(response['answers'][0]['text'])  # Access first answer
  • 配置格式:存储在 .env 文件中为 PERPLEXITY_API_KEY=your_key,然后使用 python-dotenv 加载。

集成说明

通过将 API 调用包装在 try-except 块中以提高可靠性。对于 OpenClaw 智能体,在需要网络数据的工作流中使用此技能:例如将 API 结果前置到 LLM 提示中。如果使用异步框架,确保兼容性;Perplexity API 支持最长 30 秒的超时。先用模拟响应进行测试。模式:导入必要库(例如 requests),设置环境变量,并使用结构化查询调用端点。避免在代码中直接暴露 API 密钥;仅使用安全保险库或环境变量。

错误处理

检查 HTTP 状态码:401 表示认证失败(验证 $PERPLEXITY_API_KEY 后重试);429 表示速率限制(实现指数退避,例如等待 5-10 秒);404 表示无效端点(记录并回退到替代技能)。解析 JSON 错误以获取详细信息,如 "error": "Invalid query"。在代码中使用:

try:
    response = requests.get(...)
    response.raise_for_status()  # Raises HTTPError for 4xx/5xx
except requests.exceptions.HTTPError as e:
    print(f"Error: {e.response.status_code} - {e.response.text}")  # Log and handle

始终包含带限制的重试逻辑(例如最多 3 次重试),并在失败持续时告知用户。

具体使用示例

示例:实时新闻搜索

获取最新 AI 动态:设置 $PERPLEXITY_API_KEY,然后运行 curl -H "Authorization: Bearer $PERPLEXITY_API_KEY" -G https://api.perplexity.ai/search --data-urlencode "q=latest OpenAI updates&limit=3"。在代码中:导入 requests,查询端点,并提取引用如 response['answers'][0]['source_url'] 展示给用户。这对于响应新闻查询的智能体很有用。

示例:增强 LLM 响应

增强 LLM 答案:首先获取 LLM 输出(例如 "Summarize climate change"),然后将其作为查询调用 API:requests.get('https://api.perplexity.ai/search', params={'q': 'climate change summary'})。使用 API 的响应添加引用,例如将 "Source: [URL from response]" 追加到 LLM 文本。在工作流中:如果智能体的响应需要验证,调用此技能并在最终输出前合并结果。

图关系

  • 相关集群:ai-apis(例如与其他 AI API 技能如 openai-api 共享依赖)。
  • 标签:ai-apis(表示 AI 相关端点的分组)、api(通用 API 集成)。
  • 连接:可与 llm-tools 链式组合以实现搜索与生成结合;由于实时依赖,与离线数据技能冲突。