指南OneMux

使用人工核准與 OpenAI 相容 API 建立 n8n 文件問答工作流程

實用的 n8n 設計指南:打造具備來源標註、選擇性人工核准功能,並視相容情況連接 OneMux OpenAI 風格模型端點的文件問答流程。

文章目錄

決策:應在哪個環節要求核准?

進行文件問答時,不要只因為流程中有 AI 模型就加入人工核准。應在工作流程可能存取敏感資料,或發布需要審核的答案時,才設置核准步驟。

實用的 n8n 設計如下:

  1. 接收問題。
  2. 請 AI Agent 準備文件搜尋請求。
  3. 若語料敏感、查詢可能揭露受限資料,或搜尋涉及營運成本,則在搜尋工具執行前暫停並等待人工核准。
  4. 擷取附有來源中繼資料的段落。
  5. 要求模型只根據這些段落回答。
  6. 傳回附有來源參照的答案,或將草稿送交第二次核准,再發布答案。

這樣能區分三種常被混為一談的決策:問題是否適當、檢索操作是否適當,以及生成的答案是否已準備好傳送。

n8n 說明了如何對連接至 AI Agent 的特定工具進行人工審核。啟用審核後,工作流程會暫停,審核者可以核准或拒絕待執行的工具呼叫。支援的行為與核准管道詳情,請參閱 n8n 人在迴路審核文件。

先決條件

你需要:

  • 一個包含 AI Agent 與模型連線的 n8n 工作流程。
  • 可搜尋的文件來源,例如向量資料庫、資料庫或內部搜尋服務。確切的連接器取決於應用情境,引用的 n8n 頁面並未指定。
  • 能同時傳回文字與文件中繼資料的檢索工具。
  • 在 n8n 中設定好的核准管道。文件列出的可用管道包括 Chat、Slack、Discord、Telegram、Microsoft Teams、Gmail、WhatsApp Business Cloud、Google Chat 和 Microsoft Outlook。
  • OpenAI 相容 API 端點的存取權。OneMux 透過單一 OpenAI 相容 API 提供領先的 AI 模型;請參閱 OneMux 快速入門與 API 文件,了解最新的端點與驗證設定說明。

相容性需視實際情況而定。連接 n8n 前,請確認所選端點支援 n8n 節點或 HTTP 請求所使用的請求格式、模型識別碼、驗證方式、串流行為、工具呼叫及參數。本文並未宣稱已測試任何特定 OneMux 模型或 n8n 設定。

建議的 n8n 工作流程架構

將工作流程分成五個邏輯階段:

1. 接收並標準化問題

使用你選擇的 n8n 入口接收問題,並將其標準化為精簡物件,內容包括使用者問題、使用者或工作區情境,以及可選的文件範圍篩選條件。

不要將未經限制的使用者文字直接放入系統指令。應將問題當作資料,並另行定義代理程式的行為。如果工作流程支援租戶或部門界線,請將這些界線作為受控欄位傳給檢索工具,而不是讓模型自行編造。

2. 加入文件搜尋工具

將搜尋工具連接至 AI Agent。工具輸入應明確且範圍有限,例如:

{
  "query": "string",
  "document_scope": "string or controlled value",
  "max_results": "integer"
}

搜尋結果應保留足夠的中繼資料,以便產生有用的引文:

{
  "text": "Approved passage from the document",
  "title": "Document title",
  "url": "Document URL or stable identifier",
  "page": "Page number when available",
  "section": "Section heading when available",
  "chunk_id": "Stable passage identifier"
}

上述欄位名稱是實作範例,並非宣稱這是 n8n 必要的結構描述。請依照所用的連接器或服務調整。關鍵在於可追溯性:答案生成器必須同時取得段落及其來源。

3. 在選定工具周圍設置人工審核

開啟 AI Agent 的 Tools 面板,找到 Human review 區段,選擇核准管道,並將文件搜尋工具連接至該審核步驟。在 n8n 中設定所選管道的憑證與選項。

審核者收到的訊息可顯示預備執行的操作及其參數。n8n 文件說明可使用 $tool.name 和 $tool.parameters 變數。實用的訊息範例如下:

The AI wants to use {{ $tool.name }} with these parameters:
{{ JSON.stringify($tool.parameters, null, 2) }}

Approve only if the query and document scope are appropriate for this request.

當審核者需要判斷範圍是否有風險時,這種做法特別有用,例如請求看起來可能要搜尋其他團隊的文件。對一般公開文件而言,每次搜尋都要求核准可能造成不必要的阻礙。這種情況下,可讓檢索自動執行,並在負責發布或傳送最終答案的另一個工具上設置核准。

4. 連接 OpenAI 相容模型端點

依照服務提供者的文件,設定模型層的端點與憑證。使用 OneMux 時,請先參閱 OneMux 快速入門,選擇支援 n8n 節點所需功能的模型,並確認模型識別碼與請求參數。

一般請求格式可能如下,但這只是示意,並非經過測試的 OneMux 設定範例:

curl https://api.example-provider.invalid/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "YOUR_MODEL_ID",
    "messages": [
      {"role": "system", "content": "Answer only from supplied document passages."},
      {"role": "user", "content": "What does the document say about retention?"}
    ]
  }'

請依照服務提供者最新文件中的資訊,替換佔位用的 URL、金鑰處理方式及模型 ID。不要在工作流程匯出檔或使用者可見的核准訊息中暴露憑證。如果 n8n 的模型節點要求端點不支援的參數,請改用相容的設定;只有在符合安全與回應剖析需求時,才採用以 HTTP Request 為基礎的設計。

5. 在答案提示中要求來源標註

將檢索到的段落放在清楚界定的情境內容中,並要求模型為每一項實質主張附上引文。例如:

You answer questions about the supplied documents.

Rules:
- Use only the passages in DOCUMENT_CONTEXT.
- If the passages do not support an answer, say that the documents do not establish it.
- Do not create titles, URLs, page numbers, or quotations.
- Cite each factual answer using the supplied title and page, section, URL, or chunk ID.
- Distinguish a direct statement from an inference.

DOCUMENT_CONTEXT:
{{ JSON.stringify($json.documents) }}

QUESTION:
{{ $json.question }}

確切的運算式語法取決於前置 n8n 節點如何整理資料。請將此提示視為範本,而非可直接匯入的工作流程。

核准設計:檢索或發布

有兩個合理的核准時機:

核准時機適用情境權衡之處
文件搜尋前敏感儲存庫、跨團隊存取、成本高昂的搜尋每次核准的搜尋都會增加審核等待時間
答案發布前對外客服回覆、受監管內容、重大影響決策搜尋已經發生,因此仍須落實存取控制

高風險工作流程也可以同時採用兩個核准點。n8n 文件指出,審核可以套用至連接 AI Agent 的所有工具,也可以只套用至選定工具,因此支援這種選擇性設計。文件也提到,核准可以透過不同於主要互動的管道進行;例如,面向使用者的聊天可搭配在 Slack 中進行的審核者核准。

系統提示與拒絕處理

告知代理程式哪些工具需要核准,以及拒絕代表什麼。如果審核者拒絕搜尋,代理程式不得改用其他措辭重試相同呼叫,也不得宣稱已找到證據。它應說明該查詢未獲核准;如果有更明確且允許的替代方式,也應提出。

精簡的政策範例如下:

The document_search tool requires human approval. If it is denied, do not call it again for the same request. Tell the user that the lookup was not approved. Never answer from memory when document evidence is required.

這符合 n8n 文件的建議:應在系統提示中說明工具與人工審核的行為,讓代理程式能適當處理遭拒的呼叫。

疑難排解與限制

核准請求缺少有用的情境資訊

確認工具輸入使用明確欄位,且審核訊息包含 $tool.name 和 $tool.parameters。避免將重要範圍資訊藏在難以辨識的字串中。

缺少引文

檢查檢索輸出進入模型前的內容。如果映射節點移除了標題、URL、頁碼、章節或區塊識別碼,模型就無法可靠地還原這些資訊。也要指示模型拒絕提出缺乏根據的主張。

端點拒絕請求

確認基礎 URL、驗證標頭、模型 ID、工具呼叫支援、上下文限制及參數名稱。OpenAI 相容不代表完全相同:必須同時依照 n8n 的請求格式與服務提供者的 API 文件確認相容性。

拒絕核准後回應不自然

在系統提示中加入明確的拒絕處理政策,並測試核准與拒絕兩種流程。n8n 將核准與取消列為不同結果;工作流程應分別處理,而不是假設工具一定會執行。

工作流程太慢

採用選擇性審核,不要核准每一次低風險搜尋。將核准保留給敏感檢索或發布,並在自己的環境中衡量營運影響。未經測試,不要假設模型速度、檢索品質或核准等待時間。

成本與營運規劃

在此情境中,OneMux 是模型存取途徑,而非 n8n 工作流程控制的替代品。選擇模型前,請查看最新的 OneMux 定價,並將輸入與輸出用量、檢索量、重複的核准嘗試,以及文件搜尋服務的任何費用納入考量。實際適用價格取決於所選模型與目前公布的條款;本文不指定費率,也不承諾可節省成本。

如需查看支出並了解模型選擇,請瀏覽 OneMux 模型目錄。請依照工作流程的實際需求選擇模型,尤其要確認是否需要結構化輸出或工具呼叫功能。

結論

穩健的 n8n 文件問答工作流程不只是將代理程式連接到模型,而是一條受控流程:檢索有權存取的段落、保留其中繼資料、在適當的工具邊界要求審核,並且只根據收到的證據生成附有引文的答案。

使用 n8n 進行流程編排與人工核准;若 OneMux 的文件化端點與參數符合你的設計,也可評估將其作為實用的 OpenAI 相容模型存取途徑。從小型語料開始,測試核准與拒絕流程,並將缺乏根據的主張、引文遺失及參數不相容視為工作流程故障,而非模型不可解釋的問題。

資料來源

常見問題

n8n 能否要求 AI Agent 在使用文件搜尋工具前先取得核准?

可以。n8n 文件所述的 Human review 功能可套用至連接 AI Agent 的特定工具。工作流程會暫停,透過已設定的管道送出核准請求,並且只有在獲得核准後才執行工具。

文件問答工作流程應如何標註資料來源?

每個檢索段落都應連同中繼資料傳回,例如文件標題、URL、頁碼、章節或穩定的區塊 ID。將這個合併物件傳給答案模型,並指示模型只能引用所提供的中繼資料。

是否所有 OpenAI 相容 API 都保證能與 n8n 搭配使用?

不保證。相容性取決於端點、驗證方式、模型識別碼、請求結構描述、工具呼叫行為、串流支援,以及 n8n 設定所需的參數。請依照服務提供者與 n8n 的最新文件確認這些細節。

應在檢索前核准,還是在傳送答案前核准?

若文件存取權或查詢範圍涉及敏感內容,請在檢索前核准。若主要風險在於對外傳送答案,請在發布前核准。高風險工作流程可同時設置這兩個核准點。

審核者拒絕工具呼叫時,應如何處理?

代理程式不應悄悄重試或捏造答案。它應說明該查詢未獲核准,並在適當時提出範圍更明確且允許的替代方式。請在系統提示中加入此行為。

相關文章