You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Grakn Python客户端中关闭推理?事务方法需传参吗?

关闭Grakn Python客户端的推理进行数据查询

没错,你确实需要在事务方法里传入参数来关闭推理功能。默认情况下,Grakn的只读事务是开启推理的——它会自动利用你定义的规则推导隐含的数据,但如果你只想查询存储的原始事实,就得显式关闭这个特性。

正确的代码写法

你可以通过两种方式实现,选哪种看你的习惯:

方式1:使用简洁的read()方法

from grakn.client import GraknClient

client = GraknClient(uri=uri)
session = client.session(keyspace=keyspace)
# 显式关闭推理的只读事务
tx = session.read(inference=False)

方式2:使用transaction()方法指定类型和参数

from grakn.client import GraknClient, TransactionType

client = GraknClient(uri=uri)
session = client.session(keyspace=keyspace)
tx = session.transaction(TransactionType.READ, inference=False)

更优雅的写法:用with语句管理事务

推荐用with上下文管理器,它会自动帮你关闭事务,避免资源泄漏:

from grakn.client import GraknClient

client = GraknClient(uri=uri)
with client.session(keyspace=keyspace) as session:
    with session.read(inference=False) as tx:
        # 在这里执行你的查询
        result_iterator = tx.query("match $p isa person; get;")
        # 处理查询结果
        for result in result_iterator:
            print(result.get("p").id)

简单解释下:inference参数默认值是True,所以必须手动设为False才能关闭推理。关闭后,查询只会返回你直接插入到Grakn中的原始数据,不会触发规则推导。

内容的提问来源于stack exchange,提问作者user7420209

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 12:32:39