Framework de IA Haystack
Despliega Haystack de deepset en Clore.ai: crea canalizaciones RAG de producción, búsqueda semántica y flujos de trabajo de agentes LLM en infraestructura GPU asequible.
Haystack es el framework de orquestación de IA de código abierto de deepset para crear aplicaciones de LLM de nivel de producción. Con más de 18 mil estrellas en GitHub, ofrece una arquitectura basada en pipelines que conecta almacenes de documentos, recuperadores, lectores, generadores y agentes, todo en Python limpio y componible. Tanto si necesitas RAG sobre documentos privados, búsqueda semántica o flujos de trabajo de agentes de varios pasos, Haystack se encarga de la infraestructura para que puedas centrarte en la lógica de la aplicación.
En Clore.ai, Haystack brilla cuando necesitas una GPU para la inferencia local de modelos mediante Hugging Face Transformers o sentence-transformers. Si dependes únicamente de APIs externas (OpenAI, Anthropic), puedes ejecutarlo en instancias solo con CPU; pero para la generación de embeddings y los LLM locales, una GPU reduce drásticamente la latencia.
Todos los ejemplos se ejecutan en servidores GPU alquilados a través de Marketplace de CLORE.AI.
Descripción general
Proyecto
Licencia
Apache 2.0
Estrellas en GitHub
18 mil+
Versión
v2.x (haystack-ai)
Caso de uso principal
RAG, búsqueda semántica, preguntas y respuestas sobre documentos, flujos de trabajo de agentes
Compatibilidad con GPU
Opcional — necesaria para embeddings locales / LLMs locales
Dificultad
Medio
Exposición de API
Hayhooks (basado en FastAPI, REST)
Integraciones clave
Ollama, OpenAI, Anthropic, HuggingFace, Elasticsearch, Pinecone, Weaviate, Qdrant
Lo que puedes crear
Pipelines RAG — ingiere documentos, genera embeddings, recupera contexto, responde preguntas
Búsqueda semántica — consulta documentos por su significado, no por palabras clave
Procesamiento de documentos — analiza PDFs, HTML, documentos de Word; divide, limpia e indexa el contenido
Flujos de trabajo de agentes — razonamiento en varios pasos con uso de herramientas (búsqueda web, calculadoras, APIs)
Servicios REST API — expón cualquier pipeline de Haystack como un endpoint mediante Hayhooks
Requisitos
Requisitos de hardware
Solo modo API (OpenAI/Anthropic)
Ninguna / CPU
—
4 GB
20 GB
~$0.01–0.05/h
Embeddings locales (sentence-transformers)
RTX 3060
8 GB
16 GB
30 GB
$0.03–0.07/h
Embeddings locales + LLM pequeño (7B)
RTX 3090
24 GB
16 GB
50 GB
$0.07–0.21/h
LLM local (13B–34B)
RTX 4090
24 GB
32 GB
80 GB
$0.14–0.42/h
Requisitos de software
Docker (preinstalado en los servidores de Clore.ai)
Controladores NVIDIA + CUDA (preinstalados en los servidores GPU de Clore.ai)
Python 3.10+ (dentro del contenedor)
CUDA 11.8 o 12.x
Inicio rápido
1. Alquila un servidor de Clore.ai
En la Marketplace de Clore.ai, filtra por:
VRAM: ≥ 8 GB para cargas de trabajo de embeddings, ≥ 24 GB para LLMs locales
Docker: habilitado (predeterminado en la mayoría de las listas)
Imagen:
nvidia/cuda:12.8.1-devel-ubuntu22.04opytorch/pytorch:2.11.0-cuda12.8-cudnn9-runtime
Anota la IP pública y el puerto SSH del servidor en Mis pedidos.
2. Conéctate y verifica la GPU
3. Construye la imagen Docker de Haystack
Haystack v2 recomienda la instalación con pip. Crea un Dockerfile personalizado:
4. Ejecuta Haystack con Hayhooks
Hayhooks convierte automáticamente cualquier pipeline de Haystack en una API REST:
Respuesta esperada:
5. Crea tu primer pipeline RAG
Escribe un YAML de pipeline que Hayhooks servirá como endpoint:
Hayhooks descubre y sirve automáticamente este pipeline. Pruébalo:
Configuración
Variables de entorno
OPENAI_API_KEY
Clave API de OpenAI para modelos GPT
sk-...
ANTHROPIC_API_KEY
Clave API de Anthropic para Claude
sk-ant-...
HF_TOKEN
Token de Hugging Face para modelos restringidos
hf_...
HAYSTACK_TELEMETRY_ENABLED
Desactivar la telemetría de uso
false
CUDA_VISIBLE_DEVICES
Seleccionar GPU específica
0
TRANSFORMERS_CACHE
Ruta de caché para modelos HF
/workspace/hf-cache
Ejecuta con configuración completa
Pipeline de ingesta de documentos
Crea un pipeline de indexación separado para ingerir documentos:
Uso de bases de datos vectoriales (producción)
Para cargas de trabajo de producción, reemplaza el almacén en memoria por una base de datos vectorial persistente:
Aceleración GPU
Haystack usa aceleración por GPU en dos escenarios principales:
1. Generación de embeddings (sentence transformers)
La GPU es muy beneficiosa para generar embeddings de grandes colecciones de documentos:
2. Inferencia local de LLM (Hugging Face Transformers)
Para ejecutar LLMs directamente en Haystack sin Ollama:
3. Combínalo con Ollama (enfoque recomendado)
Para la mejor combinación de facilidad y rendimiento, ejecuta Ollama para la inferencia del LLM y Haystack para la orquestación:
Supervisa el uso de la GPU en ambos contenedores:
Consejos y mejores prácticas
Elige el modelo de embeddings adecuado
BAAI/bge-small-en-v1.5
~0.5 GB
El más rápido
Bueno
Indexación de alto rendimiento
BAAI/bge-base-en-v1.5
~1 GB
Rápido
Mejor
RAG general
BAAI/bge-large-en-v1.5
~2 GB
Medio
Mejor
Máxima precisión
nomic-ai/nomic-embed-text-v1
~1.5 GB
Rápido
Excelente
Documentos largos
Consejos de diseño de pipelines
Divide los documentos de forma inteligente — fragmentos de 200–400 palabras con 10–15% de solapamiento funcionan bien para la mayoría de los casos de uso de RAG
Almacena en caché los embeddings — persiste tu almacén de documentos en disco; recalcular embeddings es costoso
Usa
warm_up()— llama acomponent.warm_up()antes del uso en producción para cargar los modelos en la memoria de la GPUIndexación por lotes — procesa documentos en lotes de 32–64 para un uso óptimo de la GPU
Filtra con metadatos — usa el filtrado de metadatos de Haystack para acotar la recuperación (por ejemplo, por fecha, fuente, categoría)
Optimización de costos
Protege Hayhooks para acceso externo
Solución de problemas
ModuleNotFoundError: haystack
Paquete no instalado
Reconstruye la imagen Docker; comprueba pip install haystack-ai Logrado
CUDA sin memoria
El modelo de incrustación es demasiado grande
Usa bge-small-en-v1.5 o reduzca el tamaño del lote
Hayhooks devuelve 404 en el pipeline
Archivo YAML no encontrado
Compruebe el montaje del volumen; el archivo del pipeline debe estar en /app/pipelines/
Incrustación lenta en CPU
GPU no detectada
Verifique --gpus all bandera; compruebe torch.cuda.is_available()
Conexión a Ollama rechazada
Nombre de host incorrecto
Usa --add-host=host.docker.internal:host-gateway; establezca la URL en http://host.docker.internal:11434
La descarga de HuggingFace falla
Falta el token o se alcanzó el límite de velocidad
Establece HF_TOKEN variable de entorno; asegúrese de que el modelo no esté restringido
Error al analizar YAML del pipeline
Sintaxis no válida
Valide el YAML; use python3 -c "import yaml; yaml.safe_load(open('pipeline.yml'))"
El contenedor se cierra inmediatamente
Error de inicio
Consulta docker logs haystack; asegúrese de que el CMD del Dockerfile sea correcto
El puerto 1416 no es accesible externamente
Firewall / reenvío de puertos
Exponga el puerto en la configuración del pedido de Clore.ai; compruebe los puertos abiertos del servidor
Comandos de depuración
Lecturas adicionales
Documentación de Haystack — documentación oficial de v2
GitHub de Hayhooks — servicio de API REST para pipelines
Libro de recetas de Haystack — tutoriales de extremo a extremo (RAG, agentes, búsqueda)
deepset-ai/haystack en GitHub — código fuente, incidencias, versiones
Integraciones de Haystack — lista completa de almacenes vectoriales, LLM y herramientas compatibles
Ollama en Clore.ai — combine Haystack con Ollama para inferencia local de LLM
vLLM en Clore.ai — backend de servicio de LLM de alto rendimiento para Haystack
Guía de comparación de GPU — elija la GPU de Clore.ai adecuada para su carga de trabajo
Marketplace de CLORE.AI — alquile servidores GPU
Última actualización
¿Te fue útil?