For the complete documentation index, see llms.txt. This page is also available as Markdown.

Framework IA Haystack

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

Haystack est le framework d'orchestration IA open source de deepset pour créer des applications LLM de niveau production. Avec plus de 18 k étoiles GitHub, il offre une architecture flexible basée sur des pipelines qui assemble 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 afin que vous puissiez vous concentrer sur la logique de l'application.

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

Ce guide couvre Haystack v2.x (haystack-ai package). L'API v2 diffère considérablement de la v1 (farm-haystack). Si vous avez déjà des pipelines v1, consultez le guide de migration.

Aperçu

Propriété
Détails

Licence

Apache 2.0

Étoiles GitHub

18 k+

Version

v2.x (haystack-ai)

Cas d'utilisation principal

RAG, recherche sémantique, questions-réponses sur documents, flux de travail d'agents

Prise en charge du GPU

Facultatif — requis pour les embeddings locaux / LLM locaux

Difficulté

Moyen

Exposition de l'API

Hayhooks (basé sur FastAPI, REST)

Intégrations clés

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

Ce que vous pouvez créer

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

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

  • Traitement de documents — analyser des PDF, du HTML, des documents Word ; découper, nettoyer et indexer le contenu

  • Flux de travail d'agents — raisonnement en plusieurs étapes avec utilisation d'outils (recherche web, calculatrices, API)

  • Services d'API REST — exposer n'importe quel pipeline Haystack comme point de terminaison via Hayhooks

Exigences

Configuration matérielle requise

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.03–0.07/hr

Embeddings locaux + petit LLM (7B)

RTX 3090

24 Go

16 Go

50 Go

0,07–0,21 $/h

LLM local (13B–34B)

RTX 4090

24 Go

32 Go

80 Go

0,14–0,42 $/h

Grand LLM local (70B, quantifié)

A100 80 Go

80 Go

64 Go

150 Go

Pour la plupart des cas d'utilisation RAG, un RTX 3090 à 0,07–0,21 $/h est le juste milieu — 24 Go de VRAM gèrent simultanément les embeddings sentence-transformers + un LLM local 7B–13B.

Prérequis logiciels

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

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

  • Python 3.10+ (dans le conteneur)

  • CUDA 11.8 ou 12.x

Démarrage rapide

1. Louez un serveur Clore.ai

Dans le Marketplace Clore.ai, filtrez selon :

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

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

  • Image: nvidia/cuda:12.8.1-devel-ubuntu22.04 ou pytorch/pytorch:2.11.0-cuda12.8-cudnn9-runtime

Notez l'IP publique du serveur et le port SSH à partir de Mes commandes.

2. Connectez-vous et vérifiez le GPU

3. Construisez l'image Docker de Haystack

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

4. Exécutez Haystack avec Hayhooks

Hayhooks transforme automatiquement n'importe quel pipeline Haystack en API REST :

Réponse attendue :

5. Créez votre premier pipeline RAG

Écrivez un YAML de pipeline que Hayhooks exposera comme point de terminaison :

Hayhooks détecte automatiquement et expose 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

Jeton Hugging Face pour les modèles à accès restreint

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 de cache pour les modèles HF

/workspace/hf-cache

Exécuter avec la configuration complète

Pipeline d'ingestion de documents

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

Utilisation de bases de données vectorielles (production)

Pour les charges de production, remplacez le stockage en mémoire par une base de données vectorielle 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 générer des embeddings pour de grandes collections de documents :

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

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

3. Associez avec Ollama (approche recommandée)

Pour la meilleure combinaison de simplicité et de performance, utilisez Ollama pour l'inférence LLM et Haystack pour l'orchestration :

Surveillez l'utilisation du GPU dans les deux conteneurs :

Conseils et bonnes pratiques

Choisissez 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 maximale

nomic-ai/nomic-embed-text-v1

~1,5 Go

Rapide

Excellente

Documents longs

Conseils de conception de pipeline

  • Découpez les documents judicieusement — des segments de 200 à 400 mots avec 10 à 15 % de chevauchement conviennent bien à la plupart des cas d'utilisation RAG

  • Mettre en cache les embeddings — persistez votre magasin de documents sur disque ; la ré-indexation des embeddings est coûteuse

  • Utilisez warm_up() — appelez component.warm_up() avant une 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 des métadonnées — utilisez le filtrage des métadonnées de Haystack pour délimiter 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é

Reconstruisez l'image Docker ; vérifiez pip install haystack-ai réussi

Mémoire CUDA insuffisante

Modèle d'embedding trop volumineux

Utilisez bge-small-en-v1.5 ou réduisez la taille du lot

Hayhooks renvoie une erreur 404 sur le pipeline

Fichier YAML introuvable

Vérifiez le montage du volume ; le fichier du pipeline doit se trouver dans /app/pipelines/

Embedding lent sur le CPU

GPU non détecté

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

Connexion refusée par Ollama

Nom d'hôte incorrect

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

Le téléchargement depuis HuggingFace échoue

Jeton manquant ou limite de débit

Définissez HF_TOKEN variable d'environnement ; assurez-vous que le modèle n'est pas restreint

Erreur d'analyse du YAML du pipeline

Syntaxe invalide

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

Le conteneur se ferme immédiatement

Erreur de démarrage

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

Le port 1416 n'est pas accessible de 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

Pour aller plus loin

Mis à jour

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