跳轉到主要內容

Documentation Index

Fetch the complete documentation index at: https://docs.shieldbase.ai/llms.txt

Use this file to discover all available pages before exploring further.

歡迎

歡迎來到 Shieldbase AI API 文件網站!我們的 API 提供直覺的端點,讓您能順暢地上傳文件、執行進階語意搜尋,並管理動態對話。請參考以下兩個主要工作流程,有效運用這些強大功能。

驗證

開始之前,請確保所有 API 請求皆包含下列三個標頭。這些標頭為所有請求的必要欄位,用於驗證並授權您對系統的存取:
  • client-id: 您的專屬用戶端識別碼。
  • private-key: 用於驗證您 API 呼叫的私鑰。
  • secret: 提供額外安全層的密鑰。
若要取得 client-idprivate-keysecret,請前往 https://app.sbai.cloud/ 並登入您的帳號, 或來信至 support@shieldbase.ai。取得這些憑證後, 您即可開始發送經驗證的請求。
請在您發送至 API 的每個請求中皆包含這些標頭。

Models API

透過 GET /external/models 端點取得可用於語意搜尋與對話管理等任務的模型清單。回應會回傳模型的陣列,每個模型都包含便於參照的 labelvalue

端點

GET /external/models

標頭

請務必在請求中包含下列標頭以進行驗證:
  • client-id: 您的專屬用戶端識別碼。
  • private-key: 用於驗證 API 呼叫的私鑰。
  • secret: 為您的請求提供額外安全層的密鑰。

回應

當請求成功時,回應會包含可用模型的陣列,每個模型以物件表示,具備下列屬性:
  • label: 模型的人類可讀名稱。
  • value: 模型的識別碼,於指定要使用的模型時使用。

回應範例

[
  {
    "label": "GPT-3.5",
    "value": "gpt-3.5"
  },
  {
    "label": "GPT4o",
    "value": "gpt4o"
  }
]

工作流程 1: 上傳與語意搜尋

此工作流程可讓您上傳文件,並對已上傳的檔案進行語意搜尋。這是兩階段的流程:先上傳您的文件,接著使用語意搜尋端點來取得所有相關內容。

步驟 1: 上傳文件

上傳文件

首先,使用我們的文件上傳 API 端點上傳一份或多份文件。這是流程的第一步,需以 multipart/form-data 請求的形式傳送檔案。請務必包含所有必要標頭,例如 client-idprivate-keysecret
要上傳一份或多份文件,請使用 PUT /external/upload 端點。這讓您可以上傳各種格式的檔案。您需要在表單資料中將檔案以二進位資料的方式包含進來,伺服器會處理這些檔案,以便後續啟用語意搜尋等功能。上傳成功後,伺服器會回傳確認訊息。

步驟 2: 執行語意搜尋

語意搜尋

上傳文件後,可以使用關鍵字或情境,透過我們的語意搜尋端點以語意方式取得文件及其內容。這幫助您根據內容與相似度尋找文件,讓檢索更輕鬆且更有效率。
文件上傳完成後,您可以使用 POST /external/semantic-search 端點,依指定的關鍵字或查詢取得內容。若有需要,還可以透過提供 context ID 進一步縮小搜尋範圍。此端點會回傳最相關的文件,讓您能輕鬆存取所需資訊。

工作流程 2: 對話管理

我們的對話管理 API 讓您能以程式方式開始、繼續並管理對話。對話流程從建立新對話開始,接著傳送訊息給該對話,並在需要時繼續對話。

步驟 1: 開始新對話

開始對話

透過傳送初始訊息給對話 API 來開始新的對話。此端點會建立新的對話 ID,用於追蹤該對話。
若要開始新的對話,請使用 POST /external/start-conversation 端點。您需要提供想用來開始對話的訊息。伺服器會回傳 conversation_idmodel,以及訊息、ner 數量、時間戳記等初始對話資訊。

Start Conversation 的回應範例

{
  "conversation_id": "<string>",
  "title": "<string>",
  "messages": {
    "id": "<string>",
    "text": "<string>",
    "redacted": "<string>",
    "synthetic": "<string>",
    "ner_count": 123,
    "response": "<string>",
    "ner_items": [],
    "timestamp": "2023-11-07T05:31:56Z"
  }
}

步驟 2: 在對話中傳送訊息

傳送訊息

對話開始後,您可以傳送額外的訊息以延續對話。這有助於用新的資訊擴充對話。
若要繼續對話,請使用 POST /external/send 端點。在請求內容中包含從 start-conversation 端點取得的 conversation_id,以及您的新訊息。這能維持對話流程的完整性,確保每則訊息正確地連結到對應的對話。

Send Conversation 的回應範例

{
  "conversation_id": "<string>",
  "sender": "ai | sender",
  "message_text": "<string>",
  "redacted_text": "<string>",
  "syntactic_text": "<string>",
  "model": "gpt-4o",
  "related_questions": ["<string>"],
  "id": "<string>",
  "typing_completed": true,
  "created_at": "2023-11-07T05:31:56Z"
}

步驟 3: 繼續對話

繼續對話

使用此端點以新回應的方式延續正在進行的對話。這能讓對話隨著時間發展。
若您想進一步擴充對話,需使用 POST /external/continue 端點,提供 conversation_idmodel 與其他必要資訊,以維持對話的進行。在呼叫 continue-conversation 後,您可以回到 send-conversation 端點,在同一個對話情境中送出新訊息。

Continue Conversation 的回應範例

{
  "conversation_id": "d0c73687-cc8d-4628-be2d-01050d32dfb6",
  "sender": "user",
  "message_text": "<string>",
  "redacted_text": "<string>",
  "syntactic_text": "<string>",
  "typing_completed": true,
  "created_at": "2024-08-16T09:24:07.865867",
  "ner_items": [],
  "ner_count": 123,
  "title": "Dropbox: A Popular File Sharing Service",
  "id": "ac3ca0a0-69ee-49c3-a6a5-86ee9b9f4c0e"
}