安装与配置
要使用此功能,请安装@sap/hana-langchain 包及其依赖项:
HanaSparqlQAChain 将以下功能整合在一起:
- 基于模式的 SPARQL 生成
- 针对 SAP HANA 的查询执行
- 自然语言答案格式化
初始化
- 一个 LLM 用于生成和解释查询
- 一个
HanaRdfGraph(包含连接、graph_uri和本体)
HanaRdfGraph 实例。
导入 HanaSparqlQAChain
管道概述
- SPARQL 生成
- 使用 SPARQL 生成提示词
- 输入:
schema(来自graph.getSchema()的 Turtle 格式本体),prompt(用户问题)
- 查询后处理
- 从模型输出中提取 SPARQL
- 如果缺少
FROM <graph_uri>,则注入 - 确保常用前缀(
rdf:、rdfs:、owl:、xsd:)
- 执行
graph.query(generatedSparql)
- 答案生成
- 使用包含输入
context(结果)、prompt(原始问题)的 QA 提示词
- 使用包含输入
提示词模板
”SPARQL 生成” 提示词
sparqlGenerationPrompt 用于指导 LLM 根据用户问题和提供的模式生成 SPARQL 查询。
答案生成提示词
qaPrompt 指示 LLM 仅根据数据库结果创建自然语言答案。
默认提示词可在以下位置找到:prompts.ts
自定义提示词
您可以在初始化时覆盖默认值:
sparql_generation_prompt必须包含输入变量:["schema", "prompt"]qa_prompt必须包含输入变量:["context", "prompt"]
示例:在“电影”知识图谱上进行问答
前提条件: 您必须有一个启用了 三元组存储 功能的 SAP HANA Cloud 实例。 有关详细说明,请参阅:启用三元组存储加载
kgdocu_movies 示例数据。参见 知识图谱示例。
下面我们将:
- 实例化指向我们“电影”数据图谱的
HanaRdfGraph - 使用 LLM 将其包装在
HanaSparqlQAChain中 - 提出自然语言问题并打印出链的响应
底层工作原理
- SPARQL 生成
链通过
SPARQL_GENERATION_SELECT_PROMPT调用 LLM,使用 Turtle 格式的本体(graph.getSchema())和用户问题。LLM 然后生成一个针对您的模式的合法SELECT查询。 - 预处理与执行
- 提取和清理:从 LLM 的响应中提取原始 SPARQL 文本。
- 注入图上下文:如果缺少
FROM <graph_uri>,则添加并确保声明常用前缀(rdf:、rdfs:、owl:、xsd:)。 - 在 HANA 上执行:通过
HanaRdfGraph.query()在您的命名图中执行最终查询。
- 答案生成
返回的 CSV(或 Turtle)结果再次输入 LLM—这次使用
SPARQL_QA_PROMPT。LLM 生成简洁、人类可读的答案,严格基于检索到的数据,不会产生幻觉。
官方原文:src/oss/javascript/integrations/chains/sap_hana_sparql_qa_chain.mdx · 非官方翻译,译文由 AI 生成,以英文原文为准。