AI NEVER LATE. TRY LIC-KEE v1.0 ↗

TECHNICAL CONCEPT / AS-BUILT v1.0

模型唔係唯一核心。真正核心係控制層。

LIC-KEE 將「理解人話」、「官方知識」、「政策邊界」、「生成答案」同「驗證」分開,令每一層都可以獨立測試、替換同版本化。

01 / CORE PRINCIPLES

兩句說話,定義成套架構。

LLM understands and proposes.
Code validates and executes.
Knowledge Base = long-term portable asset.
LLM = replaceable component.

所以 LIC-KEE 唔會將所有責任塞落一個 system prompt。自然語言理解可以交俾 LLM,但牌照名稱、source、citation、部門權限、clarification 上限等高風險決定,要有 backend control。

02 / SYSTEM ARCHITECTURE

由一條問題去到 final answer,中間有八層。

01Conversation將自然語言轉成 confirmed / inferred / unknown / missing facts,保留 exact terms。
↓
02Controller只提出 ASK_CLARIFICATION / SEARCH_KB / OUT_OF_SCOPE,再交 deterministic code 驗證。
↓
03Policy控制官方牌照名稱、部門邊界、premises eligibility、clarification limit 同 human route。
↓
04KnowledgeChroma 保存可搬遷官方 Knowledge Base;Ollama 本地產生 embedding。
↓
05EvidenceRetrieval 結果先形成 Evidence Pack,再經 Evidence Gate 決定可唔可以 factual answer。
↓
06SynthesisAnswer LLM 只喺 evidence 同 policy 約束下整理自然語言答案。
↓
07ValidationCitation、claim、official-name 等再由 backend 驗證;唔俾模型自己擁有 source registry。
↓
08OperationsCandidate、promotion、rollback、audit、logs、frozen release 同 Controlled Pilot。

03 / CONVERSATION STATE

Multi-turn 唔係淨係保存 Chat History。

真正會影響牌照 route 嘅資料,需要抽成 canonical facts。State 明確分開:

  • confirmed — 使用者明確講過;
  • inferred_for_retrieval — 只可以幫搜尋,唔可以當成已確認事實;
  • unknown — 目前未知;
  • missing_decision_facts — 真正會改變下一步嘅 missing facts。

當新 material fact 出現,system 會重新 merge state,再 invalidate 舊 derived hypothesis,而唔係將新答案疊喺舊答案上面。

Latest explicit material fact wins.

04 / POLICY REGISTRY

Policy 唔應該只存在於 Prompt。

v1.0 將幾類高風險規則抽成獨立控制:

  • 官方牌照/許可證 canonical name whitelist;
  • bilingual aliases;
  • Department ownership / routing;
  • Premises eligibility;
  • Maximum public clarification = 3;
  • Human escalation route。

呢個設計令「模型生成得似唔似官方」唔再係唯一防線。

05 / KNOWLEDGE & RAG

Knowledge Base 同 Answer LLM 完全分離。

Active KBfehd_licensing_v5_candidate
Records3,089
Rollback KBfehd_licensing_v3 · 2,569 records
Vector DBChroma PersistentClient
Embeddingqwen3-embedding:0.6b via Ollama
Dimension1,024

Portability test 已證明 candidate Knowledge Base 可以 export / restore,而唔需要重新 download、OCR、chunk 或 re-embed 全部既有資料。

Answer Pipeline

Retrieve → Evidence Pack → Evidence Gate → LLM Synthesis → Citation / Claim Validation

06 / RELEASE & RUNTIME

v1.0 係真正 frozen release,而唔係另一個 UAT URL。

Host OSDebian 12 (gVisor guest)
CPUx86_64 / 4 logical CPU
RAM32 GiB
Python3.13.15
Node.js22.23.1
FrontendReact + Vite 7.1.7
BackendFastAPI 0.142.2 / Uvicorn 0.54.0
Vector DBChroma PersistentClient
Embeddingqwen3-embedding:0.6b via Ollama 0.34.0
Answer LLMOpenRouter / qwen/qwen3.7-flash
Process ManagerSupervisor 4.3.0.dev0
DockerNO

Frozen Baseline

  • Service:fehd-licji-v1
  • Release path:/home/workspace/fehd-rag/releases/licji-v1.0
  • Git tag:v1.0
  • Git commit:68728edcfd378de9510071b037447c831db8f280
  • Runtime hashes:11,974 / 11,974 MATCH
  • Production service:no reload / no dev watch

07 / SAFETY CONTROLS

「唔亂答」係由多個 control 一齊做到。

A

Evidence Gate

Evidence 唔夠,就唔應該生成 factual conclusion。

B

Official-name Whitelist

阻止模型作出聽落似官方、實際未核實嘅牌照名稱。

C

Department Boundary

可以解釋跨部門關係,但唔代其他部門作個案決定。

D

Clarification Limit

最多公開追問三次;之後回答已知部分或轉人工。

E

Non-destructive Validator

只 block / rewrite 有問題 span,唔因一個錯名刪晒 supported answer。

F

Human Escalation

仍然 unresolved 就正式轉人,而唔係 forcing a guess。