跳转到主要内容

LLM框架,用于构建可定制的、生产就绪的LLM应用程序。将组件(模型、向量数据库、文件转换器)连接到可以与您的数据进行交互的管道或代理。

项目描述

Haystack
CI/CD Tests Docker image release Schemas code style - Black types - Mypy Coverage Status
文档 Sync docs with Readme Website
PyPI PyPI - Downloads PyPI - Python Version GitHub License Compliance
元信息 Discord Twitter Follow

Haystack 是一个端到端的自然语言处理框架,它使您能够构建由LLMs、Transformer模型、向量搜索等功能驱动的应用程序。无论您是想执行问答、回答生成、语义文档搜索,还是构建能够进行复杂决策和查询解决的工具,您都可以使用Haystack中的最先进的NLP模型来构建端到端的NLP应用程序,以解决您的用例。

核心概念

🏃‍♀️ 流水线: 这是Haystack的标准结构,它基于您的数据执行各种NLP任务,例如检索增强生成、问答等。流水线中的数据从一个节点流到下一个节点。您定义节点如何相互交互以及一个节点如何将数据推送到下一个节点。

一个示例流水线可能包含一个 Retriever 节点和一个 PromptNode。当流水线在查询下运行时,Retriever首先从您的数据中检索与查询相关的上下文,然后PromptNode使用LLM生成最终答案。

⚛️ 节点: 每个节点完成一项功能。例如,预处理文档、检索文档、使用语言模型回答问题等。

🕵️ 智能体: (自1.15起)智能体是一个由LLM(如GPT-3)驱动的组件,它可以决定下一步的最佳行动以获取查询的结果。它使用可用的工具来实现这一点。虽然流水线有一个明确的开始和结束,但智能体能够决定查询是否已经解决。它还可以使用流水线作为工具。

🛠️ 工具: 您可以将工具视为一位专家,能够真正擅长某件事。例如,一个好的计算器擅长数学。或者一个 WebRetriever,擅长从互联网检索页面。Haystack中的节点或流水线也可以用作工具。工具是智能体使用的组件,用于解决复杂的查询。

🗂️ 文档存储: 文档存储是一个数据库,您在其中存储文本数据以供Haystack访问。Haystack文档存储包括ElasticSearch、Opensearch、Weaviate、Pinecone、FAISS等。有关可用的文档存储的完整列表,请参阅我们的文档

使用Haystack可以构建什么

  • 通过使用可用的向量数据库并自定义您的LLM交互来构建 检索增强生成(RAG),无限可能🚀
  • 在自然语言中执行问答,以找到您文档中的粒度答案。
  • 执行语义搜索并按照意义检索文档。
  • 构建能够做出复杂决策以回答复杂查询的应用程序:例如,可以解决复杂客户查询、在许多不相关资源上进行知识搜索的系统等。
  • 使用现成的模型或根据您的数据进行微调。
  • 使用用户反馈来评估、基准测试并持续改进您的模型。

功能

  • 最新模型:Haystack 允许您使用和比较来自 OpenAI、Cohere 和 Hugging Face 的模型,以及您自己的本地模型或 SageMaker 上托管的模型。使用最新的 LLM 或基于 Transformer 的模型(例如:BERT、RoBERTa、MiniLM)。
  • 模块化:多种选择以适应您的技术堆栈和用例。广泛的选择用于存储您的数据的 DocumentStores、文件转换工具等。
  • 开放:与 Hugging Face 的模型中心、OpenAI、Cohere 和各种 Azure 服务集成。
  • 可扩展:使用检索器和生产规模组件(如 Elasticsearch 和快速 API REST API)扩展到数百万文档。
  • 端到端:所有工具都在一个地方:文件转换、清理、分割、训练、评估、推理、标记等。
  • 可定制:针对您的领域微调模型或实现您自己的节点。
  • 持续学习:从生产中的用户反馈收集新的训练数据,并持续改进您的模型。

资源

📒 文档 组件、流水线节点、指南、API 参考
💾 安装 如何安装 Haystack
🎓 教程 查看 Haystack 可以做什么,包括我们的笔记本和脚本
🎉 Haystack 附加组件 一个列出可单独安装的额外 Haystack 软件包和组件的仓库。
🔰 演示 包含 Haystack 演示应用程序的仓库,使用 Docker Compose 和 REST API
🖖 社区 Discord𝕏 (Twitter)Stack OverflowGitHub 讨论区
💙 贡献 我们欢迎所有贡献!
📊 基准测试 检索器、阅读器和 DocumentStores 的速度和准确性
🔭 路线图 Haystack 的公共路线图
📰 博客 了解 Haystack 和 NLP 的最新动态
☎️ 招聘 我们在招聘!请查看我们的空缺职位

💾 安装

有关详细安装指南,请参阅官方文档。在那里您将找到处理 Windows 和 Apple Silicon 的自定义安装说明。

基本安装

使用 pip 安装 Haystack 最新版本的基版本

pip install farm-haystack

此命令安装了基本 Pipelines 所需的一切,这些 Pipelines 使用内存中的 DocumentStore 和外部 LLM 提供程序(例如 OpenAI)。

完整安装

要使用更高级的功能,例如某些 DocumentStores、使用本地 Transformer 模型进行推理、FileConverters、OCR 或 Ray,您需要安装其他依赖项。以下命令安装 Haystack 的最新版本及其所有依赖项

pip install 'farm-haystack[all]' ## or 'all-gpu' for the GPU-enabled dependencies

如果您只想安装本地硬件上模型推理所需的依赖项(而不是远程 API 端点),例如 torch 和 sentence-transformers,则可以使用以下命令

pip install 'farm-haystack[inference]' ## installs torch, sentence-transformers, sentencepiece, and huggingface-hub

如果您想尝试尚未正式发布的最新功能,可以使用以下命令从主分支安装不稳定版本:

pip install git+https://github.com/deepset-ai/haystack.git@main#egg=farm-haystack

要修改Haystack代码,首先克隆此仓库:

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

然后进入克隆的文件夹,使用pip安装项目,包括开发依赖项:

cd haystack && pip install -e '.[dev]'

如果您想为Haystack仓库做出贡献,请首先查看我们的贡献指南

查看依赖项列表,以检查您想安装的依赖项(例如,[all][dev]或其他)。

安装REST API:

Haystack附带REST API,以便您可以将其作为服务部署。从Haystack仓库的根目录运行以下命令来安装REST_API:

pip install rest_api/

您可以在我们的PyPi页面上了解更多关于我们的PyPi包的信息。

🔰演示

您可以在我们的haystack-demos仓库中找到一些托管演示,以及如何在本地运行它们的说明。

:dizzy: 使用检索增强减少幻觉 - LLM的生成式问答

🐥 我应该关注吗? - 使用LLM总结推文

🌎 探索世界 - 提取式问答

🖖社区

如果您有功能请求或错误报告,请随时在Github上打开一个问题。我们会定期检查这些,并期待快速响应。如果您想讨论某个主题,或获得有关如何使Haystack适应您的项目的更一般性建议,您可以在Github讨论或我们的Discord频道中发起一个话题。我们还会查看𝕏 (Twitter)Stack Overflow

💙 贡献

我们非常欢迎社区的贡献——无论是快速修复一个错别字,还是完全新的功能!您不需要是Haystack专家就能提供有意义的改进。要了解如何开始,请首先查看我们的贡献指南

谁使用Haystack

以下是一些使用Haystack的项目和公司列表。想添加您的吗?请打开一个PR,将其添加到列表中,让世界知道您使用Haystack!

项目详情


发布历史 发布通知 | RSS源

下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

farm_haystack-1.26.3.tar.gz (623.0 kB 查看哈希值)

上传时间

构建分发

farm_haystack-1.26.3-py3-none-any.whl (763.9 kB 查看哈希值)

上传时间 Python 3

支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误记录StatusPageStatusPage状态页面