Skip to main content

安装与配置

要使用此功能,安装langchain-hana包:
然后,创建与您的SAP HANA云实例的连接。
HanaSparqlQAChain整合了以下功能:
  1. 基于模式的SPARQL生成
  2. 对SAP HANA的查询执行
  3. 自然语言答案格式化

初始化

需要:
  • 一个用于生成和解析查询的 LLM
  • 一个包含连接、graph_uri和本体论的 HanaRdfGraph
按照HanaRdfGraph的步骤获取创建HanaRdfGraph实例的详细信息。 导入HanaSparqlQAChain

流程概述

  1. SPARQL生成
    • 使用SPARQL_GENERATION_SELECT_PROMPT
    • 输入:
      • schema(来自graph.get_schema的Turtle格式)
      • prompt(用户的问题)
  2. 查询后处理
    • 从LLM响应中提取SPARQL代码
    • 若缺失则注入FROM <graph_uri>
    • 确保声明必需的公共前缀(rdf:、rdfs:、owl:、xsd:)
  3. 执行
    • 调用graph.query(generated_sparql)
  4. 答案生成
    • 使用SPARQL_QA_PROMPT
    • 输入:
      • context(原始查询结果)
      • prompt(原始问题)

提示词模板

”SPARQL生成”提示词

sparql_generation_prompt用于指导LLM根据用户问题及提供的模式生成SPARQL查询。

答案生成提示词

qa_prompt要求LLM仅基于数据库结果生成自然语言回答。 默认提示词可在此找到:prompts.py

自定义提示词

初始化时可覆盖默认值:
  • sparql_generation_prompt必须包含输入变量:["schema", "prompt"]
  • qa_prompt必须包含输入变量:["context", "prompt"]

示例:基于“电影”知识图谱的问答

前提条件: 需在SAP HANA云实例中启用三元组存储功能。 详细配置步骤请参考:启用三元组存储
加载kgdocu_movies示例数据。详见Knowledge Graph示例。
具体操作步骤:
  1. 初始化指向“电影”数据图谱的HanaRdfGraph
  2. 用LLM构建HanaSparqlQAChain
  3. 提问并输出链式响应
本示例演示LLM如何生成SPARQL查询、执行SAP HANA查询并返回可读答案。 首先创建SAP HANA云实例连接。
接着配置知识图谱实例
然后初始化LLM。
创建SPARQL问答链

内部机制解析

  1. SPARQL生成 链调用LLM,使用SPARQL_GENERATION_SELECT_PROMPT处理格式化本体(graph.get_schema)和用户问题,生成适配模式的合法SELECT查询。
  2. 预处理与执行
    • 提取与清理:从LLM响应中提取原始SPARQL文本
    • 注入图上下文:若缺失则添加FROM <graph_uri>,确保声明公共前缀(rdf:、rdfs:、owl:、xsd:)
    • 执行:通过HanaRdfGraph.query()在命名图中运行优化后的查询
  3. 答案生成 返回的CSV(或Turtle)结果通过SPARQL_QA_PROMPT再次输入LLM,生成严格基于数据且无虚构的简洁回答。

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