Перейти к основному содержанию

Documentation Index

Fetch the complete documentation index at: https://speshu.ai/docs/llms.txt

Use this file to discover all available pages before exploring further.

Haystack — open-source фреймворк deepset для построения production-ready RAG, поиска по документам и AI-пайплайнов. Его используют, когда нужно не просто вызвать LLM, а явно собрать цепочку из retriever, prompt builder, generator и document store. О Haystack говорят в контексте надёжных RAG-систем. Он хорошо подходит командам, которым важны понятные компоненты, явные входы и выходы, возможность тестировать pipeline и менять отдельные части без переписывания всего проекта. В этой статье разберём, как работает Haystack и как направить OpenAI-компоненты на SpeShu.AI.

Что такое haystack

Haystack — это framework для AI orchestration. В нём приложение собирается из компонентов: document store, retriever, prompt builder, generator, ranker, converter и других блоков. Главная область применения — поиск и Q&A по документам. Например: пользователь задаёт вопрос, retriever ищет релевантные фрагменты, prompt builder формирует контекст, generator отвечает через LLM. Haystack полезен backend-командам, которые хотят видеть pipeline как инженерную систему, а не как набор скрытых магических вызовов.

Как работает haystack

Haystack pipeline похож на граф компонентов. Каждый компонент объявляет входы и выходы. Вы добавляете их в Pipeline, соединяете через connect, а затем запускаете с данными. Для RAG нужны минимум:
  • DocumentStore для хранения документов;
  • Retriever для поиска;
  • ChatPromptBuilder для prompt;
  • OpenAIChatGenerator для ответа модели.
OpenAI-компоненты поддерживают api_base_url, поэтому их можно направить на совместимый endpoint SpeShu.AI.

Что умеет haystack

  • строить явные RAG pipeline;
  • подключать BM25, embeddings и hybrid retrieval;
  • использовать разные document stores;
  • вызывать chat generators;
  • добавлять rankers, routers и evaluators;
  • тестировать компоненты отдельно;
  • собирать agents и tools поверх pipeline.
Мини-кейсы: Q&A по документации, поиск по базе знаний, ассистент поддержки, юридический поиск, технический helpdesk, аналитика документов.

haystack на практике

Пример ниже создаёт короткий RAG pipeline. Для простоты используется in-memory document store и BM25 retriever, а генерация ответа идёт через SpeShu.AI.
import os
from haystack import Document, Pipeline
from haystack.components.builders import ChatPromptBuilder
from haystack.components.generators.chat import OpenAIChatGenerator
from haystack.components.retrievers.in_memory import InMemoryBM25Retriever
from haystack.dataclasses import ChatMessage
from haystack.document_stores.in_memory import InMemoryDocumentStore
from haystack.utils import Secret

document_store = InMemoryDocumentStore()
document_store.write_documents([
    Document(content="SpeShu.AI предоставляет OpenAI-compatible API."),
    Document(content="RAG отвечает по найденным документам, а не только по памяти модели."),
])

prompt_template = [
    ChatMessage.from_system("Отвечай кратко и только по документам."),
    ChatMessage.from_user(
        "Документы:\n{% for doc in documents %}{{ doc.content }}\n{% endfor %}\n"
        "Вопрос: {{ question }}"
    ),
]

pipeline = Pipeline()
pipeline.add_component("retriever", InMemoryBM25Retriever(document_store))
pipeline.add_component("prompt", ChatPromptBuilder(template=prompt_template))
pipeline.add_component(
    "llm",
    OpenAIChatGenerator(
        model="openai/gpt-5.5",
        api_key=Secret.from_token(os.environ["SPESHU_AI_API_KEY"]),
        api_base_url="https://speshu.ai/api/v1",
    ),
)
pipeline.connect("retriever.documents", "prompt.documents")
pipeline.connect("prompt.prompt", "llm.messages")

question = "Зачем нужен RAG?"
result = pipeline.run({
    "retriever": {"query": question},
    "prompt": {"question": question},
})

print(result["llm"]["replies"][0].text)
Для семантического поиска добавьте embedder и vector retriever. Для продакшена замените in-memory store на Elasticsearch, OpenSearch, Qdrant, Weaviate или другой supported backend.

Преимущества и недостатки haystack

Плюсы:
  • явная архитектура pipeline;
  • сильный фокус на RAG и retrieval;
  • компоненты удобно тестировать отдельно;
  • есть поддержка custom OpenAI base URL.
Минусы:
  • старт может быть чуть тяжелее, чем у простого LangChain-примера;
  • нужно понимать связи компонентов;
  • для маленьких одноразовых скриптов Haystack может быть избыточен.

haystack vs альтернативы

Haystack vs LangChain: Haystack даёт более явный pipeline-подход. LangChain шире по интеграциям и быстрее для экспериментальных цепочек. Haystack vs LlamaIndex: LlamaIndex удобен, когда вы начинаете с данных и query engine. Haystack лучше, когда нужна инженерная сборка pipeline с контролируемыми компонентами. Haystack vs Dify: Dify даёт UI и no-code workflow. Haystack — кодовый framework для разработчиков.

Кому подойдёт haystack

Haystack подойдёт backend-разработчикам, ML-инженерам, поисковым командам, AI-стартапам и компаниям, которые строят внутренний поиск по документам. Если вам важны тестируемость, явные компоненты и production RAG, Haystack стоит рассмотреть одним из первых.

Как попробовать haystack через SpeShu.AI

SpeShu.AI подключается к OpenAIChatGenerator через api_base_url:
  • не нужен VPN;
  • не нужна зарубежная карта;
  • доступно несколько моделей;
  • один API-ключ для разных проектов;
  • быстрый старт через speshu.ai/profile.
Модели смотрите в каталоге, формат chat-запросов — в Chat Completions.

Заключение

Haystack — сильный выбор для RAG-систем, где важны pipeline, контроль и воспроизводимость. Главный инсайт: хороший Q&A по документам строится не только на LLM, а на качественном retrieval и прозрачной сборке компонентов.

Подключить API

Запустите интеграцию через SpeShu.AI: единый доступ к AI-моделям, без VPN и зарубежной карты