Cadre IA Haystack

Déployez Haystack de deepset sur Clore.ai — construisez des pipelines RAG de production, la recherche sémantique et des flux de travail d'agents LLM sur une infrastructure GPU abordable.

Haystack est le framework d'orchestration IA open-source de deepset pour construire des applications LLM prêtes pour la production. Avec plus de 18K étoiles sur GitHub, il offre une architecture flexible basée sur des pipelines qui connecte des magasins de documents, des récupérateurs, des lecteurs, des générateurs et des agents — le tout en Python propre et composable. Que vous ayez besoin de RAG sur des documents privés, de recherche sémantique ou de workflows d'agents en plusieurs étapes, Haystack gère la plomberie pour que vous puissiez vous concentrer sur la logique applicative.

Sur Clore.ai, Haystack brille lorsque vous avez besoin d'un GPU pour l'inférence locale de modèles via Hugging Face Transformers ou sentence-transformers. Si vous dépendez uniquement d'API externes (OpenAI, Anthropic), vous pouvez l'exécuter sur des instances CPU seulement — mais pour la génération d'embeddings et les LLM locaux, un GPU réduit considérablement la latence.

circle-check
circle-info

Ce guide couvre Haystack v2.x (package haystack-ai L'API v2 diffère significativement de la v1 (farm-haystack). Si vous avez des pipelines v1 existants, consultez le guide de migrationarrow-up-right.

Aperçu

Propriété
Détails

Licence

Apache 2.0

Étoiles GitHub

18K+

Version

v2.x (package haystack-ai)

Cas d'utilisation principal

RAG, recherche sémantique, QA sur documents, workflows d'agents

Support GPU

Optionnel — requis pour les embeddings locaux / LLM locaux

Difficulté

Moyen

Exposition d'API

Hayhooks (basé sur FastAPI, REST)

Intégrations clés

Ollama, OpenAI, Anthropic, HuggingFace, Elasticsearch, Pinecone, Weaviate, Qdrant

Ce que vous pouvez construire

  • Pipelines RAG — ingérer des documents, générer des embeddings, récupérer du contexte, répondre aux questions

  • Recherche sémantique — interroger des documents par sens, pas par mots-clés

  • Traitement de documents — analyser des PDF, HTML, documents Word ; scinder, nettoyer et indexer le contenu

  • Workflows d'agents — raisonnement multi-étapes avec utilisation d'outils (recherche web, calculatrices, API)

  • Services API REST — exposer n'importe quel pipeline Haystack comme un endpoint via Hayhooks

Exigences

Exigences matérielles

Cas d'utilisation
GPU
VRAM
RAM
Disque
Prix Clore.ai

Mode API uniquement (OpenAI/Anthropic)

Aucun / CPU

4 Go

20 Go

~0,01–0,05 $/h

Embeddings locaux (sentence-transformers)

RTX 3060

8 Go

16 Go

30 Go

~0,10–0,15 $/h

Embeddings locaux + petit LLM (7B)

RTX 3090

24 Go

16 Go

50 Go

~0,20–0,25 $/h

LLM local (13B–34B)

RTX 4090

24 Go

32 Go

80 Go

~0,35–0,50 $/h

Grand LLM local (70B, quantifié)

A100 80GB

80 Go

64 Go

150 Go

~1,10–1,50 $/h

circle-info

Pour la plupart des cas RAG, un RTX 3090 à ~0,20 $/h est le compromis idéal — 24 Go de VRAM gèrent à la fois les embeddings sentence-transformer et un LLM local 7B–13B simultanément.

Exigences logicielles

  • Docker (préinstallé sur les serveurs Clore.ai)

  • Pilotes NVIDIA + CUDA (préinstallés sur les serveurs GPU Clore.ai)

  • Python 3.10+ (à l'intérieur du conteneur)

  • CUDA 11.8 ou 12.x

Démarrage rapide

1. Louer un serveur Clore.ai

Dans le Clore.ai Marketplacearrow-up-right, filtrez par :

  • VRAM: ≥ 8 Go pour les charges d'embedding, ≥ 24 Go pour les LLM locaux

  • Docker: Activé (par défaut sur la plupart des annonces)

  • Image: nvidia/cuda:12.1-devel-ubuntu22.04 ou pytorch/pytorch:2.2.0-cuda12.1-cudnn8-runtime

Notez l'IP publique du serveur et le port SSH depuis Mes commandes.

2. Se connecter et vérifier le GPU

3. Construire l'image Docker Haystack

Haystack v2 recommande l'installation via pip. Créez un Dockerfile personnalisé :

4. Exécuter Haystack avec Hayhooks

Hayhooksarrow-up-right transforme automatiquement n'importe quel pipeline Haystack en une API REST :

Réponse attendue :

5. Créez votre premier pipeline RAG

Écrivez un YAML de pipeline que Hayhooks servira comme endpoint :

Hayhooks découvre et sert automatiquement ce pipeline. Testez-le :

Configuration

Variables d'environnement

Variable
Description
Exemple

OPENAI_API_KEY

Clé API OpenAI pour les modèles GPT

sk-...

ANTHROPIC_API_KEY

Clé API Anthropic pour Claude

sk-ant-...

HF_TOKEN

Token Hugging Face pour modèles protégés

hf_...

HAYSTACK_TELEMETRY_ENABLED

Désactiver la télémétrie d'utilisation

false

CUDA_VISIBLE_DEVICES

Sélectionner un GPU spécifique

0

TRANSFORMERS_CACHE

Chemin du cache pour les modèles HF

/workspace/hf-cache

Exécuter avec configuration complète

Pipeline d'ingestion de documents

Construisez un pipeline d'indexation séparé pour ingérer des documents :

Utilisation de bases de vecteurs (production)

Pour des charges en production, remplacez le magasin en mémoire par une base de vecteurs persistante :

Accélération GPU

Haystack utilise l'accélération GPU dans deux scénarios principaux :

1. Génération d'embeddings (Sentence Transformers)

Le GPU est très bénéfique pour embedder de grandes collections de documents :

2. Inférence de LLM local (Hugging Face Transformers)

Pour exécuter des LLM directement dans Haystack sans Ollama :

3. Associer avec Ollama (approche recommandée)

Pour la meilleure combinaison de facilité et de performance, exécutez Ollama pour l'inférence LLM et Haystack pour l'orchestration :

Surveiller l'utilisation GPU entre les deux conteneurs :

Conseils et bonnes pratiques

Choisir le bon modèle d'embedding

Modèle
VRAM
Vitesse
Qualité
Idéal pour

BAAI/bge-small-en-v1.5

~0,5 Go

Le plus rapide

Bon

Indexation à haut débit

BAAI/bge-base-en-v1.5

~1 Go

Rapide

Meilleur

RAG général

BAAI/bge-large-en-v1.5

~2 Go

Moyen

Meilleur

Précision la plus élevée

nomic-ai/nomic-embed-text-v1

~1,5 Go

Rapide

Excellent

Documents longs

Conseils de conception de pipeline

  • Scindez les documents judicieusement — des morceaux de 200–400 mots avec un chevauchement de 10–15% fonctionnent bien pour la plupart des cas RAG

  • Mettre en cache les embeddings — persistez votre magasin de documents sur disque ; ré-embedder est coûteux

  • Utilisez warm_up() — appelez component.warm_up() avant l'utilisation en production pour charger les modèles en mémoire GPU

  • Indexation par lots — traitez les documents par lots de 32–64 pour une utilisation optimale du GPU

  • Filtrer avec les métadonnées — utilisez le filtrage par métadonnées de Haystack pour restreindre la récupération (par ex. par date, source, catégorie)

Optimisation des coûts

Sécuriser Hayhooks pour un accès externe

Dépannage

Problème
Cause probable
Solution

ModuleNotFoundError: haystack

Package non installé

Reconstruire l'image Docker ; vérifier pip install haystack-ai réussi

CUDA out of memory

Modèle d'embedding trop volumineux

Utilisez bge-small-en-v1.5 ou réduire la taille de lot

Hayhooks renvoie 404 sur le pipeline

Fichier YAML introuvable

Vérifiez le montage du volume ; le fichier de pipeline doit être dans /app/pipelines/

Embedding lent sur CPU

GPU non détecté

Vérifier --gpus all option ; vérifier torch.cuda.is_available()

Connexion Ollama refusée

Nom d'hôte incorrect

Utilisez --add-host=host.docker.internal:host-gateway; définir l'URL sur http://host.docker.internal:11434

Échec du téléchargement HuggingFace

Token manquant ou limite de taux

Définir HF_TOKEN var env ; assurez-vous que le modèle n'est pas protégé

Erreur d'analyse YAML du pipeline

Syntaxe invalide

Validez le YAML ; utilisez python3 -c "import yaml; yaml.safe_load(open('pipeline.yml'))"

Le conteneur se termine immédiatement

Erreur de démarrage

Vérifiez docker logs haystack; assurez-vous que la CMD du Dockerfile est correcte

Le port 1416 non joignable depuis l'extérieur

Pare-feu / redirection de port

Exposez le port dans les paramètres de commande Clore.ai ; vérifiez les ports ouverts du serveur

Commandes de débogage

Lectures complémentaires

Mis à jour

Ce contenu vous a-t-il été utile ?