API 版本比較
對於大部分 API 方法,要求參數和回應內文在 v1 和 v2之間有所不同。 瞭解您可以用來執行 v1 API 所支援動作的對等或替代 v2 方法。
比較資訊假設您使用 v1 API ( 2019-04-30 版) 的最新版本,並將它與 v2 API ( 2020-08-30 版) 的最新版本相比較。
環境
v2中沒有 環境 的概念。 部署詳細資料 (例如大小和索引容量) 是根據服務方案類型來管理。 在 v2中,集合會組織在專案中。 您可以建立不同類型的專案,以將預設配置設定套用至您新增至專案的集合。
對於 v1 環境方法,v2 中沒有對等方法。 不過,下表顯示 v2 方法,其提供的函數與對應的 v1 方法類似。 針對每一個方法傳回的受支援參數及回應主體也會不同。
| 動作 | 第 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_id、id 及 total_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": { ... } |
無法使用。 透過使用者介面配置與外部資料來源的連線。 如需相關資訊,請參閱 建立集合。 |
集合
| 動作 | 第 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 之間的重要差異。
| 方法 | 附註 |
|---|---|
| 建立集合 | v2 回應不包含 status 和 configuration_id 欄位。 您可以使用 取得文件詳細資料 方法來取得特定文件的狀態資訊。在 v2中,回應內文中沒有物件 disk_usage、training_status 和 crawl_status。
document_counts 物件目前不在 v2 的回應主體中。 在 取得專案 方法回應中傳回訓練狀態。 其他資訊在 v2中無法使用。 在 v2中,您可以指定選用的 enrichments 物件來定義強化,以套用至集合中的文件。 |
| 取得集合詳細資料 | v2 回應不包含 status 和 configuration_id 欄位。 您可以使用 取得文件詳細資料 方法來取得特定文件的狀態資訊。在 v2中,回應內文中沒有物件 document_counts、disk_usage、training_status 和 crawl_status。 在 取得專案 方法回應中傳回訓練狀態。 其他資訊在 v2中無法使用。 例如,您無法取得集合的文件計數,也無法取得連接至 v2中外部資料來源之集合的搜索狀態。 在 v2中,您可以取得套用至集合之強化的相關資訊。 |
| 更新集合 | v2 使用 POST 而非 PUT。 在 v2中,您可以指定選用的 enrichments 物件來更新套用至集合中文件的強化。v2 回應不包含 status 和 configuration_id 欄位。 |
查詢修改
在 v2 API 中不支援 v1 中用來以程式化方式配置記號化的方法。
| 第 1 版 API | 第 2 版 API |
|---|---|
| 記號化字典 API | 無法使用。 |
| 擴充 v1 API | 擴充 v2 API |
| 停止字組 v1 API | 停止字組 v2 API |
文件
v2 引進名為 X-Watson-Discovery-Force 的自訂標頭,在 v1中無法使用。 當您對跨多個集合共用的資料執行作業時,必須包括標頭,以指出您要在每一個集合中執行該作業。 如果未包含標頭,則會傳回 403 錯誤。
在 v1 與 v2之間汲取期間,新增至集合的 JSON 檔案中的欄位會以不同方式進行轉換。 如需如何將 JSON 檔案儲存在 v2 索引中的相關資訊,請參閱 JSON 檔案。
查詢
| 動作 | 第 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。 除了count、characters及fields選項之外,您還可以指定per_document(依文件品質對文件進行分級),然後傳回每個文件的最高等級段落。 您也可以指定find_answers來傳回每個段落的回答物件,其中包含查詢的簡潔回答。聚集 聚集 相同的表示式語言。 計數 計數 無附註。 偏移 偏移 無附註。 RETURN RETURN 無附註。 排序 排序 無附註。 highlight highlight 如果 passages.enabled和passages.per_document是true,則會傳回每一個文件的段落,而不是強調顯示。拼字建議 拼字建議 無附註。 deduplicate N/A v2 中不支援。 similar similar 格式在 v2中已變更。 similar:true參數已變更為similar.enable:true。document_ids和fields參數已從字串變更為字串陣列。 如果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 在 v2 和 v1中是相同的。
| 動作 | 第 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 要求所傳回的狀態碼不同。