farm-haystack

AI orchestration framework to build customizable, production-ready LLM applications. Connect components (models, vector DBs, file converters) to pipelines or agents that can interact with your data. With advanced retrieval methods, it's best suited for building RAG, question answering, semantic search or conversational agent chatbots.

https://github.com/deepset-ai/haystack

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    2 of 286 committers (0.7%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.8%) to scientific vocabulary

Keywords

agent agents ai gemini generative-ai gpt-4 information-retrieval large-language-models llm machine-learning nlp orchestration python pytorch question-answering rag retrieval-augmented-generation semantic-search summarization transformers

Keywords from Contributors

jax cryptocurrencies transformer cryptography langchain anthropic multi-agents vector-database application fine-tuning
Last synced: 6 months ago · JSON representation ·

Repository

AI orchestration framework to build customizable, production-ready LLM applications. Connect components (models, vector DBs, file converters) to pipelines or agents that can interact with your data. With advanced retrieval methods, it's best suited for building RAG, question answering, semantic search or conversational agent chatbots.

Basic Info
  • Host: GitHub
  • Owner: deepset-ai
  • License: apache-2.0
  • Language: Python
  • Default Branch: main
  • Homepage: https://haystack.deepset.ai
  • Size: 45.7 MB
Statistics
  • Stars: 22,097
  • Watchers: 157
  • Forks: 2,323
  • Open Issues: 122
  • Releases: 189
Topics
agent agents ai gemini generative-ai gpt-4 information-retrieval large-language-models llm machine-learning nlp orchestration python pytorch question-answering rag retrieval-augmented-generation semantic-search summarization transformers
Created over 6 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License Code of conduct Citation Codeowners Security

README.md

Green logo of a stylized white 'H' with the text 'Haystack, by deepset.' Abstract green and yellow diagrams in the background. | | | | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | CI/CD | [![Tests](https://github.com/deepset-ai/haystack/actions/workflows/tests.yml/badge.svg)](https://github.com/deepset-ai/haystack/actions/workflows/tests.yml) [![types - Mypy](https://img.shields.io/badge/types-Mypy-blue.svg)](https://github.com/python/mypy) [![Coverage Status](https://coveralls.io/repos/github/deepset-ai/haystack/badge.svg?branch=main)](https://coveralls.io/github/deepset-ai/haystack?branch=main) [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) | | Docs | [![Website](https://img.shields.io/website?label=documentation&up_message=online&url=https%3A%2F%2Fdocs.haystack.deepset.ai)](https://docs.haystack.deepset.ai) | | Package | [![PyPI](https://img.shields.io/pypi/v/haystack-ai)](https://pypi.org/project/haystack-ai/) ![PyPI - Downloads](https://img.shields.io/pypi/dm/haystack-ai?color=blue&logo=pypi&logoColor=gold) ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/haystack-ai?logo=python&logoColor=gold) [![Conda Version](https://img.shields.io/conda/vn/conda-forge/haystack-ai.svg)](https://anaconda.org/conda-forge/haystack-ai) [![GitHub](https://img.shields.io/github/license/deepset-ai/haystack?color=blue)](LICENSE) [![License Compliance](https://github.com/deepset-ai/haystack/actions/workflows/license_compliance.yml/badge.svg)](https://github.com/deepset-ai/haystack/actions/workflows/license_compliance.yml) | | Meta | [![Discord](https://img.shields.io/discord/993534733298450452?logo=discord)](https://discord.com/invite/xYvH6drSmA) [![Twitter Follow](https://img.shields.io/twitter/follow/haystack_ai)](https://twitter.com/haystack_ai) |

Haystack is an end-to-end LLM framework that allows you to build applications powered by LLMs, Transformer models, vector search and more. Whether you want to perform retrieval-augmented generation (RAG), document search, question answering or answer generation, Haystack can orchestrate state-of-the-art embedding models and LLMs into pipelines to build end-to-end NLP applications and solve your use case.

Table of Contents

Installation

The simplest way to get Haystack is via pip:

sh pip install haystack-ai

Install from the main branch to try the newest features: sh pip install git+https://github.com/deepset-ai/haystack.git@main

Haystack supports multiple installation methods including Docker images. For a comprehensive guide please refer to the documentation.

Documentation

If you're new to the project, check out "What is Haystack?" then go through the "Get Started Guide" and build your first LLM application in a matter of minutes. Keep learning with the tutorials. For more advanced use cases, or just to get some inspiration, you can browse our Haystack recipes in the Cookbook.

At any given point, hit the documentation to learn more about Haystack, what can it do for you and the technology behind.

Features

  • Technology agnostic: Allow users the flexibility to decide what vendor or technology they want and make it easy to switch out any component for another. Haystack allows you to use and compare models available from OpenAI, Cohere and Hugging Face, as well as your own local models or models hosted on Azure, Bedrock and SageMaker.
  • Explicit: Make it transparent how different moving parts can “talk” to each other so it's easier to fit your tech stack and use case.
  • Flexible: Haystack provides all tooling in one place: database access, file conversion, cleaning, splitting, training, eval, inference, and more. And whenever custom behavior is desirable, it's easy to create custom components.
  • Extensible: Provide a uniform and easy way for the community and third parties to build their own components and foster an open ecosystem around Haystack.

Some examples of what you can do with Haystack:

  • Build retrieval augmented generation (RAG) by making use of one of the available vector databases and customizing your LLM interaction, the sky is the limit 🚀
  • Perform Question Answering in natural language to find granular answers in your documents.
  • Perform semantic search and retrieve documents according to meaning.
  • Build applications that can make complex decisions making to answer complex queries: such as systems that can resolve complex customer queries, do knowledge search on many disconnected resources and so on.
  • Scale to millions of docs using retrievers and production-scale components.
  • Use off-the-shelf models or fine-tune them to your data.
  • Use user feedback to evaluate, benchmark, and continuously improve your models.

[!TIP]

Would you like to deploy and serve Haystack pipelines as REST APIs yourself? Hayhooks provides a simple way to wrap your pipelines with custom logic and expose them via HTTP endpoints, including OpenAI-compatible chat completion endpoints and compatibility with fully-featured chat interfaces like open-webui.

Haystack Enterprise: Best Practices and Expert Support

Get expert support from the Haystack team, build faster with enterprise-grade templates, and scale securely with deployment guides for cloud and on-prem environments - all with Haystack Enterprise. Read more about it our announcement post.

👉 Get Haystack Enterprise

deepset Studio: Your Development Environment for Haystack

Use deepset Studio to visually create, deploy, and test your Haystack pipelines. Learn more about it in our announcement post.

studio

👉 Sign up!

[!TIP]

Are you looking for a managed solution that benefits from Haystack? deepset AI Platform is our fully managed, end-to-end platform to integrate LLMs with your data, which uses Haystack for the LLM pipelines architecture.

Telemetry

Haystack collects anonymous usage statistics of pipeline components. We receive an event every time these components are initialized. This way, we know which components are most relevant to our community.

Read more about telemetry in Haystack or how you can opt out in Haystack docs.

🖖 Community

If you have a feature request or a bug report, feel free to open an issue in Github. We regularly check these and you can expect a quick response. If you'd like to discuss a topic, or get more general advice on how to make Haystack work for your project, you can start a thread in Github Discussions or our Discord channel. We also check 𝕏 (Twitter) and Stack Overflow.

Contributing to Haystack

We are very open to the community's contributions - be it a quick fix of a typo, or a completely new feature! You don't need to be a Haystack expert to provide meaningful improvements. To learn how to get started, check out our Contributor Guidelines first.

There are several ways you can contribute to Haystack: - Contribute to the main Haystack project - Contribute an integration on haystack-core-integrations

[!TIP] 👉 Check out the full list of issues that are open to contributions

Who Uses Haystack

Here's a list of projects and companies using Haystack. Want to add yours? Open a PR, add it to the list and let the world know that you use Haystack!

Owner

  • Name: deepset
  • Login: deepset-ai
  • Kind: organization
  • Email: hello@deepset.ai
  • Location: Berlin, Germany

Building enterprise search systems powered by latest NLP & open-source.

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it using these metadata."
title: "Haystack: the end-to-end NLP framework for pragmatic builders"
date-released: 2019-11-14
url: "https://github.com/deepset-ai/haystack"
authors:
- family-names: Pietsch
  given-names: Malte
- family-names: Möller
  given-names: Timo
- family-names: Kostic
  given-names: Bogdan
- family-names: Risch
  given-names: Julian
- family-names: Pippi
  given-names: Massimiliano
- family-names: Jobanputra
  given-names: Mayank
- family-names: Zanzottera
  given-names: Sara
- family-names: Cerza
  given-names: Silvano
- family-names: Blagojevic
  given-names: Vladimir
- family-names: Stadelmann
  given-names: Thomas
- family-names: Soni
  given-names: Tanay
- family-names: Lee
  given-names: Sebastian

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 4,102
  • Total Committers: 286
  • Avg Commits per committer: 14.343
  • Development Distribution Score (DDS): 0.911
Past Year
  • Commits: 719
  • Committers: 70
  • Avg Commits per committer: 10.271
  • Development Distribution Score (DDS): 0.789
Top Committers
Name Email Commits
ZanSara s****a@d****i 366
Stefano Fiorucci s****i@g****m 355
Silvano Cerza 3****a 334
Massimiliano Pippi m****i@g****m 275
Vladimir Blagojevic d****x@g****m 262
Malte Pietsch m****h@d****i 252
Julian Risch j****h@d****i 222
Sebastian Husch Lee s****l 170
bogdankostic b****c@w****e 160
Tanay Soni t****2@g****m 148
tstadel 6****l 142
Branden Chan 3****n 140
David S. Batista d****a@g****m 117
Agnieszka Marzec 9****m 64
Timo Moeller t****r@d****i 55
Daria Fokina d****a@d****i 54
Tuana Çelik t****k@d****i 51
Madeesh Kannan s****e 45
oryx1729 7****9 43
Tobias Wochinger t****r@d****i 35
dependabot[bot] 4****] 34
MichelBartels l****n@m****m 33
Markus Paff m****p@g****m 31
Amna Mubashar a****k@g****m 30
Lalit Pagaria p****t@g****m 26
Daniel Bichuetti d****i@g****m 25
Bilge Yücel b****6@g****m 22
mathislucka m****a@g****m 20
Mayank Jobanputra m****a@g****m 18
Zoltan Fedor z****r@g****m 18
and 256 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 2,032
  • Total pull requests: 3,431
  • Average time to close issues: 4 months
  • Average time to close pull requests: 6 days
  • Total issue authors: 456
  • Total pull request authors: 219
  • Average comments per issue: 1.44
  • Average comments per pull request: 1.79
  • Merged pull requests: 2,648
  • Bot issues: 0
  • Bot pull requests: 62
Past Year
  • Issues: 555
  • Pull requests: 1,262
  • Average time to close issues: 16 days
  • Average time to close pull requests: 3 days
  • Issue authors: 133
  • Pull request authors: 86
  • Average comments per issue: 0.76
  • Average comments per pull request: 1.76
  • Merged pull requests: 942
  • Bot issues: 0
  • Bot pull requests: 16
Top Authors
Issue Authors
  • anakin87 (194)
  • julian-risch (164)
  • shadeMe (148)
  • sjrl (138)
  • dfokina (132)
  • ZanSara (103)
  • silvanocerza (67)
  • davidsbatista (50)
  • mrm1001 (48)
  • masci (46)
  • vblagoje (44)
  • TuanaCelik (43)
  • bilgeyucel (42)
  • agnieszka-m (35)
  • tstadel (25)
Pull Request Authors
  • anakin87 (542)
  • silvanocerza (400)
  • sjrl (287)
  • davidsbatista (266)
  • vblagoje (261)
  • masci (172)
  • julian-risch (161)
  • ZanSara (151)
  • shadeMe (82)
  • Amnah199 (81)
  • dfokina (69)
  • wochinge (59)
  • dependabot[bot] (58)
  • tstadel (44)
  • agnieszka-m (40)
Top Labels
Issue Labels
P1 (437) 2.x (433) type:documentation (322) P2 (195) P3 (183) type:feature (179) wontfix (169) type:bug (126) Contributions wanted! (75) 1.x (71) community-triage (65) epic (55) stale (54) topic:eval (44) good first issue (36) topic:pipeline (34) topic:document_store (33) topic:agent (32) topic:tests (31) topic:retriever (27) topic:modeling (22) breaking change (22) type:refactor (20) topic:CI (18) topic:rest_api (17) topic:LLM (16) topic:promptnode (15) topic:preprocessing (15) topic:reader (15) topic:elasticsearch (12)
Pull Request Labels
topic:tests (1,736) type:documentation (1,701) ignore-for-release-notes (1,189) 2.x (980) topic:CI (370) topic:core (345) topic:build/distribution (341) topic:dependencies (141) topic:DX (61) topic:document_store (59) 1.x (53) topic:pipeline (50) github_actions (47) topic:promptnode (44) topic:retriever (43) topic:LLM (37) proposal (32) topic:eval (25) topic:file_converter (23) topic:modeling (23) breaking change (22) topic:agent (21) type:bug (20) topic:rest_api (19) topic:docker (19) topic:preprocessing (18) topic:pinecone (17) topic:weaviate (16) topic:reader (16) topic:crawler (14)

Packages

  • Total packages: 3
  • Total downloads:
    • pypi 473,698 last-month
  • Total docker downloads: 865
  • Total dependent packages: 72
    (may contain duplicates)
  • Total dependent repositories: 239
    (may contain duplicates)
  • Total versions: 401
  • Total maintainers: 2
  • Total advisories: 2
pypi.org: farm-haystack

LLM framework to build customizable, production-ready LLM applications. Connect components (models, vector DBs, file converters) to pipelines or agents that can interact with your data.

  • Versions: 116
  • Dependent Packages: 21
  • Dependent Repositories: 237
  • Downloads: 77,815 Last month
  • Docker Downloads: 865
Rankings
Stargazers count: 0.2%
Dependent packages count: 0.6%
Downloads: 0.9%
Average: 1.0%
Dependent repos count: 1.0%
Forks count: 1.1%
Docker downloads count: 1.9%
Maintainers (1)
Last synced: 11 months ago
pypi.org: haystack-ai

LLM framework to build customizable, production-ready LLM applications. Connect components (models, vector DBs, file converters) to pipelines or agents that can interact with your data.

  • Versions: 282
  • Dependent Packages: 51
  • Dependent Repositories: 2
  • Downloads: 395,864 Last month
Rankings
Stargazers count: 0.2%
Dependent packages count: 0.7%
Forks count: 1.1%
Downloads: 2.8%
Average: 3.3%
Dependent repos count: 11.5%
Maintainers (1)
Last synced: 6 months ago
pypi.org: haystack-opea

An integration package connecting OPEA and Haystack

  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 19 Last month
Rankings
Dependent packages count: 9.1%
Average: 30.2%
Dependent repos count: 51.3%
Maintainers (1)
Last synced: 6 months ago

Dependencies

.github/workflows/benchmarks.yml actions
  • actions/checkout v4 composite
  • actions/upload-artifact v3 composite
  • aws-actions/configure-aws-credentials 8c3f20df09ac63af7b3ae3d7c91f105f857d8497 composite
  • iterative/setup-cml v1 composite
  • elasticsearch 7.17.6 docker
  • opensearchproject/opensearch 1.3.5 docker
  • semitechnologies/weaviate 1.17.2 docker
.github/workflows/ci_metrics.yml actions
  • int128/datadog-actions-metrics v1 composite
.github/workflows/docker_release.yml actions
  • actions/checkout v4 composite
  • docker/bake-action v4 composite
  • docker/login-action v3 composite
  • docker/metadata-action v5 composite
  • docker/setup-buildx-action v3 composite
  • docker/setup-qemu-action v3 composite
  • madhead/semver-utils latest composite
.github/workflows/docstring_labeler.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
.github/workflows/e2e.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
.github/workflows/examples_tests.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
  • masci/datadog v1 composite
  • elasticsearch 7.17.6 docker
.github/workflows/imports.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
.github/workflows/labeler.yml actions
  • actions/labeler v4 composite
.github/workflows/license_compliance.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
  • fossas/fossa-action v1.3.1 composite
  • masci/datadog v1 composite
  • pilosus/action-pip-license-checker v2 composite
.github/workflows/linting.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
  • tj-actions/changed-files v39 composite
.github/workflows/linting_skipper.yml actions
.github/workflows/minor_version_release.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
.github/workflows/e2e_preview.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
.github/workflows/linting_preview.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
  • tj-actions/changed-files v39 composite
.github/workflows/openapi_sync.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
  • readmeio/rdme 8.3.1 composite
.github/workflows/pipeline_schema.yml actions
.github/workflows/preview_imports.yml actions
  • actions/checkout v4 composite
  • tj-actions/changed-files v39 composite
.github/workflows/project.yml actions
  • actions/add-to-project v0.5.0 composite
.github/workflows/pypi_release.yml actions
  • act10ns/slack v2 composite
  • actions/checkout v4 composite
.github/workflows/pypi_release_preview.yml actions
.github/workflows/readme_sync.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
  • readmeio/rdme 8.3.1 composite
.github/workflows/release_notes.yml actions
  • actions/checkout v4 composite
  • tj-actions/changed-files v39 composite
.github/workflows/release_notes_skipper.yml actions
.github/workflows/rest_api_tests.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
  • masci/datadog v1 composite
.github/workflows/stale.yml actions
  • actions/stale v8 composite
.github/workflows/tests.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
  • coverallsapp/github-action v2 composite
  • masci/datadog v1 composite
  • apache/tika 2.9.0.0 docker
  • elasticsearch 7.17.6 docker
  • elasticsearch 8.10.2 docker
  • opensearchproject/opensearch 1.3.5 docker
  • semitechnologies/weaviate 1.17.2 docker
.github/workflows/tests_preview.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
  • masci/datadog v1 composite
  • apache/tika 2.9.0.0 docker
.github/workflows/tests_preview_skipper.yml actions
.github/workflows/tests_skipper.yml actions
.github/workflows/workflows_linting.yml actions
  • actions/checkout v4 composite
.github/workflows/xpdf_release.yml actions
  • actions/checkout v4 composite
  • docker/bake-action v4 composite
  • docker/login-action v3 composite
  • docker/setup-buildx-action v3 composite
  • docker/setup-qemu-action v3 composite
annotation_tool/docker-compose.yml docker
  • deepset/haystack-annotation latest
  • postgres 12
docker-compose.yml docker
  • deepset/haystack cpu
  • docker.elastic.co/elasticsearch/elasticsearch 7.17.6
docs/pydoc/requirements.txt pypi
  • pydoc-markdown ==4.8.2
haystack-linter/pyproject.toml pypi
pyproject.toml pypi
  • Pillow *
  • boilerpy3 *
  • events *
  • httpx *
  • jsonschema *
  • lazy-imports ==0.3.1
  • more_itertools *
  • networkx *
  • pandas *
  • platformdirs *
  • posthog *
  • prompthub-py ==4.0.0
  • pydantic <2
  • quantulum3 *
  • rank_bm25 *
  • requests *
  • requests-cache <1.0.0
  • scikit-learn >=1.3.0
  • sseclient-py *
  • tenacity *
  • tiktoken >=0.5.1
  • tqdm *
  • transformers ==4.34.1
rest_api/pyproject.toml pypi
  • farm-haystack *
  • fastapi <0.104.0
  • psutil *
  • pynvml *
  • python-multipart <1
  • uvicorn <1
test/benchmarks/datadog/requirements.txt pypi
  • datadog ==0.45.0 test