未提供项目描述
项目描述
Astra商店
安装
pip install astra-haystack
本地开发
在本地上安装astra-haystack包以运行集成测试
将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.py
或 python 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对象尝试创建它时,它试图强制执行针对预期使用的定制索引策略:这既是为了能够存储非常长的文本,也是为了避免索引在搜索过滤中永远不会使用的字段(索引这些字段也会在写入时产生轻微的性能成本)。
通常,您可能会遇到警告的两个原因
- 您已通过除让此组件为您执行之外的其他方式创建集合:例如,通过Astra UI或使用AstraPy的
Database
类的create_collection
方法直接创建; - 您已使用插件的老版本创建集合。
请注意,这是一个警告,只要您不存储非常长的文本,您的应用程序就可以正常运行。但是,如果您需要向文档存储添加内容,例如包含非常长文本内容的文档,您将收到数据库的索引错误。
补救措施
您有几个选择
- 您可以选择忽略警告,因为您知道您的应用程序永远不会需要存储非常长的文本内容;
- 如果您可以承担重新填充集合的代价,您可以将它删除并重新运行Haystack应用程序:集合将使用优化的索引设置创建。这是当可能时推荐的选择。
项目详情
下载文件
下载适合您平台的项目文件。如果您不确定选择哪个,请了解有关安装包的更多信息。