文檔中心 / OntiCards 用戶手冊
本頁目錄

OntiCards 用戶手冊

企業級智能數據中枢 · 让資料庫"聽得懂人話"

OntiCards Logo
OntiCards Logo

本手冊详細介绍 OntiCards 各功能模塊的使用方法,覆盖从登入初始化、數據源接入、智能問數、數據质檢到系統管理的全流程操作,幫助業務人員、數據分析師、數據治理專員和管理者快速上手並用好這套 AI 數據中枢。


一、產品概述

1.1 產品定位

OntiCards 是面向企業的 AI 數據中枢(AI Data Hub),围绕業務資料庫提供一站式能力:

📌 让企業資料庫从「只有會寫 SQL 才能使用」變成 懂業務語言就可以查詢、质檢、管理、稽核數據

與傳統 BI 工具不同,OntiCards 以 AI 驱動的自然語言交互 為核心,让業務團隊真正"自助"用數據;又與傳統 NL2SQL 玩具不同,OntiCards 把 數據接入 → 元數據理解 → 智能問數 → 數據质檢 → 平台管理 串成一條完整的閉環。

1.2 核心能力

能力說明
📡 多源數據接入支持 MySQL、PostgreSQL、Oracle、达梦、人大金倉、OceanBase、SQL Server、Trino、SQLite 等
🧠 智能數據理解自動生成數據卡片、欄位畫像、業務術語庫、AI 表關係盘點
🔍 自然語言查詢NL2SQL 引擎,多步推理,多資料庫方言适配,業務術語自動展開,安全校驗
🔗 跨源融合查詢一次提問同時查詢多個數據源,自動對齐結果,打破數據孤岛
數據质檢平台多種质檢規則、質素評分、自動化质檢報告
🏢 企業級平台能力數據源隔离、敏感脱敏、操作稽核、API-Key、JWT-SSO、查詢監控與成本統計
🤖 第三方集成通過 API-Key 對接智能體、RPA、BI 平台、自研系統

1.3 适用人群

角色使用場景获得价值
業務運營人員日常數據監控、異常排查自助查詢,無需等待數據團隊
數據分析師驗證假設、临時查詢、跨庫整合節省寫 SQL 時間,專註分析工作
數據治理專員規則庫組態、质檢執行、術語統一系統化提升數據質素
管理層多數據源彙總對比、决策支持获得全局视圖,快速决策
IT / 數據團隊數據源管理、權限管控、稽核監控統一管控平台,降低運維成本
業務系統開發者通過 API 集成智能問數能力為業務系統註入 AI 問數能力

1.4 主導航結構

登入後左侧主導航包含以下模塊:

導航路徑用途
概覽/overview數據源全景、使用流程、快捷入口
工作空間/workspaces管理所有數據源、進入數據源详情
業務術語/business-terms跨數據源共享的業務術語庫
數據质檢/governance規則庫、執行、報告
監控中心/monitoring實時查詢量、Token、性能監控
成本管理/cost-configToken 成本與每日成本趨勢
系統與帳戶/settings帳戶、用戶、API-Key、模型、保密設置
幫助/help文檔、FAQ、問題反馈

二、登入與初始化

2.1 登入方式

訪問 OntiCards 後將進入登入頁面。系統提供以下登入方式:

方式一:用戶名密碼登入(預設)

登入頁
登入頁

  • 在用戶名輸入框填寫帳戶名
  • 在密碼輸入框填寫密碼(點击眼睛圖示可显示明文)
  • 點击「登入」按鈕
💡 忘記密碼請联系系統管理員重置。

方式二:JWT-SSO 單點登入(企業版組態)

支持與企業內部身份系統(通過JWT的方式)打通,使用企業帳號一鍵登入。具體接入請參考 部署指南 - SSO 組態

2.2 概覽首頁

登入成功後預設進入「概覽」首頁。

概覽首頁
概覽首頁

首頁包含以下區域:

  • 添加數據源快捷入口:提供 8 種主流資料庫的連接卡片(PostgreSQL、MySQL、Oracle、SQL Server、Trino、SQLite、KingBase、OceanBase(MySQL)、DMBase(达梦)),點击「連接」按鈕直接進入新建數據源流程
  • 數據源概覽:顶部展示当前帳號下數據源總數、數據表總數、數據卡片總數、向量索引數等核心指標
  • 數據源列表:展示已添加的所有數據源卡片,显示連接狀態、數據表數、數據卡片數、最後更新時間
  • 使用流程:以 8 步流程圖展示完整使用路徑(連數據源 → 自動解析 → 數據增強 → 問題修復 → 數據增強 → 建術語庫 → 智能取數 → 數據治理)
  • 數據流通場景:展示 B 系統對接、API 取數、數據導出、數據訂阅讀取、數據質素監控、指標中心、數據預覽等典型場景
  • 快捷操作區(右侧):系統設置、工作空間列表、查看 API 密鑰、最近動態

2.3 首次使用流程

推薦的首次使用流程:

登录系统
   ↓
[必选] 添加数据源
   ↓
[自动] 系统生成数据卡片
   ↓
[推荐] 字段注释增强(上传 Excel 字典)
   ↓
[推荐] 创建并启用业务术语库
   ↓
[推荐] 启动数据盘点(全域或定向)
   ↓
开始自然语言问数
   ↓
[按需] 配置数据质检规则 → 启动执行
   ↓
[按需] 监控查询情况、查看历史与成本
⏱️ 完成前 4 步(登入、添加數據源、生成卡片、补充術語)通常 30 分钟內即可上手問數。

三、工作空間(數據源管理)

「工作空間」是 OntiCards 中管理所有數據源的中心。

3.1 工作空間總覽

進入「工作空間」後看到所有已添加的數據源。

工作空間
工作空間

顶部指標卡

指標含义
工作空間總數当前帳號下已添加的數據源數量
可用狀態為「可用」的數據源數量
數據表總數所有數據源下的表/视圖總數量
數據卡片已生成的智能數據卡片數量
向量索引已建好的向量索引數(用于 NL2SQL 檢索)

數據源卡片展示每個數據源的:

  • 資料庫類別型標簽(POSTGRESQL、DM、ORACLE 等)
  • 名稱與英文別名
  • 資料庫類別型圖示
  • 表數量、卡片數、向量索引數
  • 狀態(可用 / 異常)
  • 最後更新日期
  • 操作按鈕:刷新、設置、详情

3.2 添加數據源

步驟 1:進入添加表單

在「工作空間」頁或「概覽」頁點击「連接」按鈕(位于添加數據源快捷區或右上角),弹出添加數據源對話方塊。

添加數據源
添加數據源

步驟 2:填寫連接資訊

欄位說明示例
數據源名稱 *便于識別的業務名稱电商生产库
數據源類別型 *9 種資料庫類別型可選MySQL
用戶名 *拥有 SELECT 權限的帳號readonly_user
密碼 *對應帳號的密碼******
主機地址 *資料庫伺服器 IP 或域名192.168.1.100
埠 *資料庫監聽埠3306
資料庫名 *具體要接入的庫ecommerce

步驟 3:測試連接

點击「測試連接」,系統會驗證:

  • 網絡可达性
  • 帳號密碼正確性
  • 目標庫存在性
  • 必要權限(SELECT)

測試通過後按鈕變為「請先測試連接」可继续點击保存。

步驟 4:保存

點击「請先測試連接」變為「保存」後提交,系統會:

  1. 寫入數據源元數據
  1. 自動拉取所有表與欄位資訊
  1. 自動啟動 數據卡片生成工作(非同步執行)
  1. 寫入「工作」標簽,可在「工作」頁查看進度
🔐 重要:為安全起见,建議使用 仅具備 SELECT 權限的只讀帳號。OntiCards 不執行任何 DML/DDL 操作。

3.3 支持的資料庫類別型

資料庫類別型備註
MySQL開源主流資料庫,5.7+
PostgreSQL開源10+,兼容人大金倉(KingBase)
Oracle商業11g+
SQL Server商業2012+
TrinoOLAP大數據查詢引擎
SQLite輕量測試/小規模
KingBase國產电科金倉
OceanBase (MySQL)國產蚂蚁分布式資料庫(MySQL 租戶)
DMBase(达梦)國產武汉达梦,V8

3.4 刷新數據源

当資料庫結構發生變化(新增表、新增/修改欄位)時,需要刷新:

  1. 在數據源卡片右上角點击「刷新」圖示
  1. 系統增量識別變化的表與欄位
  1. 對新增的表自動啟動數據卡片生成
  1. 已有的卡片會保留人工編輯結果
💡 智能增量識別:仅重生成有變化的表,避免大庫刷新耗時。

3.5 刪除數據源

  1. 在數據源卡片右上角「...」選單中點击「刪除」
  1. 弹出確認對話方塊
  1. 確認後該數據源及其所有數據卡片、历史查詢將被清除
⚠️ 刪除操作 不可逆。如担心誤刪,可先將數據源標記為「停用」(如有此權限)。

四、數據源详情

點击數據源卡片任意位置,即可進入該數據源的详情頁。

详情頁包含以下顶部資訊和 8 個功能 Tab:

顶部資訊

  • 數據源名稱、連接狀態徽標
  • 數據表數、數據卡片數、向量索引數、最後更新時間
  • 「設置」按鈕:進入數據源組態
  • 「執行盘點」按鈕:快速啟動數據盘點工作

8 個功能 Tab

Tab用途
概覽數據源概覽、連接資訊、表與卡片統計
庫表浏覽所有表與欄位、查看详情
卡片浏覽/管理智能數據卡片
增強通過 Excel 上傳补充欄位註解
問數自然語言查詢入口
知識該數據源關联的業務術語庫
历史該數據源的历史查詢記錄
工作數據盘點工作(定向/全域)

4.1 概覽

數據源概覽 Tab
數據源概覽 Tab

展示:

  • 連接資訊:類別型、數據名、Schema、版本
  • 表與卡片完成情况:列出所有表,每张表显示"已生成/未生成"卡片狀態
  • 表內欄位分布:主鍵、外鍵、索引數

4.2 庫表

庫表 Tab
庫表 Tab

該 Tab 列出該數據源下的所有表與视圖:

  • 表名:預設以資料庫原名展示
  • 類別型:表(TABLE)/ 视圖(VIEW)
  • 欄位數:每张表的欄位數量
  • 描述:自動生成的表業務描述
  • 狀態:卡片是否已生成(已填充 / 未填充)
  • 操作:查看详情、生成/重新生成數據卡片

點击表名或「查看详情」

可進入表详情頁,浏覽:

  • 表的完整欄位列表(欄位名、類別型、是否主鍵、是否可空、預設值、註解)
  • 欄位與數據卡片的對應關係
  • 欄位在示例查詢中的常见用法

4.3 卡片(數據卡片)

數據卡片 Tab
數據卡片 Tab

數據卡片是 OntiCards 最重要的元數據資產之一。系統會為每张表自動生成一张"業務說明書"。

卡片列表展示該數據源下所有表的數據卡片,每张卡片显示:

  • 資料庫類別型徽標
  • 表名(如 EMPDEPT
  • 業務描述(自動摘要)
  • 關鍵欄位標簽
  • 欄位數與註解數(如 7 字段 / 21 标签

點击「查看」 進入卡片详情:

數據卡片详情
數據卡片详情

數據卡片详情1
數據卡片详情1

一张完整的數據卡片包含 6 個核心模塊,以 sys_region(行政區劃字典表)為例:

模塊內容實例
ABSTRACT(描述)表的業務用途說明 + 欄位逐項解释 + 查詢場景系統基础數據字典表,用于存储國家標準省/市/區縣代碼與名稱;欄位 code 為主鍵唯一行政區代碼,name 為區劃名稱,level 為區劃層級
TAGS(標簽)自動打上的欄位標簽與業務詞sys_region行政区划字典表主键code北京市 广州市 上海市 等枚举值
KEY CONCEPTS(關鍵概念)表的主題與別名主題:行政區劃字典;別名:地區字典表、省市區組態表、行政區列表
KEY ENTITIES(關鍵實體)表涉及的業務實體類別型行政區劃、區劃代碼、區劃名稱、一級/省級、省份、城市、區縣
APPLICABLE SCENARIOS(适用場景)該表适合回答的業務問題查詢行政區劃列表、根據代碼查地區名稱、統計各省用戶分布、获取省區劃數據
SQL META(元數據)欄位名、類別型、註解的完整列表其他详情資訊底部

關于「LLM 填充」徽標

  • 卡片標題旁的 🪄 LLM 填充 識別表示該卡片由大模型自動生成
  • 人工編輯 後的卡片會自動取消該徽標,刷新數據源時不會被覆盖
  • 「JSON」標簽可查看卡片結構化數據,便于與外部系統對接

人工編輯

點击「編輯」按鈕可以人工修正:

  • 調整表描述
  • 修改/新增欄位註解
  • 增刪標簽
  • 增刪關鍵概念
  • 增刪适用場景
💡 小技巧:人工編輯後的卡片會被锁定,刷新數據源時不會被覆盖。系統也支持「重新生成」操作。

4.4 增強(欄位註解增強)

增強 Tab
增強 Tab

「增強」Tab 用于 通過 Excel 字典批量补充欄位註解,适合以下場景:

  • 系統自動生成的註解不够準確
  • 企業有現成的業務數據字典 Excel 檔案
  • 業務專家需要批量补全大量欄位

使用流程

  1. 準備一個 Excel 檔案(.xlsx / .xls),最大 20MB
  1. 第一個工作表將被作為預設字典表
  1. 組態列映射:選擇哪一列是表名、欄位名、欄位註解
  1. 點击「開始處理」
  1. 處理完成後,對應欄位的註解會寫入數據卡片
💡 Excel 列映射可灵活組態(表名/欄位名/欄位註解對應的列),並支持一张工作表包含多個表名(不同行)。

4.5 問數(智能問數)

問數 Tab
問數 Tab

問數是 OntiCards 的核心交互入口。在該 Tab 下:

左侧主區域

  • 問題輸入框:支持多行輸入,按 Ctrl + Enter 換行
  • 「執行查詢」按鈕:提交自然語言問題
  • 模式切換:「單數據源」/「多數據源」

当前數據源卡片:明確显示本次查詢作用于哪個數據源

示例問題區(右侧「示例問句方式」):點击即可填入示例問題,快速體驗。

多數據源模式

切換到「多數據源」後,可同時勾選多個數據源,系統會:

  1. 理解問題
  1. 自動規劃需要查詢哪些數據源
  1. 跨庫查詢後對齐欄位
  1. 合並呈現結果

實际問數示例

智能取數
智能取數

如上圖所示,在「數據质檢-測試數據源」下提問「實付金額最大的訂單資訊」:

  • 顶部統計:數據表/卡片/問數單/最近問數 4 個概覽指標
  • 来源選擇:明確告訴系統本次查詢作用于哪個數據源
  • 問題輸入區:右下角带快捷鍵提示 Ctrl + Enter
  • 右侧示例:點击示例問題即可快速填入
  • 檢索結果概覽:底部显示涉及數據源數、結果條數、合並方式、關鍵欄位

問數結果完整頁
問數結果完整頁

如上圖所示,問數結果區主要由 4 塊組成:

區塊說明
檢索結果概覽展示 涉及数据源 1 个 / 结果 1 条 / 合并方式 SINGLE_CLUSTER / 关键字段 id,右侧提供「清空結果」快捷操作
關联數據源命中卡片 public.orders,右侧 1条 角標提示命中數量
生成 SQL(暗色代碼塊)完整可復製,並在底部显示「暫未匹配到相關術語庫」提示
查詢結果表表格化展示返回的欄位值,最右列提供「復製 / 解释」動作

4.6 知識(業務術語庫)

知識 Tab
知識 Tab

「知識」Tab 用于 管理與該數據源關联的業務術語庫

  • 显示該數據源已關联的術語庫列表
  • 提供「添加術語庫」「創建術語庫」「刷新」操作
  • 当數據源還沒有關联任何術語庫時,會以空狀態引導
📚 業務術語庫的具體創建與管理见 第六章 業務術語庫

4.7 历史(历史查詢)

历史 Tab
历史 Tab

「历史」Tab 展示該數據源下的所有历史查詢記錄:

顶部統計:總查詢數、成功率、失败數、平均耗時

篩選與搜索

  • 搜索框:按問題關鍵詞或生成的 SQL 片段搜索
  • 「篩選」按鈕:按時間範围、數據表、狀態篩選
  • 「搜索」按鈕:執行篩選
  • 「導出」按鈕:導出当前結果

查詢記錄列表

說明
問題用戶輸入的自然語言問題
數據源涉及的數據源
耗時本次查詢的總耗時(毫秒)
Token消耗的 Token 數量
狀態成功 / 失败 / 超時
時間提問時間
操作详情(查看完整 SQL 與結果)/ 刪除

點击「详情」查看:

查詢详情
查詢详情

查詢详情面板包含 6大塊資訊:

① 基本資訊

  • 原始問題(如"所有產品列出来,按价格排序")
  • 備數據源資訊
  • 生成的完整 SQL(带「復製」按鈕)
  • 来源 / 涉及的數據源
  • 涉及的表清單
  • 融合策略(如 SINGLE_CLUSTER / MULTI_CLUSTER

② 性能指標

指標含义
總耗時从問題提交到結果返回的端到端耗時
向量檢索召回數據卡片 / 表的耗時
重排序對召回結果重排序的耗時
SQL 生成LLM 生成 SQL 的耗時
SQL 執行在資料庫執行 SQL 的耗時
融合跨源結果對齐與合並耗時

③ Token 消耗

  • LLM 輸入 Token
  • LLM 輸出 Token
  • 總計
💡 監控每次問數的 Token 消耗有助于成本管理(详见 第十一章 成本管理)。

④ 召回質素

指標含义
召回數候選表 / 卡片總數
重排數經重排序後的候選數
選中數最終被采纳的表 / 卡片數
Top1 得分排名第一的候選與問題的語义相關度(0~1)
平均得分全部候選的平均相關度
🎯 Top1 得分 < 0.5 通常表示問題表述不够清晰或業務術語未覆盖,可結合 第五章 優化查詢結果 的建議調整。

⑤ 涉及的數據卡片:點击後可查看數據卡片的详情資訊

⑥ 查詢結果記錄:本次查詢的結果(表格形式呈現)

4.8 工作(數據盘點)

工作 Tab
工作 Tab

「工作」Tab 或右上角的「執行盘點」按鈕用于管理與啟動 數據盘點工作。其會分析表與表之間的關联關係,結果會用于:

  • 提升多表 JOIN 查詢的準確率
  • 自動生成關係卡片
  • 發現潜在的數據關係

支持两種盘點模式:

  • 定向盘點:選擇目標表與參考表,做精細化盘點
  • 全域盘點:對全庫所有表做整體盘點

創建定向盘點工作

定向盘點組態
定向盘點組態

操作步驟:

  1. 點击「創建盘點工作」進入「定向盘點組態」頁面
  1. 在「目標表(需要推薦註解)」區勾選需要补充關係的表(如 product
  1. 在「參考表(提供參考註解)」區勾選提供候選關係的表(如 shop_orderorder_item
  1. (可選)上傳字典檔案(CSV / Excel 格式,需包含 column_namecolumn_comment 列)
  1. 點击「執行定向盘點」,系統開始分析

查看盘點結果·表關係確認

盘點完成後進入「盘點結果」Tab,可查看系統推薦的關係列表:

盘點結果·表關係
盘點結果·表關係

欄位說明
源表 / 源欄位已知的關联起點(如 product.product_id
目標表 / 目標欄位候選的關联終點(如 order_item.product_id
關係類別型外鍵 / 同名欄位 / 業務關联
基數one_to_one / one_to_many
置信度系統對這條關係推薦的可信度(0~100%)
推薦原因模型给出的判定理由
✅ 勾選確認無誤的關係,點击「確認表關係」即可生成 關係卡片

盘點結果·關係圖谱视圖

盘點結果·關係圖谱
盘點結果·關係圖谱

在「盘點結果」Tab 切換至「關係圖谱」子视圖,可以更直觀地看到表與表之間的 關係連線 和整體連接關係,便于从全局理解數據模型。

關係卡片详情

點击某條已確認關係,可進入「關係卡片」详情頁:

關係卡片详情
關係卡片详情

關係卡片以 業務語言 解释一條關係的含义,包括:

  • 關联欄位:參與關联的欄位(如 product.product_idorder_item.product_id
  • 業務含义:用自然語言解释"為什麼這两张表能這樣連"
  • 業務角色:明確主表(商品)與从表(訂單)的角色劃分
  • 關係類別型:外鍵關联 / 同名欄位 / 業務推斷
  • 推薦連接LEFT JOIN / INNER JOIN / 全連接
  • 推薦依據:模型给出該推薦的原因(如欄位類別型一致、值域分布匹配等)
  • 整體置信度:模型對該關係的總體評分(如 98%)
  • 适用場景:這條關係适合回答什麼類別型的業務問題
  • 融合策略建議:基于主从數據展示的預聚合建議
  • 联表查詢建議:可直接套用的 SQL 模板
🔍 數據盘點的更多操作細節见 第七章 數據盘點

五、智能問數(自然語言查詢)

5.1 基本查詢

在「問數」Tab 的輸入框中輸入日常問題,例如:

  • 列出 2025 年 5 月份銷售排行榜前 10 的產品資訊
  • 統計今年 3 月份各部門的訂單總量
  • 查詢庫存不足的商品有哪些
  • 去年 12 月份什麼商品賣得最好

按回车或點击「執行查詢」,系統會:

  1. 理解問題:識別意圖、涉及的時間範围、維度、指標
  1. 檢索元數據:匹配相關表與欄位
  1. 生成 SQL:根據資料庫方言生成可執行 SQL
  1. 安全校驗:拦截非 SELECT 語句
  1. 執行查詢:執行 SQL 並返回結果
  1. 結果展示:以表格、圖表形式展示

5.2 多步推理查詢

OntiCards 支持 多步推理(Multi-step Reasoning)。系統會將復雜問題拆解為多個子問題,依次執行後合並結果。

示例問題

"查詢上月銷量前 10 的商品,這些商品目前的庫存分別是多少?"

系統會拆解為:

  1. 取上月銷量前 10 的商品
  1. 查這 10 個商品的当前庫存
  1. 合並两张結果

5.3 跨源融合查詢

前置條件

  • 已添加多個數據源
  • 業務術語庫已組態並啟用
  • 切換到「多數據源」模式

示例問題

"电商系統的訂單與 CRM 的客戶檔案對比,找出哪些 VIP 客戶最近 3 個月未下單?"

系統會:

  1. 解析出需要查「訂單庫」與「CRM 庫」
  1. 在訂單庫中找最近 3 個月的訂單
  1. 在 CRM 庫中找 VIP 客戶
  1. 跨庫對齐結果

跨庫查詢示例(輸入階段):

跨庫智能查詢頁面
跨庫智能查詢頁面

如上圖所示:

  • 顶部統計區:數據表 3 张 / 數據卡片 3 张 / 問數單 3 個 / 最近同步 2026 年 5 月 9 日
  • 多數據源開關:「多數據源」已啟用(單數據源 → 多數據源 一鍵切換)
  • 可選數據源(多選):共 14 個數據源可勾選,已選 2 個(高亮態)
  • 問題輸入區:提問「查詢采購金額大于30000的訂單,包括供應商名稱、訂單日期和總金額」33 字符
  • 示例問句方式(右侧):點击可快速填入問題

跨庫查詢結果融合(輸出階段):

跨庫智能查詢結果
跨庫智能查詢結果

查詢详情弹窗內清晰展示 跨源融合 的全鏈路:

區塊關鍵內容
基本資訊用戶問題、查看數據 SQL
各數據源 SQL(双段)- kuaku_postgresqlpurchase_orders JOIN suppliers,篩選 total_amount > 30000
\- kuaku_mysqlsales_orders 篩選 total_amount > 30000
關联資訊 4 卡来源數據源 / 關联數據源 / 涉及表(purchase_orders + suppliers + sales_orders + products + customers)/ 融合指標 SINGLE_SOURCE
性能指標總耗時 83.05s / 向量檢索 1.36s / 重排序 259ms / SQL 生成 57.50s / SQL 執行 75ms / 融合 23.86s
Token 消耗LLM 輸入 29,656 / LLM 輸出 2,122 / 總計 31,778
💡 跨庫查詢的融合方式(SINGLE_SOURCE / MULTI_CLUSTER / JOIN_FUSION 等)由系統根據問題復雜度自動選擇,結果详情中可清晰看到每一步耗時。

5.4 查詢結果解讀

查詢結果頁通常包含以下資訊:

  • 數據表格:查詢返回的核心數據
  • 數據来源:明確標註来自哪個資料庫、哪些表
  • 識別到的時間範围
  • 識別的篩選條件
  • 選擇的表與欄位
  • 應用的業務術語
  • 查詢說明:系統是如何理解你問題的,包括:
  • 生成的 SQL:可一鍵復製
  • 提示與告警:哪些條件被識別、哪些被忽略、原因是什麼

實际查詢結果示例

查詢結果
查詢結果

如上圖所示,提問「實付金額最大的訂單資訊」後,系統返回:

  • 檢索結果概覽:涉及 1 個數據源,返回 1 條結果,合並方式 SINGLE_CLUSTER,關鍵欄位 id
  • 數據源 1(1 條):關联的卡片為 public.orders
  • 生成 SQL(高亮代碼塊,可一鍵復製 / 復製 / 解释):
  SELECT t1."id", t1."order_no", t1."customer_name",
         t1."original_amount", t1."paid_amount",
         t1."status", t1."created_at"
  FROM public.orders AS t1
  ORDER BY t1."paid_amount" DESC
  LIMIT 1;
  • 查詢結果表:展示關鍵欄位值(id / order_no / customer_name / original_amount / paid_amount / status / created_at
💡 未組態相關術語庫時,系統會在底部给出提示「暫未匹配到相關術語庫,或術語庫功能未啟用」,可按需去 第六章 業務術語庫 創建。

5.5 優化查詢結果

如果結果不符合預期,按以下顺序排查:

  1. 查看「查詢說明」:理解系統的解析逻輯
  1. 补充數據卡片:表與欄位的描述越丰富,問數越準確(可手動調整或上傳字典檔案)
  1. 补充業務術語庫:把"高价值客戶"等業務概念显式定义,助于系統理解專業術語名詞
  • 增加時間範围限定
  • 明確排序方式
  • 明確輸出格式
  1. 調整提問方式:更具體地表达意圖
  1. 啟用數據盘點:补充表之間的關係,提升 JOIN 準確率

提問技巧

場景不好的問法好的問法
時間範围"最近的訂單""最近 30 天的訂單"
排序"最多的客戶""消費金額前 10 名的客戶"
維度"產品的銷售""按品類別分組的銷售總額"
過濾"活跃用戶""近 7 天登入過的用戶"

六、業務術語庫

6.1 什麼是業務術語庫

業務術語庫(Glossary)用于 把企業內部的業務概念显式定义,让系統真正"懂業務語言"。

典型例子

業務術語系統理解
高价值客戶VIP等级 IN ('钻石','金卡') AND 累计消费 > 10000
核心商品产品分类 IN ('A类','B类')
活跃用戶最近 30 天登录次数 >= 3
滞銷商品入库超过 90 天 且 销量 < 10

6.2 創建術語庫

進入「業務術語」頁面:

業務術語庫
業務術語庫

步驟

  1. 點击「新建術語庫」按鈕
  • 術語庫名稱(如"銷售術語庫")
  • 行業分類別(可選)
  • 描述(說明該術語庫的應用範围)
  1. 填寫:
  • 術語名稱:業務口徑(如"高价值客戶")
  • 別名/同义詞:可選(如"VIP 客戶""重點客戶")
  • 定义:用 SQL 表达式或自然語言定义
  • 關联欄位:關联到具體的庫.表.欄位
  1. 在術語庫內添加業務術語,每條術語包含:
  1. 啟用術語庫(開關開啟後,問數時才會被使用)
💡 系統提供"财務術語庫""电商零售術語庫"等行業模板,可作為起點。

術語庫详情示例(财務術語庫)

術語庫详情
術語庫详情

如上圖所示,進入「财務術語庫」後可看到完整的術語卡片列表,每张卡片包含:

  • 術語名稱:如「營業收入」「營業成本」「毛利」「毛利率」「净利潤」等
  • 狀態徽標:「已啟用」/「已停用」一鍵切換
  • 別名 / 同义詞:支持多個(如「毛利潤」對應「毛利」)
  • 類別型標簽:標記該術語的種類別(銷售類別 / 成本類別 / 費用類別 / 資產類別 / 風險類別等)
  • 定义:用自然語言 + 公式(如「毛利率 = 毛利 / 營業收入 × 100%」)

常用财務術語速查

分類別術語系統理解
收入類別營業收入企業从經營業務中获得的收入,按權責發生製確認
收入類別營業成本為取得營業收入而發生的直接成本,如原材料、人工、製造費用等
利潤類別毛利營業收入 − 營業成本,反映主營業務的盈利能力和直接成本控製水平
利潤類別毛利率毛利 / 營業收入 × 100%
利潤類別净利潤營業收入 − 營業成本 − 營業外收入 − 營業外支出 − 所得税費用
利潤類別净利率净利潤 / 營業收入 × 100%
費用類別銷售費用為銷售產品或提供劳務而發生的費用,包括廣告費、推銷員工资、銷售機構經費
費用類別管理費用企業行政管理為生產經營活動所發生的費用
風險類別資產負债率總負债 / 總資產 × 100%
流動性現金净流量現金流入 − 現金流出

6.3 在數據源中關联術語庫

創建好的術語庫需要 關联到具體數據源 才會被使用。

  1. 進入數據源详情 → 「知識」Tab
  1. 點击「添加術語庫」
  1. 選擇目標術語庫
  1. 關联後,該數據源的所有問數都會自動展開該術語庫中的概念

關联術語庫
關联術語庫

七、數據盘點

數據盘點是 AI 自動分析表與表之間關係 的能力,能显著提升多表 JOIN 查詢的準確率。

7.1 全域盘點

适用場景:首次接入數據源,希望系統自動發現所有表的關係。

步驟

  1. 進入數據源详情 → 「工作」Tab
  1. 選擇「全域盘點」模式
  1. 點击「創建盘點工作」
  1. 等待系統完成(表數越多耗時越長)
  1. 在工作列表中查看進度與結果
  1. 完成後系統會生成 關係卡片,並自動應用到問數引擎

7.2 定向盘點

适用場景:

  • 只想盘點几张核心業務表
  • 系統推薦的關係不準確,需要补充參考
  • 人工對部分表有明確的關係預期

步驟

  1. 進入「工作」Tab → 「定向盘點」
  1. 選擇 目標表(需要补充關係的表)
  1. 選擇 參考表(提供候選關係的表)
  1. (可選)上傳字典檔案輔助欄位推薦
  1. 點击「執行定向盘點」
  1. 系統會分析並推薦欄位間的關係
  1. 人工確認 / 修正後點击「確認表關係」生成 關係卡片
📌 組態頁與盘點結果视圖的详細說明见 §4.8 工作(數據盘點)

7.3 盘點結果管理

盘點完成後,系統會生成两類別核心產物:

  • 關係列表(表關係確認视圖):列出全部候選關係,可逐條勾選確認
  • 關係卡片:每條確認的關係都會生成一张「關係卡片」,用于問數時自動調用

關係卡片生命周期

  1. 生成:盘點結果確認後自動產出
  1. 應用:在問數涉及相關表時被自動召回
  1. 編輯:支持人工微調(業務含义、推薦連接、置信度等)
  1. 回滚:關係錯誤時可刪除並重新盘點
📌 關係卡片详情與欄位說明见 §4.8 工作(數據盘點)

八、欄位註解增強

当 AI 自動生成的數據卡片描述不够準確時,可通過 上傳 Excel 數據字典 的方式批量补充欄位註解。

8.1 準備 Excel 字典檔案

要求

  • 檔案格式:.xlsx.xls
  • 檔案大小:≤ 20MB
  • 預設讀取 第一個工作表
  • 必須包含表名、欄位名、欄位註解三列(顺序不限,可在上傳時映射)

示例

表名欄位名欄位註解
ordersorder_id訂單編號(主鍵)
ordersuser_id下單用戶 ID
ordersamount訂單金額(元)
orderscreated_at下單時間

8.2 上傳與組態

  1. 進入數據源详情 → 「增強」Tab
  1. 上傳 Excel 檔案
  1. 組態 列映射
欄位說明
表名字典中哪一列是表名
欄位名字典中哪一列是欄位名
欄位註解字典中哪一列是欄位註解
  1. (可選)工作表名稱:留空則使用第一個工作表
  1. 點击「開始處理」

8.3 查看增強結果

處理完成後:

  • 數據卡片中對應欄位的註解會被更新
  • 「庫表」Tab 中欄位的描述列會显示新的註解
  • 後续問數時系統會優先使用增強後的註解
💡 批處理建議:字典列名支持 A/B/C/E 等 Excel 列號表示,也支持下拉選擇具體列名。

九、數據质檢

OntiCards 內置完整的數據質素檢查能力。

9.1 規則庫管理

進入「數據质檢」頁面:

數據质檢
數據质檢

顶部指標卡

  • 規則庫總數
  • 啟用的規則數
  • 质檢報告總數
  • 当前質素評分

质檢總覽

環形圖展示「活跃規則」「啟用規則」「總規則數」的占比,以及 当前質素評分(如 81.1 分)。

質素維度評估

按維度展示得分,包括:

  • 有效性(如 86.9)
  • 一致性(如 77.8)

規則類別型分布:多物件檢查、一致性檢查、唯一性檢查、日期檢查 等

關鍵發現:列出問題最严重的欄位

快捷入口

  • 新建規則庫
  • 創建規則
  • 查看報告
  • 整庫報告

最近報告:展示历史報告卡片,可點击查看详情。

規則庫管理頁(點击「規則庫」Tab 進入):

規則庫管理
規則庫管理

頁面采用 左右双欄布局

  • 左侧「規則庫」列表:显示所有規則庫(如「浙報-有道理-測試數據源」),含數據源/Schema 識別、規則數量與運行狀態
  • 顶部篩選:按「全部數據源」「全部程度」過濾
  • 新增規則按鈕:唤起創建規則弹窗
  • 規則列表(每行一條規則):展示規則名、程度(严重/警告)、AI 解析、作用範围(schema.table + 列名)、條件表达式(自動轉 SQL 預覽)、啟用/編輯/刪除三件套操作
  • 右侧「质檢規則庫」详情
💡 同一條規則可被多個數據源復用。規則級別可設置為「严重(critical)」「警告(warning)」两種,决定問題严重程度與報告評分。

9.2 創建质檢規則

步驟 1:創建規則庫

  1. 在「數據质檢」首頁點击「新建規則庫」
  • 規則庫名稱
  • 關联的數據源
  1. 填寫:
  1. 保存後即可在規則庫內添加規則

步驟 2:添加規則

支持三種創建方式:

創建規則弹窗
創建規則弹窗

  • 手動專家模式:完全手工填寫規則名、目標表/列、SQL 條件(适合復雜業務規則)
  • 自然語言模式:用一句話描述需求,AI 自動生成 SQL 與組態(推薦,門槛最低)
  • 單條模板建規則:从預設模板(空值檢測/一致性/唯一性/範围 等)挑選並填入參數

方式一:模板模式

从預設模板中選擇(最快捷):

  • 邮箱格式校驗
  • 手機號格式校驗
  • 身份證號校驗
  • 金額非空檢查
  • 日期範围檢查
  • ...

方式二:AI 模式(推薦)

用自然語言描述規則,系統自動生成組態:

  • "檢查訂單表的金額是否大于 0"
  • "檢查用戶表手機號是否為 11 位"
  • "檢查邮箱格式是否正確"

方式三:手動模式

直接組態規則參數:

規則類別型适用
非空檢查必填欄位不能為空
唯一性檢查主鍵/唯一索引欄位
格式校驗邮箱、手機號、身份證
範围檢查數值/日期範围
枚举值檢查欄位值必須在指定集合內
正則匹配自定义正則
跨表比對外鍵引用一致性

9.3 執行质檢

  1. 進入數據源 → 「數據质檢」或顶層「數據质檢」
  1. 選擇規則庫或指定規則
  1. 點击「開始執行」
  1. 等待執行完成(根據數據量大小耗時不同)
  1. 在執行結果頁查看详細情况
  1. 可下載质檢報告物理檔案

執行质檢\_1
執行质檢\_1

執行质檢\_2
執行质檢\_2

執行质檢\_3
執行质檢\_3

執行质檢\_4
執行质檢\_4

9.4 質素評分

| 等級 | 分數範围 | 說明 | | -- | ------- | ------- | | 優秀 | ≥ 95 | 數據質素非常好 | | 良好 | 85 - 95 | 數據質素良好 | | 一般 | 70 - 85 | 有改進空間 | | 较差 | 60 - 70 | 問題较多 | | 差 | < 60 | 严重問題 |

評分依據:通過率、平均問題數、問題严重程度加權計算。

9.5 质檢報告

质檢報告
质檢報告

報告列表頁展示所有历史報告卡片,每张卡片显示:

  • 報告 ID
  • 质檢物件(數據源、Schema)
  • 平均得分
  • 已導出 / 未導出狀態
  • 已查/總表數
  • 起始/截止時間
  • 操作按鈕:查看详情、下載、刪除

報告详情包含:

  • 各維度評分明細
  • 每张表的健康分
  • 每條規則的檢查結果(通過/失败/異常數)
  • 失败樣本(前 N 條)

單條報告详情頁

质檢報告详情
质檢報告详情

進入單條報告後可见:

  • 報告頭:质檢結果評分、生成時間,並提供「生成檔案」「下載報告檔案」「刷新」「刪除」4 個全局操作
  • 質素評分卡(左上):環形進度展示「良好(81.1)」等級,含總規則數(8)、通過數(0)、失败數(8)、檢測表數(0)
  • 規則庫质檢執行明細:每條規則一行,欄位含狀態、規則名稱、類別型、級別(警告/严重)、目標表/列、通過/總數、失败數、详情入口
  • 历史導出檔案:報告底部保留历史下載檔案,可重新下載或刪除

規則執行明細(點击「详情」展開):

規則執行明細
規則執行明細

單條規則的執行详情展示 3 大區塊:

區塊內容
執行結果總記錄數、失败數(饼圖化)
執行的 SQL可一鍵復製或重新生成,右侧显示耗時(如 13ms
失败樣例命中條件 + 欄位(quantity 死否表达式 quantity >= min_stock)+ 樣例數據(最多前 N 條,含完整欄位值)

下載報告檔案(點击「下載報告檔案」按鈕生成):

下載報告
下載報告

下載的報告為 Markdown 格式,按 5 個章節 組織:

  1. 基本資訊 — 報告 ID / 目標數據源 / 時間範围
  1. 質素概覽 — 整體評分、通過率、問題數
  1. 執行明細(基于規則庫) — 各規則的失败情况
  1. 失败樣例明細 — 具體命中行
  1. 智能總結 — AI 自動分析本次质檢的 失效規則详情(按失效率排序)、失效規則類別型分布典型問題樣本(如時間倒挂、金額異常、身份不一致等)、根因分析(如前端錄入缺乏強校驗、历史數據手工修改未做一致性檢查等)

十、監控中心

監控中心是系統的可觀測性仪表盘,提供系統運行監控、數據分析和性能監控的全方位能力,覆盖查詢量、成功率、Token 消耗、耗時與數據源健康等關鍵指標。

10.1 監控總覽

監控中心
監控中心

顶部指標卡(過去 24 小時):

指標說明
總查詢量当日累計查詢次數及環比
今日查詢当日 0 點至今的查詢數
24小時 Token24 小時內消耗的 Token
近 30 天總成本折算成金額(元)

历史對比分析

  • 今日 vs 昨日:查詢量、Token、平均耗時
  • 本周 vs 上周:查詢量、Token、平均耗時

24 小時訪問熱度

折線圖展示 0-23 點的查詢量分布。

性能指標

  • 平均耗時
  • 成功數
  • 錯誤數
  • 超時數

查詢狀態分布

成功 / 錯誤 / 超時 三色比例。

查詢質素指標

  • 平均返回卡片數
  • 平均候選卡片數
  • Top10 分數
  • 平均結果數
  • 零結果率

查詢次數趨勢:每日查詢量柱狀圖

最近 7 天趨勢表

日期查詢量成功率Token成本
2026-08-131100%14.2K¥0.04
...............

10.2 趨勢分析

趨勢分析
趨勢分析

  • 按時間範围(7 天 / 14 天 / 30 天)切換
  • 顶部數據概覽(共 6 张卡):總查詢數、總 Token、總成本、平均成功率、日均查詢、日均 Token、缺失天數
  • 周環比:查詢量、Token、成本 vs 上周
  • 月環比:查詢量、Token、成本 vs 上月
  • 環比分析
  • 峰值谷值分析:自動識別本周期內查詢量最高 / 最低日及對應工作日
  • 周/周末分布:周一~周日每日查詢量與工作日平均/周末對比
  • 高峰時段 TOP 2:統計峰值查詢所在的小時段(如 10:00-11:00 / 11:00-12:00)
  • 查詢量趨勢:堆叠柱狀圖(成功 / 失败 / 超時)
  • Token 消耗趨勢:双線圖(Embedding / LLM)
  • 详細數據表:含日期、查詢量、成功率、Token、成本、平均耗時,支持下載 CSV

10.3 實時監控

實時監控
實時監控

  • 顶部 3 卡(最近 1 小時):查詢數 / 平均耗時 / Token 消耗
  • 当前系統狀態:連接成功數 / 連接失败數 / 正常運行徽標
  • QPS 吞吐量監控:当前 / 1 分钟均 / 5 分钟均 / 15 分钟均 / 峰值
  • 每分钟查詢量:折線圖實時滚動展示(暫無數據時显示「暫無數據」占位)
  • 錯誤告警:錯誤率、超時率(均為 0 時显示綠色「運行狀態良好」提示)
  • 數據源健康狀態:標記近期無數據源使用情况,建議查詢以生成數據源查詢請求
  • 最近查詢樣例:滚動展示最近 1 小時內的查詢工作
  • 自動刷新

10.4 性能分析

性能分析
性能分析

  • 按時間範围(7 天 / 14 天 / 30 天)切換
  • 各階段平均耗時卡(5 卡):向量檢索、重排序、LLM 生成 SQL、SQL 執行、總計
  • 延迟時間分布:0-500ms / 500ms-1s / 1s-2s / 2s-5s / 5s-10s / >10s 共 6 檔
  • 各環節耗時占比:水平條形圖展示各階段耗時占比 + 较上周期涨跌
  • 查詢復雜度分布:簡單查詢(單表)/ 中等查詢(多表)/ 復雜查詢(跨庫)占比
  • 性能趨勢對比:總平均耗時 vs 上周期 + 各階段環比(向量檢索 -43.1% 等)
  • 每日趨勢:按日展示平均耗時
  • 數據源性能對比:每行的查詢數、平均耗時、最小/最大耗時、SQL 執行
  • 查詢耗時 TOP 10:列出 Top 10 慢查詢(含問題、耗時、Token、時間)

十一、成本管理

「成本管理」模塊提供 Token 价格規則組態成本統計能力,幫助實時跟踪查詢成本消耗、控製預算並優化模型使用策略。

11.1 Token 价格組態

支持為不同模型組件組態單价:

組態項預設值說明
Embedding 价格0.0005 元 / 千 Token向量檢索成本
Rerank 价格0.0008 元 / 千 Token重排序成本
LLM 輸入价格0.0024 元 / 千 TokenSQL 生成輸入
LLM 輸出价格0.0096 元 / 千 TokenSQL 生成輸出
💡 實际單价以你采購的 LLM 服務為準,可在「系統與帳戶 → 模型組態」調整模型與對應單价。

token价格
token价格

11.2 成本統計

顶部指標卡

  • 近 30 天總成本
  • 30 天總 Token
  • 今日總成本
  • 24 小時成本

環比變化:查詢量、Token、回應時間

查詢狀態分布

24 小時 Token 消耗分布

按組件分類別(Embedding / Rerank / LLM)

每日成本趨勢(近 7 天):

横向條形圖展示每日成本,右侧显示占比與金額。

24 小時查詢分布

24 小時查詢量分布柱狀圖(按 30 分钟粒度)

數據源使用統計

每個數據源消耗的 Token 與成本占比。

成本管理
成本管理

⚠️ 成本說明:成本為預估值,仅供參考。實际費用以云厂商帳單為準。

十二、系統與帳戶

進入「系統與帳戶」/「設置」:

系統設置
系統設置

設置中心包含 7 個子模塊:

Tab用途
帳戶個人基本資訊、修改密碼
用戶管理管理系統用戶(仅管理員可见)
API 密鑰管理第三方調用的 API Key
模型組態組態 AI 模型(基础對話、向量化、重排序)
數據保密敏感欄位脱敏組態
鉴權日誌登入與操作稽核日誌
系統設置系統級組態

12.1 帳戶資訊

帳戶資訊
帳戶資訊

  • 頭像、昵稱
  • 邮箱(用于找回密碼)
  • 修改密碼
  • 「保存修改」提交

12.2 用戶管理

用戶管理
用戶管理

仅管理員可见。提供:

  • 用戶列表:用戶名、昵稱、角色、狀態、最後登入時間
  • 搜索:按用戶名、昵稱、邮箱
  • 添加用戶:右上角「添加用戶」按鈕
  • 編輯用戶:每行末尾的「編輯」圖示
  • 刪除用戶:每行末尾的「刪除」圖示
  • 分頁:共 N 條記錄,可翻頁

角色包括:

  • 管理員:拥有所有權限
  • 普通用戶:受限的功能訪問

12.3 API 密鑰

API 密鑰
API 密鑰

用于第三方系統集成。提供:

  • API 密鑰列表
  • 狀態显示(啟用 / 停用)
  • 「創建密鑰」生成新的 API Key
  • 復製密鑰值
  • 啟用/停用、刪除密鑰

使用方式

curl -X POST https://your-host/api/v1/query \
  -H "Authorization: Bearer ak_xxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "question": "查询最近 7 天的订单量",
    "data_source_id": 1
  }'
🔐 安全提示:請妥善保管 API 密鑰,定期轮換。如發現泄露,立即停用並重新創建。

详細介面文檔:API 介面文檔

12.4 模型組態

模型組態
模型組態

OntiCards 依赖 3 類別 AI 模型:

模型類別型作用組態欄位
基础對話模型負責自然語言理解、SQL 生成名稱、API 兼容地址、API Key
向量化模型把文本轉為向量用于檢索名稱、API 兼容地址、API Key
重排序模型優化檢索結果排序名稱、API 兼容地址、API Key

組態步驟

  1. 選擇模型類別型卡片
  • 名稱(如 qwen3.7-max
  • 兼容 OpenAI 的 API 地址(如 https://dashscope.aliyuncs.com/compatible-mode/v1
  • API Key
  1. 填寫:
  1. 測試連接
  1. 啟用
✅ 系統支持 任意 OpenAI 兼容介面,可對接阿裡云通义、DeepSeek、OpenAI、Azure OpenAI、Anthropic 等。

12.5 數據保密

用于組態 敏感欄位脱敏

  • 選擇數據源
  • 選擇需要脱敏的欄位
  • 選擇脱敏策略(部分掩碼、哈希、置空)
  • 應用到問數結果展示

脱敏後的欄位:

  • 在查詢結果中按規則展示
  • 在導出檔案中按規則展示
  • 不影響原始資料庫

12.6 鉴權日誌

記錄所有用戶操作:

  • 登入 / 登出
  • 數據源新增 / 修改 / 刪除
  • 規則新增 / 執行
  • API 調用
  • 敏感操作

每條記錄包含:用戶、時間、IP、操作類別型、物件、結果。

12.7 系統設置

系統設置
系統設置

系統級組態:

  • 預設主題(淺色 / 深色)

十三、數據安全

OntiCards 在多個層面保障數據安全:

13.1 訪問隔离

  • 用戶與數據源是 多對一 關係
  • 每位用戶只能訪問自己添加的數據源
  • 不同用戶之間的數據源互相不可见
  • 工作空間與術語庫按用戶隔离

13.2 只讀保護

  • 系統 只執行 SELECT(查詢)操作
  • 不提供 任何 INSERT / UPDATE / DELETE / DROP / ALTER 的入口
  • 所有生成的 SQL 都經過安全校驗
  • 危險關鍵詞(如 DROPTRUNCATE)被強製過濾

13.3 密碼保護

  • 資料庫密碼使用加密演算法(AES-256)存储
  • 密碼 不會 出現在界面、查詢結果、日誌中
  • 密碼在傳輸過程中通過 HTTPS 加密
  • 切換數據源時密碼自動遮罩显示

13.4 操作稽核

  • 所有用戶的關鍵操作被記錄
  • 包含:時間、用戶、IP、操作類別型、物件、結果
  • 稽核日誌不可篡改(只追加)
  • 支持導出與第三方 SIEM 對接

13.5 敏感脱敏

  • 欄位級脱敏策略
  • 問數結果按策略脱敏
  • API 返回結果按策略脱敏
  • 不影響原始數據存储

13.6 SSO 與 MFA

  • 支持 JWT Token 模式 SSO
  • 可對接企業級身份系統(LDAP、AD、OAuth2.0、OIDC、CAS)
  • 可啟用多因素認證(MFA)
🔐 JWT 模式 SSO 的完整對接流程见 第十五章 SSO 單點登入對接(JWT 模式)

十四、API 與第三方集成

OntiCards 通過 REST API 暴露核心能力,支持與以下系統集成:

  • AI 智能體 / Agent:把"自然語言問數"能力嵌入到 AI Agent
  • RPA / 自動化平台:定時自動問數並推送結果
  • BI 平台:作為 BI 的「智能問數」增強層
  • 企業微信 / 钉钉 / 飞書機器人:让用戶在 IM 中直接問數據
  • 自研業務系統:把"問數據"能力嵌入到業務後台

14.1 鉴權方式

使用 API Key 進行鉴權:

Authorization: Bearer ak_xxxxxxxxxxxxxxxx

14.2 核心介面

介面方法用途
/api/v1/queryPOST提交自然語言問題
/api/v1/query/{id}GET查詢執行結果
/api/v1/datasourcesGET列出數據源
/api/v1/termsGET列出業務術語
/api/v1/healthGET健康檢查

示例:自然語言問數

curl -X POST https://your-host/api/v1/query \
  -H "Authorization: Bearer ak_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "question": "查询最近 30 天的订单量",
    "data_source_id": 1
  }'

回應

{
  "query_id": "q_abc123",
  "status": "success",
  "sql": "SELECT DATE(created_at) AS day, COUNT(*) FROM orders WHERE created_at >= NOW() - INTERVAL 30 DAY GROUP BY day",
  "data": [
    {"day": "2026-07-27", "count": 1234},
    {"day": "2026-07-28", "count": 1456}
  ],
  "duration_ms": 412,
  "tokens": 1432
}

详細 API 文檔:API 介面文檔

14.3 Webhook

支持組態 Webhook,在以下事件触發時推送通知:

  • 查詢完成
  • 质檢報告生成
  • 數據源異常

十五、SSO 單點登入對接(JWT 模式)

当企業已有自己的用戶體系(門戶、OA、業務系統)時,可通過 JWT 模式 SSO 單點登入 與 OntiCards 打通用戶體系:用戶在己方系統完成登入後,無需二次輸入帳號密碼,即可直接跳轉進入 OntiCards。

🔐 本章面向負責對接的開發人員。SSO 組態完成後,終端用戶的登入體驗與普通登入一致。

15.1 什麼是 JWT Token

JWT(JSON Web Token)是一種開放標準(RFC 7519),用于在各方之間安全地傳輸資訊。JWT 由三部分組成,用點號分隔:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InpoYW5nX3NhbiIsInVzZXJfaWQiOiJTWVNfVVNFUl8wMDEifQ.signature
|______________|.|__________________________________________|.______________|
    Header      |              Payload                      |   Signature
     头部        |              用户数据                      |     签名
部分名稱作用示例內容
第一部分Header(頭部)聲明演算法和類別型{"alg":"HS256","typ":"JWT"}
第二部分Payload(負載)存放實际的用戶數據{"username":"zhang_san","user_id":"001",...}
第三部分Signature(簽名)用密鑰對前两部分簽名,確保不被篡改SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

15.2 整體流程

1. 客户后端生成 JWT Token
   ↓
2. 拼接 SSO 登录 URL(带上 token 和 redirect_url)
   ↓
3. 用户浏览器跳转到 OntiCards 的 SSO 接口
   ↓
4. OntiCards 验证 JWT、创建/关联用户、生成自己的 Token
   ↓
5. 浏览器跳转到 redirect_url,带上 OntiCards 的 Token
   ↓
6. 客户前端接收 Token,登录完成
💡 用戶自動關联:首次通過 SSO 訪問時,OntiCards 會根據 user_id + source 查找已存在用戶;新用戶自動創建,老用戶直接關联登入,無需人工開通帳號。

15.3 組態清單

對接前需要準備以下組態:

組態項說明示例值
SSO 共享密鑰用于 JWT 簽名,两端必須一致K7x#9mP$2nL5@qR8(建議 64 位以上隨機字串)
OntiCards API 地址OntiCards 的 SSO 登入介面地址https://api.onticards.com
回調跳轉地址登入成功後跳轉的前端頁面https://frontend.onticards.com/overview

服務端組態:在 OntiCards 服務端 .env 中組態共享密鑰(详见部署指南):

SSO_SECRET_KEY=客户提供的共享密钥

15.4 Token 生成详解

Token 生成必須由客戶後端完成(共享密鑰不能暴露在前端)。

① Header(頭部):固定格式,聲明使用 HS256 演算法,然後進行 Base64URL 編碼:

{
    "alg": "HS256",
    "typ": "JWT"
}

② Payload(負載/用戶數據):包含要傳递的用戶資訊:

欄位類別型必填說明
usernamestring用戶的唯一識別,不能為空
user_idstring客戶系統中的用戶 ID,不能為空
nicknamestring用戶昵稱
emailstring用戶邮箱
sourcestring来源識別,用于區分不同系統,預設 default
iatnumberToken 簽發時間(Unix 時間戳)
expnumberToken 過期時間(Unix 時間戳),建議設置為 5 分钟後

③ Signature(簽名):將前两部分用點號連接後,用共享密鑰簽名:

签名字符串 = Header_base64 + "." + Payload_base64
签名 = HMAC-SHA256(签名字符串, 共享密钥)

最終的 JWT Token

JWT Token = Header_base64 + "." + Payload_base64 + "." + Signature_base64

15.5 各語言示例

Python

import jwt
from datetime import datetime, timedelta, timezone

SECRET_KEY = "your_shared_secret_key"  # 与 OntiCards 服务端共享的密钥

payload = {
    "username": "zhang_san",
    "user_id": "SYS_USER_001",
    "nickname": "张三",
    "email": "zhangsan@example.com",
    "source": "your_app",
    "iat": datetime.now(timezone.utc),
    "exp": datetime.now(timezone.utc) + timedelta(minutes=5)  # 5 分钟后过期
}

token = jwt.encode(payload, SECRET_KEY, algorithm="HS256")
print(token)

Java(jjwt 0.12+):

String token = Jwts.builder()
    .claims(Map.of(
        "username", "zhang_san",
        "user_id", "SYS_USER_001",
        "nickname", "张三",
        "email", "zhangsan@example.com",
        "source", "your_app"))
    .issuedAt(new Date())
    .expiration(new Date(System.currentTimeMillis() + 5 * 60 * 1000))
    .signWith(Keys.hmacShaKeyFor(secretKey.getBytes(StandardCharsets.UTF_8)))
    .compact();

Node.js

const jwt = require('jsonwebtoken');

const token = jwt.sign({
    username: 'zhang_san',
    user_id: 'SYS_USER_001',
    nickname: '张三',
    email: 'zhangsan@example.com',
    source: 'your_app'
}, 'your_shared_secret_key', {
    algorithm: 'HS256',
    expiresIn: '5m'  // 5 分钟后过期
});
⚠️ 生產環境 Token 生成必須在後端完成,共享密鑰絕不能出現在前端代碼中。

15.6 拼接登入 URL 並跳轉

構造 URL

{OntiCards API地址}/sso/login?token={JWT Token}&redirect_url={回调地址}

示例

https://api.onticards.com/sso/login?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...&redirect_url=https://frontend.onticards.com/overview

跳轉代碼(生成 Token 後執行跳轉,推薦直接跳轉):

const ssoUrl = `${API_BASE}/sso/login?token=${encodeURIComponent(token)}&redirect_url=${encodeURIComponent(FRONTEND_URL)}`;
window.location.href = ssoUrl;

15.7 回調接收 Token

登入成功後,瀏覽器會跳轉到:

https://frontend.onticards.com/overview?access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

前端接收 Token 的代碼

// 从 URL 获取 access_token 参数
function getAccessToken() {
    return new URLSearchParams(window.location.search).get('access_token');
}

const token = getAccessToken();
if (token) {
    localStorage.setItem('access_token', token);
    // 清理 URL 中的 token 参数(防止 token 泄露)
    window.history.replaceState({}, document.title, window.location.pathname);
}

// 后续 API 请求时在 Header 中携带 Token
fetch('/api/your-endpoint', {
    headers: { 'Authorization': 'Bearer ' + localStorage.getItem('access_token') }
});

15.8 錯誤碼說明

HTTP 狀態碼error 欄位原因
400缺少token参数URL 中沒有傳 token
400token中缺少必要的用户信息Payload 中 username 或 user_id 為空
401token已过期Token 的 exp 已過期
401token无效簽名驗證失败(密鑰不匹配或內容被篡改)

15.9 測試驗證

本地測試頁面

  • SSO 測試中心http://localhost:9103/static/sso_test.html
  • 回調測試頁面http://localhost:9103/static/sso_callback.html

對接檢查清單

  • [ ] 生成 JWT Token(驗證三部分結構:Header.Payload.Signature)
  • [ ] Payload 中包含必填欄位:username、user_id、exp
  • [ ] Token 使用 HS256 演算法簽名
  • [ ] 拼接 SSO 登入 URL 並測試跳轉流程
  • [ ] 驗證回調頁面能接收 access_token
  • [ ] 確認 Token 有效期(建議 5 分钟)
  • [ ] 生產環境使用強密鑰,不要使用示例密鑰

十六、常见問題(FAQ)

Q1:登入後看不到數據源?

原因

  • 你是新用戶,還沒有添加過數據源
  • 或管理員還未授權

解决

  • 在「工作空間」點击「添加新數據源」
  • 或联系管理員授權

Q2:數據卡片生成很慢?

原因

  • 數據源表數量大
  • 欄位數多
  • LLM 回應慢

建議

  • 等待系統非同步完成(可在「工作」Tab 查看進度)
  • 調整 LLM 基础對話模型為更快的模型
  • 大表可分批刷新

Q3:問數結果不準?

按以下顺序排查:

  1. 數據卡片質素:表與欄位的描述是否準確
  1. 業務術語庫:是否定义了你問題中的業務概念
  1. 數據盘點:表之間的關係是否已盘點
  1. 提問方式:是否表达得足够具體
  1. 查看「查詢說明」:系統如何理解你的問題

Q4:部分條件被忽略?

系統在解析時無法在当前資料庫中識別某些條件。會:

  • 執行能識別的條件
  • 在結果中明確標註「被忽略的條件」及原因
  • 提示你如何补充(如增加數據卡片)

Q5:查詢速度慢?

建議

  • 增加時間範围限製
  • 加上必要的篩選條件
  • 避免一次性查詢過多數據
  • 联系 DBA 優化相關表索引

Q6:Token 消耗大?

建議

  • 簡化問題描述
  • 减少不必要的历史對話
  • 切換到更小更快的模型
  • 在「系統與帳戶 → 模型組態」中調整

Q7:API Key 泄露了怎麼辦?

立即處理

  1. 在「API 密鑰」中停用該密鑰
  1. 創建新密鑰
  1. 更新所有使用方
  1. 檢查「鉴權日誌」看是否有異常調用

Q8:想增加新資料庫類別型?

  • 開源版支持的資料庫见 §3.3
  • 商業版可定製更多資料庫

十七、获取幫助

文檔

文檔連結
快速開始首次使用流程
部署指南部署指南
API 介面文檔API 介面文檔
FAQFAQ
問題排查問題排查
更新日誌changelog

線上资源

  • GitHub Issues:提交 Bug 或功能請求
  • 產品官網
  • 技術博客
  • 社區论坛:扫碼加入用戶交流群

商業支持

需要企業級支持、定製開發、私有化部署、行列級權限、SSO 增強等高級能力,請联系商業團隊。


本文檔最後更新時間:2026 年 8 月