Skip to main content

安装与配置

要使用此功能,请安装 @sap/hana-langchain 包及其依赖项:
创建与您的 SAP HANA Cloud 实例的连接。
HanaSparqlQAChain 将以下功能整合在一起:
  1. 基于模式的 SPARQL 生成
  2. 针对 SAP HANA 的查询执行
  3. 自然语言答案格式化

初始化

  • 一个 LLM 用于生成和解释查询
  • 一个 HanaRdfGraph(包含连接、graph_uri 和本体)
请按照此处 HanaRdfGraph 的步骤了解如何创建一个 HanaRdfGraph 实例。 导入 HanaSparqlQAChain

管道概述

  1. SPARQL 生成
    • 使用 SPARQL 生成提示词
    • 输入:schema(来自 graph.getSchema() 的 Turtle 格式本体),prompt(用户问题)
  2. 查询后处理
    • 从模型输出中提取 SPARQL
    • 如果缺少 FROM <graph_uri>,则注入
    • 确保常用前缀(rdf:、rdfs:、owl:、xsd:)
  3. 执行
    • graph.query(generatedSparql)
  4. 答案生成
    • 使用包含输入 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 示例数据。参见 知识图谱示例。
下面我们将:
  1. 实例化指向我们“电影”数据图谱的 HanaRdfGraph
  2. 使用 LLM 将其包装在 HanaSparqlQAChain 中
  3. 提出自然语言问题并打印出链的响应
这展示了 LLM 如何在底层生成 SPARQL、执行它针对 SAP HANA 并返回人类可读的答案。 首先,创建与您的 SAP HANA Cloud 实例的连接。
然后,设置知识图谱实例
接下来,初始化 LLM。
然后,我们创建一个 SPARQL QA 链

底层工作原理

  1. SPARQL 生成 链通过 SPARQL_GENERATION_SELECT_PROMPT 调用 LLM,使用 Turtle 格式的本体(graph.getSchema())和用户问题。LLM 然后生成一个针对您的模式的合法 SELECT 查询。
  2. 预处理与执行
    • 提取和清理:从 LLM 的响应中提取原始 SPARQL 文本。
    • 注入图上下文:如果缺少 FROM <graph_uri>,则添加并确保声明常用前缀(rdf:、rdfs:、owl:、xsd:)。
    • 在 HANA 上执行:通过 HanaRdfGraph.query() 在您的命名图中执行最终查询。
  3. 答案生成 返回的 CSV(或 Turtle)结果再次输入 LLM—这次使用 SPARQL_QA_PROMPT。LLM 生成简洁、人类可读的答案,严格基于检索到的数据,不会产生幻觉。

官方原文:src/oss/javascript/integrations/chains/sap_hana_sparql_qa_chain.mdx · 非官方翻译,译文由 AI 生成,以英文原文为准。
Last modified on November 3, 2026