GenAI 助手过程

使用自然语言查询

此过程 apoc.ml.query 使用自然语言接收一个问题,并返回该查询的结果。

它使用 chat/completions API,此处有相关文档

查询调用
CALL apoc.ml.query("What movies did Tom Hanks play in?") yield value, query
RETURN *
示例响应
+------------------------------------------------------------------------------------------------------------------------------+
| value                                 | query                                                                                |
+------------------------------------------------------------------------------------------------------------------------------+
| {m.title -> "You've Got Mail"}        | "cypher
MATCH (m:Movie)<-[:ACTED_IN]-(p:Person {name: 'Tom Hanks'})
RETURN m.title
" |
| {m.title -> "Apollo 13"}              | "cypher
MATCH (m:Movie)<-[:ACTED_IN]-(p:Person {name: 'Tom Hanks'})
RETURN m.title
" |
| {m.title -> "Joe Versus the Volcano"} | "cypher
MATCH (m:Movie)<-[:ACTED_IN]-(p:Person {name: 'Tom Hanks'})
RETURN m.title
" |
| {m.title -> "That Thing You Do"}      | "cypher
MATCH (m:Movie)<-[:ACTED_IN]-(p:Person {name: 'Tom Hanks'})
RETURN m.title
" |
| {m.title -> "Cloud Atlas"}            | "cypher
MATCH (m:Movie)<-[:ACTED_IN]-(p:Person {name: 'Tom Hanks'})
RETURN m.title
" |
| {m.title -> "The Da Vinci Code"}      | "cypher
MATCH (m:Movie)<-[:ACTED_IN]-(p:Person {name: 'Tom Hanks'})
RETURN m.title
" |
| {m.title -> "Sleepless in Seattle"}   | "cypher
MATCH (m:Movie)<-[:ACTED_IN]-(p:Person {name: 'Tom Hanks'})
RETURN m.title
" |
| {m.title -> "A League of Their Own"}  | "cypher
MATCH (m:Movie)<-[:ACTED_IN]-(p:Person {name: 'Tom Hanks'})
RETURN m.title
" |
| {m.title -> "The Green Mile"}         | "cypher
MATCH (m:Movie)<-[:ACTED_IN]-(p:Person {name: 'Tom Hanks'})
RETURN m.title
" |
| {m.title -> "Charlie Wilson's War"}   | "cypher
MATCH (m:Movie)<-[:ACTED_IN]-(p:Person {name: 'Tom Hanks'})
RETURN m.title
" |
| {m.title -> "Cast Away"}              | "cypher
MATCH (m:Movie)<-[:ACTED_IN]-(p:Person {name: 'Tom Hanks'})
RETURN m.title
" |
| {m.title -> "The Polar Express"}      | "cypher
MATCH (m:Movie)<-[:ACTED_IN]-(p:Person {name: 'Tom Hanks'})
RETURN m.title
" |
+------------------------------------------------------------------------------------------------------------------------------+
12 rows
表 1. 输入参数
名称 描述

question

用自然语言表达的问题

conf

可选的配置映射,请查看下一节

表 2. 配置映射
名称 描述 必填

retries

API 调用失败时的重试次数

否,默认值为 3

retryWithError

如果为真,则在发生错误时重试 API,并将以下消息添加到请求正文:{"role":"user", "content": "The previous Cypher Statement throws the following error, consider it to return the correct statement: `<errorMessage>`"}, {"role":"assistant", "content":"Cypher Statement (in backticks):"}

否,默认值为 false

apiKey

OpenAI API 密钥

如果未定义 apoc.openai.key

model

Open AI 模型

否,默认值为 gpt-3.5-turbo

sample

要跳过的节点数,例如,1000 的样本将读取每 1000 个节点。它用作计算模式的 apoc.meta.data 过程的参数

否,默认为随机数

表 3. 结果
名称 描述

查询的结果

cypher

用于计算结果的查询

使用自然语言描述图模型

此过程 apoc.ml.schema 使用自然语言返回底层数据集的描述。

它使用 chat/completions API,此处有相关文档

查询调用
CALL apoc.ml.schema() yield value
RETURN *
示例响应
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| value                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| "The graph database schema represents a system where users can follow other users and review movies. Users (:Person) can either follow other users (:Person) or review movies (:Movie). The relationships allow users to express their preferences and opinions about movies. This schema can be compared to social media platforms where users can follow each other and leave reviews or ratings for movies they have watched. It can also be related to movie recommendation systems where user preferences and reviews play a crucial role in generating personalized recommendations." |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row
表 4. 输入参数
名称 描述

conf

可选的配置映射,请查看下一节

表 5. 配置映射
名称 描述 必填

apiKey

OpenAI API 密钥

如果未定义 apoc.openai.key

model

Open AI 模型

否,默认值为 gpt-3.5-turbo

sample

要跳过的节点数,例如,1000 的样本将读取每 1000 个节点。它用作计算模式的 apoc.meta.data 过程的参数

否,默认为随机数

表 6. 结果
名称 描述

数据集的描述

从自然语言查询创建 Cypher 查询

此过程 apoc.ml.cypher 接收一个自然语言问题,并将其转换为指定数量的 Cypher 查询。

它使用 chat/completions API,此处有相关文档

查询调用
CALL apoc.ml.cypher("Who are the actors which also directed a movie?", {count: 4}) yield cypher
RETURN *
示例响应
+----------------------------------------------------------------------------------------------------------------+
| query                                                                                                          |
+----------------------------------------------------------------------------------------------------------------+
| "
MATCH (a:Person)-[:ACTED_IN]->(m:Movie)<-[:DIRECTED]-(d:Person)
RETURN a.name as actor, d.name as director
" |
| "cypher
MATCH (a:Person)-[:ACTED_IN]->(m:Movie)<-[:DIRECTED]-(a)
RETURN a.name
"                               |
| "
MATCH (a:Person)-[:ACTED_IN]->(m:Movie)<-[:DIRECTED]-(d:Person)
RETURN a.name
"                              |
| "cypher
MATCH (a:Person)-[:ACTED_IN]->(:Movie)<-[:DIRECTED]-(a)
RETURN DISTINCT a.name
"                       |
+----------------------------------------------------------------------------------------------------------------+
4 rows
表 7. 输入参数
名称 描述 必填

question

用自然语言表达的问题

conf

可选的配置映射,请查看下一节

表 8. 配置映射
名称 描述 必填

count

要检索的查询数量

否,默认值1

apiKey

OpenAI API 密钥

如果未定义 apoc.openai.key

model

Open AI 模型

否,默认值为 gpt-3.5-turbo

sample

要跳过的节点数,例如,1000 的样本将读取每 1000 个节点。它用作计算模式的 apoc.meta.data 过程的参数

否,默认为随机数

表 9. 结果
名称 描述

数据集的描述

从 Cypher 查询创建自然语言查询解释

此过程apoc.ml.fromCypher采用自然语言问题并将其转换为自然语言查询解释。

它使用 chat/completions API,此处有相关文档

查询调用
CALL apoc.ml.cypher("MATCH (p:Person {name: "Tom Hanks"})-[:ACTED_IN]->(m:Movie) RETURN m", {}) yield value
RETURN *
表 10. 示例响应

此数据库模式表示常见电影数据库模型的简化版本。movie节点表示电影实体,其属性包括发布年份、宣传语和电影标题。person节点表示参与电影行业的人员,其属性包括人员的出生年份和姓名。directed关系将person节点连接到movie节点,表示该人员导演了这部电影。就领域而言,此模式可以与娱乐行业,尤其是电影行业相关联。电影以及参与制作这些电影的人员是该领域的基本实体。directed关系捕获人员与电影之间的导演关系。此类模型可以扩展为包含其他关系,如acted_inproducedwrote等,以捕获电影行业中更复杂的关系。总的来说,此图数据库模式提供了电影领域中实体和关系的简单而强大的表示,允许查询和分析行业内的连接。

表 11. 输入参数
名称 描述 必填

cypher

用自然语言表达的问题

conf

可选的配置映射,请查看下一节

表 12. 配置映射
名称 描述 必填

retries

API 调用失败时的重试次数

否,默认值为 3

apiKey

OpenAI API 密钥

如果未定义 apoc.openai.key

model

Open AI 模型

否,默认值为 gpt-3.5-turbo

sample

要跳过的节点数,例如,1000 的样本将读取每 1000 个节点。它用作计算模式的 apoc.meta.data 过程的参数

否,默认为随机数

表 13. 结果
名称 描述

数据集的描述

从一组查询创建子图的解释

此过程apoc.ml.fromQueries返回给定查询集的自然语言解释。

它使用 chat/completions API,此处有相关文档

查询调用
CALL apoc.ml.fromQueries(['MATCH (n:Movie) RETURN n', 'MATCH (n:Person) RETURN n'],
    {apiKey: <apiKey>})
YIELD value
RETURN *
示例响应
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| value                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| "The database represents movies and people, like in a movie database or social network.
    There are no defined relationships between nodes, allowing flexibility for future connections.
    The Movie node includes properties like title, tagline, and release year." |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row
带有路径的查询调用
CALL apoc.ml.fromQueries(['MATCH (n:Movie) RETURN n', 'MATCH p=(n:Movie)--() RETURN p'],
    {apiKey: <apiKey>})
YIELD value
RETURN *
示例响应
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| value                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| "models relationships in the movie industry, connecting :Person nodes to :Movie nodes.
    It represents actors, directors, writers, producers, and reviewers connected to movies they are involved with.
    Similar to a social network graph but specialized for the entertainment industry.
    Each relationship type corresponds to common roles in movie production and reviewing.
    Allows for querying and analyzing connections and collaborations within the movie business." |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row
表 14. 输入参数
名称 描述

查询

查询列表

conf

可选的配置映射,请查看下一节

表 15. 配置映射
名称 描述 必填

apiKey

OpenAI API 密钥

如果未定义 apoc.openai.key

model

Open AI 模型

否,默认值为 gpt-3.5-turbo

sample

要跳过的节点数,例如,1000 的样本将读取每 1000 个节点。它用作计算模式的 apoc.meta.data 过程的参数

否,默认为随机数

表 16. 结果
名称 描述

数据集的描述