pg_llm 是一个 PostgreSQL 扩展,通过 SQL 原生函数提供大模型能力。扩展将会话、审计、追踪、报告、知识库等数据持久化到 _pg_llm_catalog,并在 PostgreSQL backend 内完成模型调用与编排。
设计目标:
jsonb 与流式 SRF 接口src/pg_llm.cpp)职责:
_pg_llm_catalogtext/jsonb/SRF)src/models/*)LLMInterface:统一聊天、流式、embedding 接口ModelManager:模型注册、实例缓存、并行推理src/text2sql/*)generate_statement)EXPLAIN 分析src/utils/*)elog)扩展数据统一存于 _pg_llm_catalog:
pg_llm_models:模型配置、密钥密文、路由元数据pg_llm_sessions、pg_llm_session_messages:会话状态与消息pg_llm_audit_log:审计事件pg_llm_trace_log:中间过程与决策轨迹pg_llm_reports:报告产物pg_llm_knowledge_documents、pg_llm_knowledge_chunks:知识库pg_llm_feedback:反馈数据pg_llm_queries、pg_llm_vectors:Text2SQL 向量相关数据pg_llm_chatpg_llm_parallel_chatpg_llm_text2sqlpg_llm_create_session、pg_llm_multi_turn_chat 等)这些接口保留,内部复用结构化执行路径。
pg_llm_chat_json、pg_llm_parallel_chat_json、pg_llm_text2sql_jsonpg_llm_execute_sql_with_analysis、pg_llm_generate_reportpg_llm_get_session、pg_llm_get_session_messages、pg_llm_update_session_state、pg_llm_delete_sessionpg_llm_add_knowledge、pg_llm_search_knowledgepg_llm_record_feedbackpg_llm_get_audit_log、pg_llm_get_tracepg_llm_chat_streampg_llm_multi_turn_chat_stream统一返回字段:seq_no、chunk、is_final、model_name、confidence_score、request_id。
options.enable_rag)。EXPLAIN 并返回计划。request_id 入库,供后续流程使用。pg_llm.master_keypg_llm.audit_enabledpg_llm.trace_enabledpg_llm.redact_sensitivepg_llm.audit_sample_ratepg_llm.default_confidence_thresholdpg_llm.default_local_fallbackpg_llm_audit_log:请求结果与摘要信息。pg_llm_trace_log:中间步骤与决策细节。request_id:跨接口/表关联主键。1.1pg_llm--1.0--1.1.sqlcontrib/pg_llm/CMakeLists.txt)test/sql 与 test/expected