简介
人类擅长自然语言,但难以处理数字;计算机擅长处理数字,但难以理解自然语言。那么,我们如何利用计算机来完成需要理解自然语言的任务呢?假设有一个包含电影的 Neo4j 数据库,如果用户的兴趣用文字表达,我们如何查询该数据库以了解哪些电影最符合用户的兴趣?例如,哪些电影是关于“美国意大利黑手党的探索”?哪些电影与“罪犯通过爱情改变”有关?哪些电影彼此相似?
Neo4j 的向量索引允许您检索与其他节点和关系相似,或与给定文本提示相关的节点和关系。但是,向量索引不适用于用自然语言表达的文本:它们需要将文本转换为数字列表。这些列表称为嵌入,它们尝试以数字方式编码文本的含义。使用向量索引,数据库可以根据其嵌入快速匹配图实体。
例如,下图显示了电影“卑鄙的我”的标题和情节及其对应的嵌入。

本教程使用推荐数据集,其中包含电影以及执导或参演这些电影的人员。
您将了解如何设置环境,在电影节点上创建嵌入(使用免费和开源库以及外部 AI 提供商),创建向量索引,以及根据松散的描述或类似电影查询数据库。
本指南具有以下要求
-
正在运行的 Neo4j 实例 >= 5.13 — 如果您没有,请在本地安装 Neo4j或注册Aura 云实例。
-
对Cypher有一定的了解 — 如果您是新手,请查看入门 → Cypher®。
-
python
及其一些相关知识。 -
(可选)如果您打算使用外部 AI 提供商生成嵌入,则需要一个 API 密钥。
您应始终使用相同的模型为数据集生成嵌入:选择一个模型,并在本教程中使用它生成所有嵌入。 |