Amazon Neptune 是一个高性能图分析和无服务器数据库,具有卓越的可扩展性和可用性。 本示例展示了使用openCypher查询Neptune图数据库并返回人类可读响应的 QA 链。 Cypher 是一种声明式图查询语言,允许在属性图中进行表达性和高效的数据查询。 openCypher 是 Cypher 的开源实现。
Neptune Open Cypher QA 链
此 QA 链使用 openCypher 查询 Amazon Neptune 并返回人类可读的响应。 LangChain 通过create_neptune_opencypher_qa_chain 支持 Neptune Database 和 Neptune 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)
RunnableWithMessageHistory。请注意,我们必须将 query 设置为输入键以匹配基础链期望的格式。
session_id,新的 InMemoryChatMessageHistory 将记住该对话。
session_id 调用启用消息历史的链。
session_id 继续调用链时,响应将在对话中先前查询的上下文中返回。