Marco AI Haystack

Despliega Haystack de deepset en Clore.ai — construye 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 construir aplicaciones LLM de grado de producción. Con más de 18K estrellas en GitHub, ofrece una arquitectura flexible basada en pipelines que conecta almacenes de documentos, recuperadores, lectores, generadores y agentes — todo en Python limpio y componible. Ya sea que necesites RAG sobre documentos privados, búsqueda semántica o flujos de trabajo de agentes multi-paso, Haystack maneja la plomería para que puedas enfocarte en la lógica de la aplicación.

En Clore.ai, Haystack destaca cuando necesitas una GPU para inferencia de modelos local vía 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 LLMs locales, una GPU reduce la latencia dramáticamente.

circle-check
circle-info

Esta guía cubre Haystack v2.x (paquete haystack-ai ). La API v2 difiere significativamente de la v1 (farm-haystack). Si tienes pipelines existentes en v1, consulta la guía de migraciónarrow-up-right.

Resumen

Propiedad
Detalles

Licencia

Apache 2.0

Estrellas en GitHub

18K+

Versión

v2.x (paquete haystack-ai)

Caso de uso principal

RAG, búsqueda semántica, QA de documentos, flujos de trabajo de agentes

Soporte GPU

Opcional — requerido para embeddings locales / LLMs locales

Dificultad

Medio

Servir API

Hayhooks (basado en FastAPI, REST)

Integraciones clave

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

Qué puedes construir

  • Pipelines RAG — ingerir documentos, generar embeddings, recuperar contexto, responder preguntas

  • Búsqueda semántica — consultar documentos por significado, no por palabras clave

  • Procesamiento de documentos — analizar PDFs, HTML, documentos Word; dividir, limpiar e indexar contenido

  • Flujos de trabajo de agentes — razonamiento multi-paso con uso de herramientas (búsqueda web, calculadoras, APIs)

  • Servicios REST API — exponer cualquier pipeline de Haystack como un endpoint vía Hayhooks

Requisitos

Requisitos de hardware

Caso de uso
GPU
VRAM
RAM
Disco
Precio de Clore.ai

Solo modo API (OpenAI/Anthropic)

Ninguno / Solo CPU

4 GB

20 GB

~$0.01–0.05/hr

Embeddings locales (sentence-transformers)

RTX 3060

8 GB

16 GB

30 GB

~$0.10–0.15/hr

Embeddings locales + LLM pequeño (7B)

RTX 3090

24 GB

16 GB

50 GB

~$0.20–0.25/hr

LLM local (13B–34B)

RTX 4090

24 GB

32 GB

80 GB

~$0.35–0.50/hr

LLM local grande (70B, cuantizado)

A100 80GB

80 GB

64 GB

150 GB

~$1.10–1.50/hr

circle-info

Para la mayoría de los casos de RAG, un RTX 3090 a ~ $0.20/hr es el punto óptimo — 24 GB de VRAM manejan embeddings de sentence-transformer + un LLM local de 7B–13B simultáneamente.

Requisitos de software

  • Docker (preinstalado en los servidores de Clore.ai)

  • Controladores NVIDIA + CUDA (preinstalados en servidores GPU de Clore.ai)

  • Python 3.10+ (dentro del contenedor)

  • CUDA 11.8 o 12.x

Inicio rápido

1. Alquila un servidor Clore.ai

En el Clore.ai Marketplacearrow-up-right, filtra por:

  • VRAM: ≥ 8 GB para cargas de embeddings, ≥ 24 GB para LLMs locales

  • Docker: Habilitado (predeterminado en la mayoría de listados)

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

Toma nota de la IP pública del servidor y el puerto SSH desde Mis Pedidos.

2. Conectar y verificar GPU

3. Construir la imagen Docker de Haystack

Haystack v2 recomienda la instalación con pip. Crea un Dockerfile personalizado:

4. Ejecutar Haystack con Hayhooks

Hayhooksarrow-up-right convierte cualquier pipeline de Haystack en una API REST automáticamente:

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

Variable
Descripción
Ejemplo

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

Deshabilitar telemetría de uso

false

CUDA_VISIBLE_DEVICES

Seleccionar GPU específica

0

TRANSFORMERS_CACHE

Ruta de caché para modelos HF

/workspace/hf-cache

Ejecutar con configuración completa

Pipeline de ingestión de documentos

Construye un pipeline de indexación separado para ingerir documentos:

Usando bases de datos vectoriales (Producción)

Para cargas de producción, reemplaza el almacén en memoria por una base de datos vectorial persistente:

Aceleración por 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 de LLM local (Hugging Face Transformers)

Para ejecutar LLMs directamente en Haystack sin Ollama:

3. Combinar con Ollama (Enfoque recomendado)

Para la mejor combinación de facilidad y rendimiento, ejecuta Ollama para la inferencia de LLM y Haystack para la orquestación:

Monitorea el uso de GPU entre ambos contenedores:

Consejos y mejores prácticas

Elige el modelo de embedding adecuado

Modelo
VRAM
Velocidad
Calidad
Mejor para

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

Mayor precisión

nomic-ai/nomic-embed-text-v1

~1.5 GB

Rápido

Excelente

Documentos largos

Consejos de diseño de pipeline

  • Divide los documentos sabiamente — fragmentos de 200–400 palabras con 10–15% de solapamiento funcionan bien para la mayoría de casos de RAG

  • Cachea embeddings — persiste tu almacén de documentos en disco; volver a generar embeddings es costoso

  • Usa warm_up() — llama a component.warm_up() antes del uso en producción para cargar modelos en la memoria GPU

  • Indexación por lotes — procesa documentos en lotes de 32–64 para una utilización óptima de la GPU

  • Filtra con metadata — usa el filtrado por metadata de Haystack para acotar la recuperación (p. ej., por fecha, fuente, categoría)

Optimización de costos

Asegurar Hayhooks para acceso externo

Solución de problemas

Problema
Causa probable
Solución

ModuleNotFoundError: haystack

Paquete no instalado

Reconstruye la imagen Docker; comprueba pip install haystack-ai sucedió

CUDA fuera de memoria

Modelo de embedding demasiado grande

Usa bge-small-en-v1.5 o reduce el tamaño del batch

Hayhooks devuelve 404 en pipeline

Archivo YAML no encontrado

Comprueba el montaje del volumen; el archivo de pipeline debe estar en /app/pipelines/

Embeddings lentos en CPU

GPU no detectada

Verifica --gpus all bandera; comprueba torch.cuda.is_available()

Conexión a Ollama rehusada

Nombre de host incorrecto

Usa --add-host=host.docker.internal:host-gateway; establece la URL a http://host.docker.internal:11434

Descarga de HuggingFace falla

Falta token o límite de tasa

Establecer HF_TOKEN var de entorno; asegúrate de que el modelo no esté restringido

Error de parseo YAML del pipeline

Sintaxis inválida

Valida el YAML; usa python3 -c "import yaml; yaml.safe_load(open('pipeline.yml'))"

El contenedor sale inmediatamente

Error de inicio

Verifique docker logs haystack; asegúrate de que el CMD en el Dockerfile sea correcto

Puerto 1416 no accesible externamente

Cortafuegos / reenvío de puertos

Expón el puerto en la configuración de pedido de Clore.ai; comprueba los puertos abiertos del servidor

Comandos de depuración

Lecturas adicionales

Última actualización

¿Te fue útil?