Tavily
Tavily est une API de recherche conçue pour les LLM, permettant aux applications IA d'accéder à des données web en temps réel.
Installation
Python :
pip install tavily-python
JavaScript :
npm install @tavily/core
Consultez references/sdk.md pour la référence complète du SDK.
Initialisation du client
from tavily import TavilyClient
# Utilise la variable d'env TAVILY_API_KEY (recommandé)
client = TavilyClient()
# Avec suivi de projet (pour l'organisation de l'utilisation)
client = TavilyClient(project_id="your-project-id")
# Client asynchrone pour les requêtes parallèles
from tavily import AsyncTavilyClient
async_client = AsyncTavilyClient()
Choisir la bonne méthode
Pour les agents/workflows personnalisés :
| Besoin | Méthode |
|---|---|
| Résultats de recherche web | search() |
| Contenu d'URL spécifiques | extract() |
| Contenu de tout un site | crawl() |
| Découverte d'URL depuis un site | map() |
Pour la recherche prête à l'emploi :
| Besoin | Méthode |
|---|---|
| Recherche complète avec synthèse IA | research() |
Référence rapide
search() - Recherche web
response = client.search(
query="quantum computing breakthroughs", # Rester sous 400 caractères
max_results=10,
search_depth="advanced"
)
print(response)
Paramètres clés : query, max_results, search_depth (ultra-fast/fast/basic/advanced), include_domains, exclude_domains, time_range
Consultez references/search.md pour la référence complète de recherche.
extract() - Extraction de contenu d'URL
# Extraction simple en une étape
response = client.extract(
urls=["https://docs.example.com"],
extract_depth="advanced"
)
print(response)
Paramètres clés : urls (max 20), extract_depth, query, chunks_per_source (1-5)
Consultez references/extract.md pour la référence complète d'extraction.
crawl() - Extraction au niveau du site
response = client.crawl(
url="https://docs.example.com",
instructions="Find API documentation pages", # Focus sémantique
extract_depth="advanced"
)
print(response)
Paramètres clés : url, max_depth, max_breadth, limit, instructions, chunks_per_source, select_paths, exclude_paths
Consultez references/crawl.md pour la référence complète de crawl.
map() - Découverte d'URL
response = client.map(
url="https://docs.example.com"
)
print(response)
research() - Recherche avec IA
import time
# Pour une recherche multi-thèmes complète
result = client.research(
input="Analyze competitive landscape for X in SMB market",
model="pro" # ou "mini" pour les requêtes ciblées, "auto" en cas de doute
)
request_id = result["request_id"]
# Interroger jusqu'à terminer
response = client.get_research(request_id)
while response["status"] not in ["completed", "failed"]:
time.sleep(10)
response = client.get_research(request_id)
print(response["content"]) # Le rapport de recherche
Paramètres clés : input, model ("mini"/"pro"/"auto"), stream, output_schema, citation_format
Consultez references/research.md pour la référence complète de recherche.
Guides détaillés
Pour les paramètres complets, les champs de réponse, les patterns et les exemples :
- references/sdk.md - Référence SDK Python & JavaScript, patterns asynchrones, Hybrid RAG
- references/search.md - Optimisation de requête, sélection de profondeur de recherche, filtrage par domaine, patterns asynchrones, post-filtrage
- references/extract.md - Extraction en une ou deux étapes, query/chunks pour le ciblage, mode avancé
- references/crawl.md - Crawl vs Map, instructions pour le focus sémantique, cas d'usage, pattern Map-then-Extract
- references/research.md - Bonnes pratiques de prompting, sélection de modèle, streaming, schémas de sortie structurés
- references/integrations.md - LangChain, LlamaIndex, CrewAI, Vercel AI SDK, et intégrations de frameworks