学习笔记 · Obsidian
SAP HANA SPARQL QA Chain
固定流水线
HanaSparqlQAChain 位于 langchain-hana,把四个阶段串起来:
SPARQL_GENERATION_SELECT_PROMPT接收 Turtleschema和用户prompt;- 从模型输出抽取 SPARQL,缺少时注入
FROM <graph_uri>和常见 RDF/RDFS/OWL/XSD prefix; graph.query(generated_sparql)执行;SPARQL_QA_PROMPT仅根据 query resultcontext和原问题组织自然语言答案。
初始化用 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、权限、超时或结果正确性。