3.2 基础API的使用

图片[1]-3.2 基础API的使用-大赛人网
图片[2]-3.2 基础API的使用-大赛人网

参数说明

  • namespace: 文档所在的层级路径
  • key: 该路径下的唯一键
  • value: 要保存的 JSON-like 字典
  • index: 控制语义检索索引
    • None(默认选项): 使用 store 初始化时配置的索引配置,如果初始化时没有指定索引策略,则index参数将会被忽略
    • False: 不为该 item 建立语义索引
    • list[str]: 只对指定字段路径建索引
  • ttl: 可选,过期时间;是否支持取决于具体 store 实现

举例:

图片[3]-3.2 基础API的使用-大赛人网

② get()源码剖析
按照 namespace + key 精确查询,返回的不止是value ,而是完整对象。即LangGraph底层将数据
封装为 Item 对象。
函数签名如下

图片[4]-3.2 基础API的使用-大赛人网

参数说明

  • namespace: 文档所在的层级路径
  • key: 该路径下的唯一键
  • refresh_ttl:是否刷新当前item的ttl(time-to-live,存活时间)
    • 默认为None:表示采用创建store对象时指定的同名配置
    • 如果没有配置TTL,该参数被忽略。

举例:

图片[5]-3.2 基础API的使用-大赛人网

③ 举例1:基于InMemoryStore
举例1:添加

图片[6]-3.2 基础API的使用-大赛人网

举例2:更新
对同一条数据进行更改后查询。

图片[7]-3.2 基础API的使用-大赛人网

④ 举例2:基于PostgresStore
PostgresStore不同于InMemoryStore,更改数据的逻辑是update而非覆盖,因此created_at 固定为
Item 创建时间,而updated_at 为更新时间,二者可能不同,符合直觉。
举例1:添加

图片[8]-3.2 基础API的使用-大赛人网

说明:这里的DB_URL大家测试时,需要替换为自己的。
举例2:更新
更改同一条数据

图片[9]-3.2 基础API的使用-大赛人网

可以看到, created_at 没变,但updated_at 更改了。
3.2.3 search():检索API
① 源码剖析
函数签名如下

图片[10]-3.2 基础API的使用-大赛人网

参数说明:

  • namespace_prefix:命名空间前缀,在该前缀下搜索。
  • query:语义检索时用于查询的自然语言。
  • filter:过滤条件,value中的键值对组合,见下文举例。
  • limit:可以返回item的最大条数,效果等同于SQL中的limit。
  • offset:返回结果之前跳过的item数量。
  • refresh_ttl:同上。

它支持两种检索方式(对应上面的参数2、3):

  • 按 filter 做结构化过滤,即用 value 中的键值筛选符合条件的记录。
  • 按 query 做语义相似度检索,需要将输入转换为向量。

返回值:
返回匹配的 SearchItem 列表,并额外携带匹配分数等检索元信息。
② 举例1:按照namespace前缀搜索
本节全部基于InMemoryStore 测试。

1、准备store

图片[11]-3.2 基础API的使用-大赛人网
图片[12]-3.2 基础API的使用-大赛人网

如果在jupyter环境,执行上述代码后,直接执行后续代码即可。
如果每次测试都在单独的python文件中进行,则以下1、2小节的案例代码之前都要补充上述代
码。

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发
头像-大赛人网
欢迎您留下宝贵的见解!
提交
头像-大赛人网

昵称

取消
昵称

    请登录后查看评论内容