关于 perplexity-api
perplexity-api 面向需要最新网络信息的应用和 Agent,可调用 Perplexity 的 Sonar API 获取搜索结果或带引用的回答,并将结果用于 LLM 工作流。
主要功能
- 01实时网络搜索
- 02按日期和域名筛选查询
- 03获取带引用 URL 的回答
- 04支持标准及聚焦查询
- 05为 LLM 工作流提供搜索结果
适用场景
- 01带来源研究最新新闻
- 02为 LLM 回答补充实时信息
- 03用带引用的网络结果核验回答
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill perplexity-api安装后在 Claude Code 中输入/perplexity-api确认已加载。
详细介绍
perplexity-api
用途
此技能可访问 Perplexity 的 Sonar API,支持实时网页搜索、提供带引文的答案,以及增强 AI 驱动应用的搜索增强型大模型响应。
适用场景
在需要最新网页数据的任务中使用此技能,例如:为用户查询提供可核验的来源、使用实时信息增强大模型输出,或执行需要引文的研究。对于静态数据或无需实时访问的情况,请避免使用,以免产生不必要的 API 调用。
主要功能
- 使用查询参数执行实时网页搜索,以进行筛选(例如按日期或域名筛选)。
- 获取 JSON 对象格式的答案,其中包含文本响应和引文 URL。
- 与大模型集成以生成搜索增强型响应,结合 API 结果与模型推断。
- 支持多种查询类型:标准搜索、聚焦查询和引文提取。
- 支持速率限制管理,每个 API 密钥每分钟最多可发送 100 个请求。
使用模式
调用前务必通过环境变量设置 API 密钥。使用 HTTP GET 或 POST 请求进行查询,解析 JSON 响应,并在需要时处理异步结果。对于 AI Agent,可将其集成为子例程:先检查本地知识,再调用此 API 获取网页更新。模式:身份验证 -> 发送查询 -> 处理响应 -> 记录或缓存结果。
常用命令/API
端点:https://api.perplexity.ai/search(简单查询使用 GET,复杂查询使用带 JSON 正文的 POST)。
身份验证:必需;通过 $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 Agent,请在需要网页数据的工作流中使用此技能,例如将 API 结果添加到大模型提示词前。使用异步框架时,请确保兼容性;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'] 等引文,以展示给用户。这适用于 Agent 回答新闻相关查询。 -
示例:增强大模型回复
要增强大模型回答:首先获取大模型输出(例如,“总结气候变化”),然后将其作为查询调用 API:requests.get('https://api.perplexity.ai/search', params={'q': 'climate change summary'})。使用 API 的响应添加引文,例如在大模型文本后附上“来源:[响应中的 URL]”。在工作流中:如果 Agent 的回复需要验证,请调用此技能,并在最终输出前合并结果。
图关系
- 相关集群:ai-apis(例如,与其他 AI API 技能(如 openai-api)共享依赖项)。
- 标签:ai-apis(表示归入 AI 相关端点分组)、api(通用 API 集成)。
- 关联:可与 llm-tools 链式组合,实现搜索和生成;由于依赖实时数据,因此与离线数据技能冲突。