---
type: study
status: verified
created: 2026-08-11
updated: 2026-08-11
sensitivity: standard
tags:
  - study
  - langchain
  - python
  - integrations
  - chain
  - sap-hana
  - sparql
topic: SAP HANA SPARQL QA Chain
sources:
  - https://docs.langchain.com/oss/python/integrations/chains/sap_hana_sparql_qa_chain
last_verified: 2026-08-11
---
# SAP HANA SPARQL QA Chain

## 固定流水线

`HanaSparqlQAChain` 位于 `langchain-hana`，把四个阶段串起来：

1. `SPARQL_GENERATION_SELECT_PROMPT` 接收 Turtle `schema` 和用户 `prompt`；
2. 从模型输出抽取 SPARQL，缺少时注入 `FROM <graph_uri>` 和常见 RDF/RDFS/OWL/XSD prefix；
3. `graph.query(generated_sparql)` 执行；
4. `SPARQL_QA_PROMPT` 仅根据 query result `context` 和原问题组织自然语言答案。

初始化用 `HanaSparqlQAChain.from_llm(...)`。自定义 generation prompt 必须含 `schema,prompt`，answer prompt 必须含 `context,prompt`。页面只展示同步 `invoke()`。

## 危险请求确认

示例明确传 `allow_dangerous_requests=True`。这只是调用方确认风险，不是 query sandbox。生产仍需只读 HANA 用户、固定 graph、SPARQL AST/关键词 allowlist、limit/timeout、资源预算和结果 DLP。`verbose=True` 会暴露生成 query 与中间结果，只适合受控调试，不应默认进入生产用户响应或普通日志。

与 agent 相比，chain 的阶段更固定、更易观测和测试，但没有页面所述的迭代 ontology 工具与自我修正循环。对可预测只读问答优先固定 chain；需要动态 schema/多步修正时才承担 agent 的额外成本和攻击面。

## 验证边界

已精读唯一官方 Markdown 路由和 prompt/后处理/执行契约。未连接 SAP HANA，未验证实际生成 query、权限、超时或结果正确性。

