tavily-ai/tavily-python
The Tavily Python SDK allows for easy interaction with the Tavily API, offering the full range of our search, extract, crawl, map, and research functionalities directly from your Python programs. Easily integrate smart search, content extraction, and research capabilities into your applications, harnessing Tavily's powerful features.
什么是 Tavily‑Python?
Tavily‑Python 是 Tavily API 的官方 Python SDK。该 API 提供一系列与网络搜索相关的服务——普通搜索、问答、内容提取、站点爬取、站点映射以及自动生成研究报告——均可从你的 Python 代码中调用。
主要功能
| 功能 | 作用 | 典型用途 |
|---|---|---|
| search | 返回查询的网页结果列表。 | 输入给 LLM 或显示给用户。 |
| qna_search | 为问题提供简洁的答案(适用于 RAG)。 | 用于提示工程或聊天机器人后端。 |
| get_search_context | 从顶部结果构建单个上下文字符串。 | 直接注入到检索增强生成(RAG)管道中。 |
| extract | 从最多 20 个 URL 中提取原始文本(可选图像)。 | 在嵌入或摘要前预处理文档。 |
| crawl (仅限邀请) | 从起始 URL 开始遍历站点,尊重深度/限制和自定义指令。 | 从特定域名构建聚焦数据集。 |
| map (仅限邀请) | 返回站点的层级结构。 | 可视化站点架构或决定爬取哪些部分。 |
| research | 生成带引用的多源研究报告;支持流式传输和使用追踪。 | 为代理或分析师自动生成报告。 |
| feedback | 将每条结果的评分和评论反馈给 Tavily。 | 改进自己代理的排名或收集用户反馈。 |
快速开始
pip install tavily-python
from tavily import TavilyClient
# 使用 API 密钥(推荐以获得完整功能)
client = TavilyClient(api_key="tvly‑YOUR_KEY")
# 简单的网络搜索
results = client.search("利昂内尔·梅西是谁?")
print(results)
你也可以使用 无密钥模式(无需 API 密钥),但仅支持 search 和 extract,且受速率限制:
client = TavilyClient() # 无密钥
try:
print(client.search("什么是量子计算?"))
except TavilyKeylessLimitError as e:
print(e.retry_after_seconds, "秒后可再次使用配额")
高级用法
- 自定义 HTTP 会话 – 注入预先配置的
requests.Session或httpx.AsyncClient(适用于企业网关后方)。 - 元数据头 – 可选的
project_id、session_id、human_id、client_name会作为 HTTP 头发送以用于追踪。 - 流式研究 – 设置
stream=True以接收生成过程中的数据块。 - 使用量/积分 – 调用
get_research(..., include_usage=True)可查看任务消耗的积分数(免费版:每月 1,000 积分)。
哪些人会使用?
- LLM 开发者:需要快速、可靠的网络搜索源来构建检索增强生成(RAG)管道。
- 数据工程师:希望无需编写自己的爬虫即可抓取和提取内容。
- 产品团队:希望在 SaaS 应用中添加“向网络提问”功能。
- 研究助理:自动化生成带引用的报告。
许可与支持
- 采用 MIT 许可证 – 可自由使用、修改和分发。
- 如需帮助,请发送邮件至 support@tavily.com 或加入 Tavily 开发者社区。
所有信息均直接来自仓库的 README。
相关
- 项目
- Dispatch
- 项目
- 项目