parallel-web

Par mkurman · zorai

Effectuez des recherches web, extrayez le contenu d'URLs et lancez des recherches approfondies via la Parallel Chat API et l'Extract API. À utiliser pour TOUTES les recherches web, requêtes de recherche et collectes d'informations générales. Fournit des synthèses avec citations.

npx skills add https://github.com/mkurman/zorai --skill parallel-web

Guide de sélection des modèles

L'API Chat prend en charge deux modèles de recherche. Utilisez base pour la plupart des recherches et core pour la recherche approfondie.

Modèle Latence Points forts À utiliser quand
base 15s-100s Recherche standard, requêtes factuelles Recherches web, consultations rapides
core 60s-5min Recherche complexe, synthèse multi-sources Recherche approfondie, rapports complets

Recommandations :

  • La commande search utilise par défaut base — rapide, appropriée pour la plupart des requêtes
  • La commande research utilise par défaut core — approfondie, appropriée pour les rapports complets
  • Outrepassez avec --model quand vous avez besoin de compromis différents entre profondeur/vitesse

Utilisation de l'API Python

Recherche

from parallel_web import ParallelSearch

searcher = ParallelSearch()
result = searcher.search(
    objective="Find latest information about transformer architectures in NLP",
    model="base",
)

if result["success"]:
    print(result["response"])  # Synthesized summary
    for src in result["sources"]:
        print(f"  {src['title']}: {src['url']}")

Recherche approfondie

from parallel_web import ParallelDeepResearch

researcher = ParallelDeepResearch()
result = researcher.research(
    query="Comprehensive analysis of AI regulation in the EU and US",
    model="core",
)

if result["success"]:
    print(result["response"])  # Full research report
    print(f"Citations: {result['citation_count']}")

Extraction (vérification uniquement)

from parallel_web import ParallelExtract

extractor = ParallelExtract()
result = extractor.extract(
    urls=["https://docs.example.com/api-reference"],
    objective="API authentication methods and rate limits",
)

if result["success"]:
    for r in result["results"]:
        print(r["excerpts"])

OBLIGATOIRE : Enregistrer tous les résultats dans le dossier sources

Chaque résultat de recherche web et de recherche approfondie DOIT être enregistré dans le dossier sources/ du projet.

Cela garantit que toute la recherche est préservée pour la reproductibilité, l'auditabilité et la récupération de la fenêtre contextuelle.

Règles d'enregistrement

Opération Cible du flag -o Motif du nom de fichier
Recherche web sources/search_<topic>.md search_YYYYMMDD_HHMMSS_<brief_topic>.md
Recherche approfondie sources/research_<topic>.md research_YYYYMMDD_HHMMSS_<brief_topic>.md
Extraction d'URL sources/extract_<source>.md extract_YYYYMMDD_HHMMSS_<brief_source>.md

Comment enregistrer (utilisez toujours le flag -o)

CRITIQUE : Chaque appel à parallel_web.py DOIT inclure le flag -o pointant vers le dossier sources/.

# Recherche web — TOUJOURS enregistrer dans sources/
python scripts/parallel_web.py search "latest advances in quantum computing 2025" \
  -o sources/search_20250217_143000_quantum_computing.md

# Recherche approfondie — TOUJOURS enregistrer dans sources/
python scripts/parallel_web.py research "comprehensive analysis of the global EV battery market" \
  -o sources/research_20250217_144000_ev_battery_market.md

# Extraction d'URL (vérification uniquement) — enregistrer dans sources/
python scripts/parallel_web.py extract "https://example.com/article" --objective "key findings" \
  -o sources/extract_20250217_143500_example_article.md

Pourquoi tout enregistrer

  1. Reproductibilité : Chaque affirmation du document final peut être retracée jusqu'à son matériel source brut
  2. Récupération de la fenêtre contextuelle : Si le contexte est compacté en cours de tâche, les résultats enregistrés peuvent être relus depuis sources/
  3. Piste d'audit : Le dossier sources/ fournit une transparence complète sur la façon dont les informations ont été rassemblées
  4. Réutilisation entre sections : La recherche enregistrée peut être référencée par plusieurs sections sans appels API en doublon
  5. Efficacité des coûts : Évitez les appels API redondants en vérifiant sources/ pour les résultats existants
  6. Support de l'examen par les pairs : Les relecteurs peuvent vérifier la recherche soutenant chaque affirmation

Enregistrement

Lors de l'enregistrement des résultats de recherche, enregistrez toujours :

[HH:MM:SS] SAVED: Search results to sources/search_20250217_143000_quantum_computing.md
[HH:MM:SS] SAVED: Deep research report to sources/research_20250217_144000_ev_battery_market.md

Avant de faire une nouvelle requête, vérifiez d'abord les sources

Avant d'appeler parallel_web.py, vérifiez si un résultat pertinent existe déjà dans sources/ :

ls sources/  # Check existing saved results

Intégration avec Scientific Writer

Tableau de routage

Tâche Outil Commande
Recherche web (toute) parallel_web.py search python scripts/parallel_web.py search "query" -o sources/search_<topic>.md
Recherche approfondie parallel_web.py research python scripts/parallel_web.py research "query" -o sources/research_<topic>.md
Vérification des citations parallel_web.py extract python scripts/parallel_web.py extract "url" -o sources/extract_<source>.md
Recherche d'articles académiques research_lookup.py Routage vers Perplexity sonar-pro-search
Recherche DOI/métadonnées parallel_web.py extract Extraction depuis les URLs DOI (vérification)

Lors de la rédaction de documents scientifiques

  1. Avant de rédiger une section, utilisez search ou research pour rassembler des informations de fond — enregistrez les résultats dans sources/
  2. Pour les citations académiques, utilisez research-lookup (qui route les requêtes académiques vers Perplexity) — enregistrez les résultats dans sources/
  3. Pour la vérification des citations (confirmant une URL spécifique), utilisez parallel_web.py extractenregistrez les résultats dans sources/
  4. Pour les données de marché/industrie actuelles, utilisez parallel_web.py research --model coreenregistrez les résultats dans sources/
  5. Avant toute nouvelle requête, vérifiez sources/ pour les résultats existants afin d'éviter les appels API en doublon

Configuration de l'environnement

# Requis : Définir votre clé API Parallel
export PARALLEL_API_KEY="your_api_key_here"

# Paquets Python requis
pip install openai        # For Chat API (search/research)
pip install parallel-web  # For Extract API (verification only)

Obtenez votre clé API sur https://platform.parallel.ai


Gestion des erreurs

Le script gère les erreurs correctement et retourne des réponses structurées d'erreur :

{
  "success": false,
  "error": "Error description",
  "timestamp": "2025-02-14 12:00:00"
}

Problèmes courants :

  • PARALLEL_API_KEY not set : Définissez la variable d'environnement
  • openai not installed : Exécutez pip install openai
  • parallel-web not installed : Exécutez pip install parallel-web (nécessaire uniquement pour l'extraction)
  • Rate limit exceeded : Attendez et réessayez (par défaut : 300 req/min pour l'API Chat)

Compétences complémentaires

Compétence À utiliser pour
research-lookup Recherches d'articles académiques (routage vers Perplexity pour les requêtes savantes)
citation-management Recherches dans Google Scholar, PubMed, bases de données CrossRef
literature-review Revues systématiques de la littérature dans les bases de données académiques
scientific-schematics Générer des diagrammes à partir des résultats de recherche

Skills similaires