Skip to main content
本指南介绍如何为部署的跨线程存储添加语义搜索,使您的代理能够通过语义相似性搜索记忆和其他文档。

前提条件

  • 一个部署(参考如何设置应用进行部署)以及关于托管选项的详细信息。
  • 您的嵌入提供商(本例中为 OpenAI)的 API 密钥。
  • langchain >= 0.3.8(如果您使用下面指定的字符串格式)。

步骤

  1. 更新您的 langgraph.json 配置文件以包含存储配置:
此配置:
  • 使用 OpenAI 的 text-embedding-3-small 模型生成嵌入
  • 将嵌入维度设置为 1536(与模型的输出匹配)
  • 索引存储数据中的所有字段(["$"] 表示索引所有内容,或指定特定字段如 ["text", "metadata.title"]
每个部署支持单个嵌入模型。不支持配置多个嵌入模型,因为这会导致 /store 端点出现歧义并引起混合索引问题。
  1. 要使用上述字符串嵌入格式,请确保您的依赖项包含 langchain >= 0.3.8
或者如果使用 requirements.txt

用法

配置完成后,您可以在节点中使用语义搜索。存储需要一个命名空间元组来组织记忆:
每个结果是一个 SearchItem(扩展了 Item,并添加了额外的 score 字段)。当配置了语义搜索时,score 包含相似度分数:

更改您的嵌入模型

更改嵌入模型或维度需要重新嵌入所有现有数据。目前没有为此提供自动迁移工具。如果需要切换模型,请相应地进行规划。

自定义嵌入

如果您想使用自定义嵌入,可以传递自定义嵌入函数的路径:
部署将在指定路径中查找该函数。该函数必须是异步的,并接受一个字符串列表:

通过 API 查询

您也可以使用 LangGraph SDK 查询存储。由于 SDK 使用异步操作:
当配置了语义搜索时,每个结果项都包含一个 score 字段: