Weaviate 转换代理
Weaviate 转换代理旨在就地修改 Weaviate 中的数据。 在代理处于技术预览阶段时,请勿在生产环境中使用它。 代理可能无法按预期工作,并且您的 Weaviate 实例中的数据可能会受到意外影响。
Weaviate 转换代理是一种代理服务,旨在利用生成模型增强和转换数据。使用转换代理来追加新属性和/或更新 Weaviate 中现有对象上的现有属性。

这可以帮助您提高 Weaviate 集合中对象的质量,以便在您的应用程序中进一步使用。
架构
转换代理作为 Weaviate Cloud 上的服务提供。它通过追加新属性或更新现有属性来更新现有的 Weaviate 对象。

为转换代理提供一组指令,例如要更新的集合以及要查看的现有属性和指令。然后,转换代理将在 Weaviate 中的指定对象上执行指定的操作。
这不会更改 Weaviate 中的对象数量,但会更新指定对象的属性。
转换代理:可视化工作流程
为了转换现有的对象,转换代理遵循以下工作流程。
- 转换代理根据指定的标准(步骤 1-2)从 Weaviate 检索现有的对象。
- 转换代理与生成模型合作,基于提供的指令和指定现有属性的上下文来创建属性值(步骤 3-4)。
- 更新 Weaviate 中的转换对象。Weaviate 会根据需要使用指定的向量化器集成来向量化数据。(步骤 5-7)
- 从 Weaviate 接收作业状态,并将其返回给用户(步骤 8)。
更新现有对象上的属性
在更新现有对象上的属性时,转换代理会用新值替换现有的属性值。此操作的工作流程如下所示。

将新属性追加到现有对象
在将属性追加到现有对象时,转换代理会将新值作为新属性添加到对象中。此操作的工作流程如下所示。

基本用法
以下是如何使用此 Weaviate 代理的概述。有关更详细的信息,请参阅用法页面。
先决条件
此代理仅可用于 Weaviate Cloud 实例以及受支持版本的 Weaviate 客户端库。
示例用法
要使用转换代理,请使用以下输入对其进行实例化
- Weaviate 客户端的一个实例(例如,Python 中的
WeaviateClient对象),连接到 Weaviate Cloud 实例。 - 要转换的目标集合的名称。
- 要执行的转换操作列表。
然后启动操作。
转换操作是异步的。每个操作都会将一个工作流程 ID 返回给用户。然后,用户可以使用此 ID 来检查其状态。
# [🚧 CAUTION 🚧] DO NOT USE ON PRODUCTION DATA.
# The Transformation Agent will modify your data in place.
# While the Transformation Agent is in technical preview,
# it is recommended to only use it on test data.
import os
import weaviate
from weaviate.classes.init import Auth
from weaviate.agents.transformation import TransformationAgent
from weaviate.agents.classes import Operations
headers = {
# Provide your required API key(s), e.g. Cohere, OpenAI, etc. for the configured vectorizer(s)
"X-INFERENCE-PROVIDER-API-KEY": os.environ.get("YOUR_INFERENCE_PROVIDER_KEY", ""),
}
client = weaviate.connect_to_weaviate_cloud(
cluster_url=os.environ.get("WEAVIATE_URL"),
auth_credentials=Auth.api_key(os.environ.get("WEAVIATE_API_KEY")),
headers=headers,
)
add_topics = Operations.append_property(
property_name="topics",
data_type=DataType.TEXT_ARRAY,
view_properties=["abstract", "title"],
instruction="""Create a list of topic tags based on the title and abstract.
Topics should be distinct from eachother. Provide a maximum of 5 topics.
Group similar topics under one topic tag.""",
)
agent = TransformationAgent(
client=client,
collection="ArxivPapers",
operations=[add_topics],
)
response = agent.update_all() # The response is a TransformationResponse object
agent.get_status(workflow_id=response.workflow_id) # Use the workflow_id to check the status of each workflow
随着转换的进行,转换后的属性将在每个对象上可用。
更多文档
有关如何使用此代理的更详细信息,请参阅用法页面。
问题和反馈
如果您有任何问题或反馈,请在 用户论坛 中告诉我们。

