API 版本比較

對於大部分 API 方法,要求參數和回應內文在 v1 和 v2之間有所不同。 瞭解您可以用來執行 v1 API 所支援動作的對等或替代 v2 方法。

比較資訊假設您使用 v1 API ( 2019-04-30 版) 的最新版本,並將它與 v2 API ( 2020-08-30 版) 的最新版本相比較。

環境

v2中沒有 環境 的概念。 部署詳細資料 (例如大小和索引容量) 是根據服務方案類型來管理。 在 v2中,集合會組織在專案中。 您可以建立不同類型的專案,以將預設配置設定套用至您新增至專案的集合。

對於 v1 環境方法,v2 中沒有對等方法。 不過,下表顯示 v2 方法,其提供的函數與對應的 v1 方法類似。 針對每一個方法傳回的受支援參數及回應主體也會不同。

環境 API 動作支援詳細資料
動作 第 1 版 API 相關 v2 API
建立環境 POST /v1/environments POST /v2/projects
列出環境 GET /v1/environments GET /v2/projects
取得環境資訊 GET /v1/environments/{environment_id} GET /v2/projects/{project_id}
更新環境 PUT /v1/environments/{environment_id} POST /v2/projects/{project_id}
v2 使用 POST 而非 PUT
刪除環境 DELETE /v1/environment/{environment_id} DELETE /v2/projects/{project_id}
列出集合中的欄位 GET /v1/environments/{environment_id}/fields GET /v2/projects/{project_id}/fields

配置

v2 API 沒有專用於配置的端點。 相反地,專案、集合和查詢的配置設定會直接在那些物件的 API 中指定。 並非 v1 中可用的所有配置參數都在 v2中可用或適用。

v1 配置 API 中,用來指定配置物件的 JSON 物件包含數個參數,這些參數以不同於其他 v2 端點的格式提供,或在 v2中無法使用。 下表說明如何在 v2中尋找相關參數。

在 v2 汲取程序期間,您無法像在 v1中一樣自訂文件的轉換。

配置設定詳細資料
v1 配置參數 第 2 版 API
"conversions.html": { ... } 無法使用
"conversions.image_text_recognition": { ... } 無法從 API 使用。 不過,您可以從產品使用者介面啟用集合的光學字元辨識 (OCR),以從影像擷取文字。 OCR 也有其他好處。 例如,如果無法處理文件中的頁面,OCR 會將頁面轉換成影像並掃描它,以確保順利上傳文件。
"conversions.json_normalizations": { ... } 移至 集合 API
"conversions.pdf": { ... } 無法使用。 如果您使用特殊參數從 PDF 中的影像擷取文字,請改為針對包含 PDF 的集合,從產品使用者介面啟用光學字元識別 (OCR)。
"conversions.segment": { ... } 無法以程式化方式使用。 您可以從產品使用者介面在每次出現 SDU 產生的欄位 (例如 subtitle ) 時分割文件。
具有 parent_ididtotal_segments 資訊的 segment_metadata 物件在 v2中無法使用。 您可以使用 metadata.parent_document_id 欄位來尋找許多文件區段的一般母項。
"conversions.word": { ... } 無法使用
"enrichments": { ... } /v2/projects/{project_id}/enrichments/v2/projects/{project_id}/collections/{collection_id}
使用強化 API 來探索現有的強化。 使用集合 API 來查看及變更集合中某個欄位上已啟用的強化。
依預設,部分強化會根據您建立的專案類型套用至服務。 如需詳細資料,請參閱 預設專案設定
v2 中可用的「實體」強化版本不包含 disambiguation 欄位,在 v1 中,該欄位包含實體的澄清資訊,並包含實體子類型資訊。
下列強化在 v2:
-種類
-概念
-情緒
-關係
-語意角色
-實體觀感
-關鍵字觀感
"normalizations": [ ... ] 移至 集合 API
"source": { ... } 無法使用。 透過使用者介面配置與外部資料來源的連線。 如需相關資訊,請參閱 建立集合

集合

集合 API 支援詳細資料
動作 第 1 版 API 第 2 版 API
建立集合 POST /v1/environments/{environment_id}/collections POST /v2/projects/{project_id}/collections
支援的參數和回應在兩個版本之間不同。 請參閱 集合附註
列出集合 GET /v1/environments/{environment_id}/collections GET /v2/projects/{project_id}/collections
在 v2中,只會在清單中傳回每一個集合的集合 ID 和名稱。 您必須使用 取得集合 方法,以傳回每一個集合的更多詳細資料。
取得集合詳細資料 GET /v1/environments/{environment_id}/collections/{collection_id} GET /v2/projects/{project_id}/collections/{collection_id}
請參閱 集合附註
更新集合 PUT /v1/environments/{environment_id}/collections/{collection_id} POST /v2/projects/{project_id}/collections/{collection_id}
刪除集合 DELETE /v1/environments/{environment_id}/collections/{collection_id} DELETE /v2/projects/{project_id}/collections/{collection_id}
在 v2中,回應中不會傳回 status 欄位。
列出集合欄位 GET /v1/environments/{environment_id}/collections/{collection_id}/fields
v1 列出每個集合的欄位。
GET /v2/projects/{project_id}/fields
v2 會改為列出每個專案的欄位。 您可以使用 collection_ids 參數傳遞單一集合 ID,以從單一集合取得欄位。

集合 API 注意事項

下表顯示 v1 和 v2 集合 API 之間的重要差異。

集合 API 注意事項
方法 附註
建立集合 v2 回應不包含 statusconfiguration_id 欄位。 您可以使用 取得文件詳細資料 方法來取得特定文件的狀態資訊。
在 v2中,回應內文中沒有物件 disk_usagetraining_statuscrawl_statusdocument_counts 物件目前不在 v2 的回應主體中。 在 取得專案 方法回應中傳回訓練狀態。 其他資訊在 v2中無法使用。 在 v2中,您可以指定選用的 enrichments 物件來定義強化,以套用至集合中的文件。
取得集合詳細資料 v2 回應不包含 statusconfiguration_id 欄位。 您可以使用 取得文件詳細資料 方法來取得特定文件的狀態資訊。
在 v2中,回應內文中沒有物件 document_countsdisk_usagetraining_statuscrawl_status。 在 取得專案 方法回應中傳回訓練狀態。 其他資訊在 v2中無法使用。 例如,您無法取得集合的文件計數,也無法取得連接至 v2中外部資料來源之集合的搜索狀態。 在 v2中,您可以取得套用至集合之強化的相關資訊。
更新集合 v2 使用 POST 而非 PUT。 在 v2中,您可以指定選用的 enrichments 物件來更新套用至集合中文件的強化。
v2 回應不包含 statusconfiguration_id 欄位。

查詢修改

在 v2 API 中不支援 v1 中用來以程式化方式配置記號化的方法。

查詢修改 API 支援詳細資料
第 1 版 API 第 2 版 API
記號化字典 API 無法使用。
擴充 v1 API 擴充 v2 API
停止字組 v1 API 停止字組 v2 API

文件

文件 API 支援詳細資料
動作 第 1 版 API 第 2 版 API
列出文件 無法從 v1 API 使用 GET /v2/projects/{project_id}/collections/{collection_id}/documents
建立文件 POST /v1/environments/{environment_id}/collections/{collection_id}/documents POST /v2/projects/{project_id}/collections/{collection_id}/documents
與 v1不同, v2 回應不包含 notices 物件。 不過,您可以在 v2中使用 取得文件詳細資料 方法來取得通知資訊。
更新文件 POST /v1/environments/{environment_id}/collections /{collection_id}/documents/{document_id} POST /v2/projects/{project_id}/collections/{collection_id}/documents/{document_id}
當您更新已分割的文件時,會改寫所有文件區段。
取得文件詳細資料 GET /v1/environments/{environment_id}/collections /{collection_id}/documents/{document_id} GET /v2/projects/{project_id}/collections/{collection_id}/documents/{document_id}
在 v2中,沒有 statusDescription。 v2 具有 children 物件,其中包含與汲取期間所產生子項文件相關聯之任何通知的相關資訊。
刪除文件 DELETE /v1/environments/{environment_id}/collections /{collection_id}/documents/{document_id} DELETE /v2/projects/{project_id}/collections/{collection_id}/documents/{document_id}
無法個別刪除已上傳文件的區段。 使用 DELETE 要求 (包括區段結果的 parent_document_id) 來刪除所有區段。

v2 引進名為 X-Watson-Discovery-Force 的自訂標頭,在 v1中無法使用。 當您對跨多個集合共用的資料執行作業時,必須包括標頭,以指出您要在每一個集合中執行該作業。 如果未包含標頭,則會傳回 403 錯誤。

在 v1 與 v2之間汲取期間,新增至集合的 JSON 檔案中的欄位會以不同方式進行轉換。 如需如何將 JSON 檔案儲存在 v2 索引中的相關資訊,請參閱 JSON 檔案

查詢

文件 API 支援詳細資料
動作 第 1 版 API 第 2 版 API
查詢集合 支援 GET 或 POST 要求。
GET 或 POST /v1/environments/{environment_id}/collections/{collection_id}/query
查詢專案。 若要指定單一集合,請包括 {collection_id} 參數。 僅支援 POST 要求。
POST /v2/projects/{project_id}/query
查詢多個集合 GET 或 POST /v1/environments/{environment_id}/query POST /v2/projects/{project_id}/query
查詢系統注意事項 GET /v1/environments/{environment_id}/collections/{collection_id}/notices GET /v2/projects/{project_id}/collections/{collection_id}/notices
查詢多個收集系統通知 GET /v1/environments/{environment_id}/notices GET /v2/projects/{project_id}/notices
取得自動完成建議 /v1/environments/{environment_id}/collections/{collection_id}/autocompletion GET /v2/projects/{project_id}/autocompletion
請參閱 查詢附註

依預設,部分查詢結果配置會根據您建立的專案類型套用至服務。 如需詳細資料,請參閱 預設專案設定

查詢附註

  • v2 查詢會傳回專案中所有集合的結果。 若要限制查詢只使用專案內的特定集合,請使用 collection_ids 查詢參數。 您無法使用一個 v2 查詢要求來查詢新增至不同專案的多個集合。

  • v2 結果包含 confidence 欄位,但不包含 score 欄位。

    信任評分已取代 v1中的評分資訊,但基於舊版相容性而保留評分。 在 v2中,只會傳回 confidence 欄位。

  • 使用 POST 呼叫 (而非 GET 呼叫),以 v2來提交查詢。

  • v1 查詢接受許多參數。 查詢參數比較 表格會將 v1 參數對映至 v2 參數。

    查詢參數比較
    v1 參數 v2 參數 附註
    N/A collection_ids 在 v2 中使用這個參數來指定集合 ID。
    過濾器 過濾器 相同的表示式語言。
    查詢 查詢 相同的表示式語言。
    natural_language_query natural_language_query 無附註。
    passages passages 在 v2中,段落格式已變更且已加強。 passages:true 參數已變更為 passages.enable:true。 除了 countcharactersfields 選項之外,您還可以指定 per_document(依文件品質對文件進行分級),然後傳回每個文件的最高等級段落。 您也可以指定 find_answers 來傳回每個段落的回答物件,其中包含查詢的簡潔回答。
    聚集 聚集 相同的表示式語言。
    計數 計數 無附註。
    偏移 偏移 無附註。
    RETURN RETURN 無附註。
    排序 排序 無附註。
    highlight highlight 如果 passages.enabledpassages.per_documenttrue,則會傳回每一個文件的段落,而不是強調顯示。
    拼字建議 拼字建議 無附註。
    deduplicate N/A v2 中不支援。
    similar similar 格式在 v2中已變更。 similar:true 參數已變更為 similar.enable:truedocument_idsfields 參數已從字串變更為字串陣列。 如果 enabled 為 true,則現在需要 document_ids 參數。
    bias N/A v2 中不支援。

訓練資料

您可以使用 v1 訓練資料 API 來使用兩個相關物件:

  • 訓練查詢
  • 用來訓練查詢的範例

這兩個物件在 v1中具有個別 API 端點。 在 v2中,用來訓練每一個查詢的範例與查詢一起提供,且只會使用一個端點來使用訓練資料。

例如,若要在 v2中新增訓練查詢及其訓練範例文件,您可以使用要求 POST /v2/projects/{project_id}/training_data/queries,並在一個呼叫的有效負載中傳遞查詢及所有範例。 同樣地,如果您想要更新 v2中訓練集中的一個範例,則必須將查詢和修改過的範例 (以及所有其他範例) 傳遞至 v2 更新端點。 在 v1中,若要更新範例資訊,您只能使用更新範例端點來修改一個範例。

v1 與 v2 之間的另一個重要差異是在 v1中,訓練模型與特定集合相關聯。 在 v2中,訓練模型與專案相關聯。 您可以使用專案內多個集合中的資料來訓練相關性模型。 當您在 v2中建立或更新訓練範例時,對於儲存文件的集合,API 需要 collection_id

訓練資料 API 支援詳細資料
動作 第 1 版 API 第 2 版 API
列出訓練資料 GET /v1/environments/{environment_id}/collections/{collection_id}/training_data GET /v2/projects/{project_id}/training_data /queries
新增查詢至訓練資料 POST /v1/environments/{environment_id}/collections/{collection_id}/training_data POST /v2/projects/{project_id}/training_data /queries
刪除所有訓練資料 DELETE /v1/environments/{environment_id}/collections/{collection_id}/training_data DELETE /v2/projects/{project_id}/training_data /queries
取得查詢的詳細資訊 GET /v1/environments/{environment_id}/collections/{collection_id}/training_data/{query_id} GET /v2/projects/{project_id}/training_data /queries/{query_id}
刪除訓練資料查詢 DELETE /v1/environments/{environment_id}/collections/{collection_id}/training_data/{query_id} DELETE /v2/projects/{project_id}/training_data /queries/{query_id}
列出訓練資料查詢的範例 GET /v1/environments/{environment_id}/collections/{collection_id}/training_data/{query_id}/examples GET /v2/projects/{project_id}/training_data /queries/{query_id}
範例位於隨查詢一起傳回的清單中。
新增範例至訓練資料查詢 POST /v1/environments/{environment_id}/collections/{collection_id}/training_data/{query_id}/examples POST /v2/projects/{project_id}/training_data /queries/{query_id}
在 v2 中使用 建立訓練查詢 方法,並在建立查詢時傳遞所有範例。 否則,請使用更新 API。
刪除訓練資料查詢範例 DELETE /v1/environments/{environment_id}/collections/{collection_id}/training_data/{query_id}/examples/{example_id} POST /v2/projects/{project_id}/training_data/ queries/{query_id}
使用 v2 training_data 更新方法。
例如變更標籤或交互參照 PUT /v1/environments/{environment_id}/collections/{collection_id}/training_data/{query_id}/examples/{example_id} POST /v2/projects/{project_id}/training_data/ queries/{query_id}
使用 v2 training_data 更新方法。
取得訓練資料範例的詳細資訊 GET /v1/environments/{environment_id}/collections/{collection_id}/training_data/{query_id}/examples/{example_id} 無法使用。 使用「讀取所有範例」呼叫來取得與查詢相關聯的所有範例,並在傳回的清單中尋找您需要的範例。

使用者資料

使用者資料 API 在 v2 和 v1中是相同的。

使用者資料 API 支援詳細資料
動作 第 1 版 API 第 2 版 API
刪除 DELETE /v1/user_data DELETE /v2/user_data
類似於 v1。 使用 customer_id 來刪除與該客戶 ID 相關聯的資料。

事件及意見

v1 事件和意見 API (/v1/events) 在 v2中無法使用。

認證

v1 認證 API (/v1/environments/{environment_id}/credentials) 在 v2中無法使用。 此函數可從 v2 產品使用者介面取得。

狀態碼

對於幾乎每個 API 方法,針對 v2 要求所傳回的狀態碼與針對 v1 要求所傳回的狀態碼不同。