版本 2 API

客户端 API 的第 2 版(V2)提升了用户体验并解决了 GDS Python 客户端中的常见坑。新的端点提供了一种更现代、类型安全且直观的方式来与 Neo4j 图数据科学库交互,具备以下关键特性

  • 改进的自动补全:为发现可用端点及其子命令提供更好的 IDE 支持。

  • 显式参数:函数现在使用具名、类型化的参数,而不是通用的 config 字典,使代码更易读且自我文档化。

  • 类型安全的结果:V2 端点返回专用的结果类型,而不是通用的 Pandas Series 对象,从而实现更好的静态分析和 IDE 集成。

  • 符合 Python 风格的命名:将算法和参数名称从 CamelCase 转换为 snake_case,遵循 Python 的 PEP 8 命名约定。

在下一个主要版本(2.0)中,V2 API 将成为调用 GDS 算法的默认方式。

1. 迁移到 V2 API

将现有代码迁移到使用 V2 端点只需进行几项简单的更改

  • 更新命名空间:将端点前缀从 gds 改为 gds.v2

  • 统一命名:将算法和参数名称从 CamelCase 转换为 snake_case(例如,将 pageRank 替换为 page_rank)。

  • 使用类型化结果:直接通过返回对象的属性访问结果字段,而不是在 Series 上使用字符串键(例如,将 result["writeMillis"] 替换为 result.write_millis)。

表 1. 迁移示例
原始 V2
# Returns a (Graph, Series) tuple
G, result = gds.graph.project("g", "*", "*")
# Returns a (GraphV2, GraphProjectResult) tuple
G, result = gds.v2.graph.project("g", "*", "*")
result: DataFrame = gds.pageRank.stream(G, dampingFactor=0.5)
result: DataFrame = gds.v2.page_rank.stream(G, damping_factor=0.5)
result: Series = gds.wcc.mutate(G, mutateProperty="wcc")
count = result["componentCount"]
result: WccMutateResult = gds.v2.wcc.mutate(G, mutate_property="wcc")
count = result.component_count
result: Series = gds.fastRP.write(G, writeProperty="fastRP", embeddingDimension=2)
millis = result["writeMillis"]
result: FastRPWriteResult = gds.v2.fast_rp.write(G, write_property="fastRP", embedding_dimension=2)
millis = result.write_millis