跳转到主要内容

未提供项目描述

项目描述

test

Astra商店

安装

pip install astra-haystack

本地开发

在本地上安装astra-haystack包以运行集成测试

在Gitpod中打开: 在Gitpod中打开

将Python版本切换到3.9(需要3.8+但不是3.12)

pyenv install 3.9
pyenv local 3.9

本地安装包 pip install -e . 要执行集成测试,添加所需的环境变量 ASTRA_DB_API_ENDPOINT="https://<id>-<region>.apps.astra.datastax.com"ASTRA_DB_APPLICATION_TOKEN="AstraCS:..." 并执行 python examples/example.py

安装要求 pip install -r requirements.txt

导出环境变量

export ASTRA_DB_API_ENDPOINT="https://<id>-<region>.apps.astra.datastax.com"
export ASTRA_DB_APPLICATION_TOKEN="AstraCS:..."
export COLLECTION_NAME="my_collection"
export OPENAI_API_KEY="sk-..."

运行python示例 python example/example.pypython example/pipeline_example.py

用法

此包包括与Haystack集成的Astra文档存储和Astra嵌入检索器类,允许您轻松执行文档检索或RAG,并将这些功能包含在Haystack管道中。

为了直接使用文档存储

导入文档存储

from haystack_integrations.document_stores.astra import AstraDocumentStore
from haystack.document_stores.types.policy import DuplicatePolicy

在环境变量中加载

namespace = os.environ.get("ASTRA_DB_KEYSPACE")
collection_name = os.environ.get("COLLECTION_NAME", "haystack_vector_search")

创建文档存储对象(API端点和令牌从环境变量中读取)

document_store = AstraDocumentStore(
    collection_name=collection_name,
    namespace=namespace,
    duplicates_policy=DuplicatePolicy.SKIP,
    embedding_dimension=384,
)

然后您可以使用像以下这样的文档存储函数: document_store.count_documents()

使用Astra嵌入检索器与Haystack管道

创建与上面相同的文档存储对象,然后导入并创建管道

from haystack import Pipeline
pipeline = Pipeline()

将您的AstraEmbeddingRetriever添加到管道 pipeline.add_component(instance=AstraEmbeddingRetriever(document_store=document_store), name="retriever")

添加其他组件并按需连接它们。然后运行您的流水线:pipeline.run(...)

有关索引的警告

在创建Astra DB文档存储时,您可能会看到以下类似的警告

Astra DB集合'...'被检测到所有字段(无论是手动创建还是由此插件的旧版本创建)启用了索引。这意味着每个文档中字符串可以存储的文本量将受到更严格的限制。请考虑在新的集合上重新索引,以便能够存储更长的文本。

或者,

Astra DB集合'...'被检测到的索引策略如下:{...}。这与请求的对象索引策略不匹配:{...}。特别是,可能对每个文档中字符串可以存储的文本量有更严格的限制。请考虑在新的集合上重新索引,以便能够存储更长的文本。

警告的原因是请求的集合已在数据库中存在,并且默认情况下被配置为为搜索索引所有字段,可能是隐式的。当Haystack对象尝试创建它时,它试图强制执行针对预期使用的定制索引策略:这既是为了能够存储非常长的文本,也是为了避免索引在搜索过滤中永远不会使用的字段(索引这些字段也会在写入时产生轻微的性能成本)。

通常,您可能会遇到警告的两个原因

  1. 您已通过除让此组件为您执行之外的其他方式创建集合:例如,通过Astra UI或使用AstraPy的Database类的create_collection方法直接创建;
  2. 您已使用插件的老版本创建集合。

请注意,这是一个警告,只要您不存储非常长的文本,您的应用程序就可以正常运行。但是,如果您需要向文档存储添加内容,例如包含非常长文本内容的文档,您将收到数据库的索引错误。

补救措施

您有几个选择

  • 您可以选择忽略警告,因为您知道您的应用程序永远不会需要存储非常长的文本内容;
  • 如果您可以承担重新填充集合的代价,您可以将它删除并重新运行Haystack应用程序:集合将使用优化的索引设置创建。这是当可能时推荐的选择

项目详情


下载文件

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

源分布

astra_haystack-0.9.3.tar.gz (26.6 kB 查看哈希值)

上传时间

构建分布

astra_haystack-0.9.3-py3-none-any.whl (20.0 kB 查看哈希值)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面