Skip to main content
Amazon Neptune 是一款高性能的图分析和服务端无数据库,具有卓越的扩展性和可用性。 此示例展示了使用 openCypher 查询 Neptune 图数据库并返回人类可读响应的 QA 链。 Cypher 是一种声明式图查询语言,允许在属性图中进行表达力强且高效的数据查询。 openCypher 是 Cypher 的开源实现。

Neptune Open Cypher QA 链

此 QA 链使用 openCypher 查询 Amazon Neptune 并返回人类可读的响应 LangChain 支持通过 create_neptune_opencypher_qa_chain 同时使用 Neptune DatabaseNeptune Analytics Neptune Database 是一款专为最佳扩展性和可用性设计的无服务器图数据库。它为需要扩展到每秒 100,000 次查询、多可用区高可用性和多区域部署的图数据库工作负载提供解决方案。您可以将 Neptune Database 用于社交网络、欺诈警报和客户 360 应用程序。 Neptune Analytics 是一个分析数据库引擎,可以快速在内存中分析大量图数据以获取见解并发现趋势。Neptune Analytics 是快速分析存储在数据湖中的现有图数据库或图数据集的解决方案。它使用流行的图分析算法和低延迟分析查询。

使用 Neptune Database

使用 Neptune Analytics

使用 Neptune openCypher QA 链

此 QA 链使用 openCypher 查询 Neptune 图数据库并返回人类可读的响应。

添加消息历史

Neptune openCypher QA 链能够被 RunnableWithMessageHistory 包装。这会将消息历史添加到链中,使我们能够创建一个在多次调用之间保留对话状态的聊天机器人。 首先,我们需要一种存储和加载消息历史的方法。为此,每个线程都将作为 InMemoryChatMessageHistory 的实例创建,并存储在字典中以供重复访问。 (另见:python.langchain.com/docs/versions/migrating_memory/chat_history/#chatmessagehistory)
现在,QA 链和消息历史存储可用于创建新的 RunnableWithMessageHistory。请注意,我们必须将 query 设置为输入键,以匹配基础链预期的格式。
在调用链之前,需要为新的 InMemoryChatMessageHistory 要记住的对话生成唯一的 session_id
最后,使用 session_id 调用启用了消息历史的链。
随着链继续使用相同的 session_id 被调用,响应将在对话中先前查询的上下文中返回。