O que é Haystack?
Como uma estrutura de código aberto para a construção de aplicativos LLM, o Haystack tenta fazer as coisas importantes corretamente, em vez de fazer todas as coisas. O Haystack não tem tantas integrações próprias quanto, digamos, o LangChain, mas possui e oferece suporte total às 34 integrações que possui atualmente. O Haystack também oferece 28 integrações contribuídas pela comunidade para vincular a estrutura a armazenamentos de dados e documentos menos populares, modelos, ferramentas e APIs. Menciono as integrações antes de discutir a arquitetura da estrutura principal (veja “Conceitos do Haystack” abaixo) porque as integrações realmente exigem mais esforço de desenvolvimento do que os recursos principais de orquestração.
Além de valorizar fazer as coisas direito em vez de fazer todas as coisas, o Haystack tenta ser explícito em vez de implícito. Isso pode significar escrever mais código na primeira vez que você cria um pipeline, mas em troca desse esforço inicial extra, você achará muito mais fácil depurar, atualizar e manter seu pipeline. Para combater a rotina de escrever muito código explícito, você pode criar seus gráficos de pipeline visualmente com o deepset Studio, discutido abaixo.
Os quatro principais objetivos de design do Haystack são ser agnóstico em tecnologia, ser explícito (como acabamos de discutir), ser flexível e ser extensível. O README do repositório Haystack descreve isso da seguinte forma: