{"info":{"_postman_id":"7e41271c-94b1-4672-9b7f-7a54891d5ff1","name":"오토피디아 ML API v1.0","description":"<html><head></head><body><p>본 페이지에서는 오토피디아에서 현재 제공 중인 머신러닝(ML) API들의 목록과 입출력 형태를 확인할 수 있습니다.</p>\n<p>오토피디아에서는 다양한 차량 문제를 머신러닝 기술로 해결하기 위해 노력하고 있으며 현재 제공 중인 API에서 더 추가되었으면 하는 기능, 정보, 예측값이 있으시거나 본 페이지에는 명시되어 있지 않지만 추가로 더 필요한 API가 있으시다면 <code>ml-api@autopediacar.com</code> 으로 편하게 연락주시기 바랍니다.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"20868225","collectionId":"7e41271c-94b1-4672-9b7f-7a54891d5ff1","publishedId":"UyxepUDd","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"007aff"},"publishDate":"2023-02-27T01:53:13.000Z"},"item":[{"name":"Version / Release","item":[],"id":"2427d624-71e2-4279-b48c-d596c0050b40","description":"<ul>\n<li><p>Version : API 전반에 걸친 스펙 변경(인증 방식, 에러 코드 형식 변경 등)이 발생할 경우에는 버전이 변경됩니다. 서버 호출 시 BASE URL은<code>https://ml-api.doctor-cha.com/{version}/</code> 의 형태이며 현재 버전은 <code>v1</code> 입니다.</p>\n</li>\n<li><p>Release : 각각의 분석 API들은 <code>https://ml-api.doctor-cha.com/{version}/{model-name}/{release}/predict</code> 와 같은 URI를 가지며 Version에 비해 상대적으로 빠르게 개발 및 업데이트 될 수 있습니다. 분석 API의 예측 정보가 추가되거나(예: 편마모 여부 정보 추가), 예측 형식이 변경되는 경우에는 Release가 올라갑니다.</p>\n<ul>\n<li>예: 타이어 마모도를 판단하는 API의 경우 현재 릴리즈는 <code>r1</code> 입니다.</li>\n</ul>\n</li>\n</ul>\n","_postman_id":"2427d624-71e2-4279-b48c-d596c0050b40","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"7e41271c-94b1-4672-9b7f-7a54891d5ff1","id":"7e41271c-94b1-4672-9b7f-7a54891d5ff1","name":"오토피디아 ML API v1.0","type":"collection"}}},{"name":"Authentication","item":[],"id":"540b7482-a89d-4113-9b4b-146df1d74f4d","description":"<ul>\n<li>모든 API를 호출할 때에는 Header 상에 <code>x-api-key</code> : 을 추가하여야 합니다. 잘못된 API Key 값 혹은 API KEY 값이 존재하지 않을 시에는 <code>403 Forbidden</code> 에러가 발생합니다.</li>\n<li>API KEY는 현재 <code>ml-api@autopediacar.com</code> 을 통해 API 사용 요청을 접수해주시면 발급해드리고 있습니다.</li>\n<li>해당 API KEY 값이 노출/유출될 경우 제 3자가 호출한 건수가 API KEY 소유주분께 집계될 수 있으니 소스코드 상에 노출이 되지 않도록 보안에 주의가 필요합니다.</li>\n</ul>\n","_postman_id":"540b7482-a89d-4113-9b4b-146df1d74f4d","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"7e41271c-94b1-4672-9b7f-7a54891d5ff1","id":"7e41271c-94b1-4672-9b7f-7a54891d5ff1","name":"오토피디아 ML API v1.0","type":"collection"}}},{"name":"Rate Limit","item":[],"id":"e3677a12-d18e-49aa-b8ea-20ca7b78b1e9","description":"<ul>\n<li>현재 본 페이지의 API들은 베타 상태이며 과도한 API 호출로 인한 서버 부하를 막기 위해 아래와 같은 Rate Limit을 가지고 있습니다.</li>\n<li>Rate Limit은 개별 메소드 별로 적용되지 않으며 사용하신 API Key 값을 기준으로 메소드에 상관 없이 호출하신 모든 호출 건수가 기록됩니다.<ul>\n<li>예: <code>/images</code> 메소드 200번 호출 + <code>/treads/r1/predict</code> 메소드 30번 호출 = 총 230번 호출</li>\n</ul>\n</li>\n<li>초당 요율 : 10 requests/sec (Hard limit은 아니며 Soft limit입니다)</li>\n<li>월 할당량 : 10,000 requests/sec (Hard limit은 아니며 Soft limit입니다)</li>\n<li>상기 Rate Limit을 초과하는 호출이 발생할 경우 <code>429 Too Many Request</code> 에러가 발생합니다.</li>\n<li>Rate Limit의 상향이 필요한 경우 <code>ml-api@autopediacar.com</code> 으로 문의주시기 바랍니다.</li>\n</ul>\n","_postman_id":"e3677a12-d18e-49aa-b8ea-20ca7b78b1e9","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"7e41271c-94b1-4672-9b7f-7a54891d5ff1","id":"7e41271c-94b1-4672-9b7f-7a54891d5ff1","name":"오토피디아 ML API v1.0","type":"collection"}}},{"name":"이미지 업로드 시 주의사항","item":[],"id":"c88341e8-98a3-4232-b79b-1d87cf3a38b1","description":"<ul>\n<li>모든 사진 분석 API를 호출하기 전에 <code>/images</code> EndPoint를 통해서 오토피디아의 S3 버킷에 추론용 이미지를 업로드(<code>upload_url</code>) 하고 다운로드(<code>download_url</code>) 할 수 있는 pre-signed URL을 발급 받아야 합니다. pre-signed URL은 1000초의 유효 기간을 가지므로 유효 기간이 지난 후에는 발급 받은 URL이 만료되며 업로드와 다운로드가 모두 불가능해집니다.</li>\n<li>사용자의 클라이언트 단에서 <code>upload_url</code> 경로에 이미지 파일을 <code>PUT</code> 메소드를 통해 업로드 해야 합니다.</li>\n<li>사용자의 클라이언트 단에서 이미지가 업로드 완료된 뒤에 사진 분석 API(예: <code>/treads/r1/predict</code> )에 <code>download_url</code> 파라미터를 전달하는 방식으로 추론 요청을 보낼 수 있습니다.</li>\n<li>추론 서버는 제공된 <code>download_url</code> 을 통해 오토피디아의 S3 버킷으로부터 이미지를 다시 다운 받은 후 학습된 딥러닝 모델에서 추론하게 됩니다.</li>\n<li>위와 같은 방식을 통해 API Gateway에 가해지는 네트워크 부하를 줄일 수 있으며 클라이언트 단에서는 업로드 중과 분석 중 상태를 직접 관리하게 되므로 대기 중인 사용자에게 각 상태 별로 안내 메시지를 표시하는 등의 응용이 가능합니다.</li>\n</ul>\n","_postman_id":"c88341e8-98a3-4232-b79b-1d87cf3a38b1","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"7e41271c-94b1-4672-9b7f-7a54891d5ff1","id":"7e41271c-94b1-4672-9b7f-7a54891d5ff1","name":"오토피디아 ML API v1.0","type":"collection"}}},{"name":"ErrorCode","item":[],"id":"ad379617-fcb3-4247-b2bf-42b989094624","description":"<h4 id=\"error-response-schema\">Error Response Schema</h4>\n<p>code 200이 아닌 모든 경우에는 아래와 같은 형태로 Error Response가 반환됩니다.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"success\": false,\n    \"code\": 400,\n    \"error\": {\n        \"message\": \"\",\n        \"status\": \"\"\n    }\n}\n\n</code></pre>\n<h4 id=\"error-code-list\">Error Code List</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Error Code</strong></th>\n<th><strong>Status</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>400</td>\n<td>SchemaMismatch</td>\n<td>요청한 query parameter, body request parameter의 데이터 형식이 맞지 않는 경우 발생</td>\n</tr>\n<tr>\n<td>400</td>\n<td>InvalidParameter</td>\n<td>파라미터 값이 요구 사항을 만족하지 못하는 경우 발생</td>\n</tr>\n<tr>\n<td>400</td>\n<td>ImageDownloadFailure</td>\n<td>제출한 이미지의 <code>download_url</code> 을 통해 이미지 다운로드가 실패한 경우 발생</td>\n</tr>\n<tr>\n<td>400</td>\n<td>NonTreadImageDetected</td>\n<td>제출한 이미지 중 트레드가 아닌 이미지가 한 장 이상 포함될 경우 발생</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Forbidden</td>\n<td>API KEY 값이 잘못 되었거나, Header 상에 없을 시에 발생</td>\n</tr>\n<tr>\n<td>405</td>\n<td>MethodNotAllowed</td>\n<td>허용되지 않는 Method 요청 시에 발생</td>\n</tr>\n<tr>\n<td>429</td>\n<td>Too Many Request</td>\n<td>Rate Limit을 초과한 호출인 경우 발생</td>\n</tr>\n<tr>\n<td>500</td>\n<td>InternalServerError</td>\n<td>서버 에러</td>\n</tr>\n</tbody>\n</table>\n</div>","_postman_id":"ad379617-fcb3-4247-b2bf-42b989094624","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"7e41271c-94b1-4672-9b7f-7a54891d5ff1","id":"7e41271c-94b1-4672-9b7f-7a54891d5ff1","name":"오토피디아 ML API v1.0","type":"collection"}}},{"name":"/images","id":"422c1597-e9dc-43f1-8e49-c55500ac4f30","request":{"method":"GET","header":[{"description":"<p>(Required) API Key token</p>\n","key":"x-api-key","value":"<change-me>"},{"key":"Accept","value":"application/json"}],"url":"{{baseUrl}}/images?num_images=3","description":"<p>분석 API를 호출하기 전에 이미지를 업로드/다운로드 할 수 있는 URL을 발급하는 API</p>\n<h3 id=\"response-schema\">Response Schema</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>field</strong></th>\n<th><strong>type</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>success</td>\n<td>boolean</td>\n<td>API 호출이 성공했을 시 <code>true</code> , 그 외에는 <code>false</code> 값</td>\n</tr>\n<tr>\n<td>code</td>\n<td>integer</td>\n<td>HTTP 요청의 status_code와 같은 값을 가집니다.</td>\n</tr>\n<tr>\n<td>data.images[]</td>\n<td>List of Image</td>\n<td><code>num_images</code> 개수 만큼의 <code>download_url</code> , <code>upload_url</code> 이 발급됩니다.</td>\n</tr>\n<tr>\n<td>data.images[].upload_url</td>\n<td>string</td>\n<td>1000초의 유효 기간을 갖는 AWS S3 버킷의 pre-signed URL로 <code>PUT</code> 메소드를 통해 파일을 업로드합니다.</td>\n</tr>\n<tr>\n<td>data.images[].download_url</td>\n<td>string</td>\n<td><code>upload_url</code> 을 통해 이미지 업로드를 완료한 이후, 분석 API를 호출할 때는 <code>download_url</code> 을 전달해야 합니다. 따라서 클라이언트 단에서 업로드 이후 분석 API 호출 시까지 상태로 저장해야 합니다.</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"7e41271c-94b1-4672-9b7f-7a54891d5ff1","id":"7e41271c-94b1-4672-9b7f-7a54891d5ff1","name":"오토피디아 ML API v1.0","type":"collection"}},"urlObject":{"path":["images"],"host":["{{baseUrl}}"],"query":[{"description":{"content":"<p>(Required) number of requesting URLs to upload image</p>\n","type":"text/plain"},"key":"num_images","value":"3"}],"variable":[{"id":"2f6ced1d-2e12-4835-8ceb-264395f5a3df","type":"any","value":"{{basePath}}","key":"basePath"}]}},"response":[{"id":"fc155858-3fd0-4cb0-8cfe-6026e305e4d3","name":"200 response","originalRequest":{"method":"GET","header":[{"description":"(Required) api-key token","key":"x-api-key","value":"<change-to-token-value>"}],"url":{"raw":"{{baseUrl}}/images?num_images=3","host":["{{baseUrl}}"],"path":["images"],"query":[{"key":"num_images","value":"3"}],"variable":[{"key":"basePath","value":"{{basePath}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"code\": 200,\n  \"data\": {\n    \"images\": [\n      {\n        \"upload_url\": \"https://drcha-ai-datalake.s3.amazonaws.com/raw/ml-api-payload-images-prod/16b54252-c40d-4e0e-928c-a386dbedd538?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIA4URNBZMT44NTW4P5%2F20220510%2Fap-northeast-2%2Fs3%2Faws4_request&X-Amz-Date=20220510T042730Z&X-Amz-Expires=1000&X-Amz-SignedHeaders=host&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEDQaDmFwLW5vcnRoZWFzdC0yIkgwRgIhANnSk7I%2B3qcRkKFytPEMP9GsPNiP8zeqWkjSBD9KGpz3AiEAm74CFD5ZMl3v6it9wC3oOzLXeq9xMno9PflJKrS49%2F0qqAII%2Fv%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARABGgw4Njg3NTE2MjQ5OTkiDGpkHxQiGn05X2rgYCr8AaSt4P1lcHVUc%2FcaYEIvpIhMczfi2n3zpjvcmSmFojz9Cay5GH%2FN61xM6xOVCbCeZNzByxkGPdzkAM%2BQ43MAsvN3PdVtYsIDiv2SJvazQSdVAH5mfN6vGpMqXTUZBYYohiAUe7H3nwu2EGnesMKqsNCNDkyZMBmbWI3mIbgu3bNF3b2oZYFc00UrNyaIlvP3Bf5hfZWCMxS%2F%2B73vZ9ca%2FrH2yaMvyhy7yDkbDAxoYe%2Fet08H6OFrR%2FNNTtjM79fMTmoAUhIDu1U3nNfBpdX6H20EXbYf55MRrGhdGI8SUMrTg5EpRgZYIFFd42rei9RKlE%2Fch%2Fg4Kq3pvIA75TCy0%2BeTBjqZAYxDuUNd5T3dyetv9RvfyJo4jFP%2BRFM9y9ryhcmu9I67jkNhWyb87iuy3GU8%2BmQ0Vve%2F%2FyG6C1BGrJjrRqWvN1BRmlB9LejUmoQ4d4%2BuBQOCD1t0lNWoZ%2BdH2tdQeKeV1B2a0xODWuGdVXD6hqFQwa6sJPHmnIE9PAQmPSiCRvbwjrIKan46qu%2BLL7ITYasJ3wkjI5t6cqqItg%3D%3D&X-Amz-Signature=45ca2955c5b06aaf6b148651627d87b6d06cb46e4094aded220385f6f68c0976\",\n        \"download_url\": \"https://drcha-ai-datalake.s3.amazonaws.com/raw/ml-api-payload-images-prod/16b54252-c40d-4e0e-928c-a386dbedd538?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIA4URNBZMT44NTW4P5%2F20220510%2Fap-northeast-2%2Fs3%2Faws4_request&X-Amz-Date=20220510T042730Z&X-Amz-Expires=1000&X-Amz-SignedHeaders=host&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEDQaDmFwLW5vcnRoZWFzdC0yIkgwRgIhANnSk7I%2B3qcRkKFytPEMP9GsPNiP8zeqWkjSBD9KGpz3AiEAm74CFD5ZMl3v6it9wC3oOzLXeq9xMno9PflJKrS49%2F0qqAII%2Fv%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARABGgw4Njg3NTE2MjQ5OTkiDGpkHxQiGn05X2rgYCr8AaSt4P1lcHVUc%2FcaYEIvpIhMczfi2n3zpjvcmSmFojz9Cay5GH%2FN61xM6xOVCbCeZNzByxkGPdzkAM%2BQ43MAsvN3PdVtYsIDiv2SJvazQSdVAH5mfN6vGpMqXTUZBYYohiAUe7H3nwu2EGnesMKqsNCNDkyZMBmbWI3mIbgu3bNF3b2oZYFc00UrNyaIlvP3Bf5hfZWCMxS%2F%2B73vZ9ca%2FrH2yaMvyhy7yDkbDAxoYe%2Fet08H6OFrR%2FNNTtjM79fMTmoAUhIDu1U3nNfBpdX6H20EXbYf55MRrGhdGI8SUMrTg5EpRgZYIFFd42rei9RKlE%2Fch%2Fg4Kq3pvIA75TCy0%2BeTBjqZAYxDuUNd5T3dyetv9RvfyJo4jFP%2BRFM9y9ryhcmu9I67jkNhWyb87iuy3GU8%2BmQ0Vve%2F%2FyG6C1BGrJjrRqWvN1BRmlB9LejUmoQ4d4%2BuBQOCD1t0lNWoZ%2BdH2tdQeKeV1B2a0xODWuGdVXD6hqFQwa6sJPHmnIE9PAQmPSiCRvbwjrIKan46qu%2BLL7ITYasJ3wkjI5t6cqqItg%3D%3D&X-Amz-Signature=873d566b037639511a1a2b6f66cc6c6482bdceeb26a7fcc19f17c6c3ff6fe690\"\n      },\n      {\n        \"upload_url\": \"https://drcha-ai-datalake.s3.amazonaws.com/raw/ml-api-payload-images-prod/5368f6a4-8e22-484e-bbe1-780b2e9d255d?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIA4URNBZMT44NTW4P5%2F20220510%2Fap-northeast-2%2Fs3%2Faws4_request&X-Amz-Date=20220510T042730Z&X-Amz-Expires=1000&X-Amz-SignedHeaders=host&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEDQaDmFwLW5vcnRoZWFzdC0yIkgwRgIhANnSk7I%2B3qcRkKFytPEMP9GsPNiP8zeqWkjSBD9KGpz3AiEAm74CFD5ZMl3v6it9wC3oOzLXeq9xMno9PflJKrS49%2F0qqAII%2Fv%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARABGgw4Njg3NTE2MjQ5OTkiDGpkHxQiGn05X2rgYCr8AaSt4P1lcHVUc%2FcaYEIvpIhMczfi2n3zpjvcmSmFojz9Cay5GH%2FN61xM6xOVCbCeZNzByxkGPdzkAM%2BQ43MAsvN3PdVtYsIDiv2SJvazQSdVAH5mfN6vGpMqXTUZBYYohiAUe7H3nwu2EGnesMKqsNCNDkyZMBmbWI3mIbgu3bNF3b2oZYFc00UrNyaIlvP3Bf5hfZWCMxS%2F%2B73vZ9ca%2FrH2yaMvyhy7yDkbDAxoYe%2Fet08H6OFrR%2FNNTtjM79fMTmoAUhIDu1U3nNfBpdX6H20EXbYf55MRrGhdGI8SUMrTg5EpRgZYIFFd42rei9RKlE%2Fch%2Fg4Kq3pvIA75TCy0%2BeTBjqZAYxDuUNd5T3dyetv9RvfyJo4jFP%2BRFM9y9ryhcmu9I67jkNhWyb87iuy3GU8%2BmQ0Vve%2F%2FyG6C1BGrJjrRqWvN1BRmlB9LejUmoQ4d4%2BuBQOCD1t0lNWoZ%2BdH2tdQeKeV1B2a0xODWuGdVXD6hqFQwa6sJPHmnIE9PAQmPSiCRvbwjrIKan46qu%2BLL7ITYasJ3wkjI5t6cqqItg%3D%3D&X-Amz-Signature=2573e1d57cd272ac5e1798091c652387ba2c75ab4354b8f5749819cf3fa410f0\",\n        \"download_url\": \"https://drcha-ai-datalake.s3.amazonaws.com/raw/ml-api-payload-images-prod/5368f6a4-8e22-484e-bbe1-780b2e9d255d?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIA4URNBZMT44NTW4P5%2F20220510%2Fap-northeast-2%2Fs3%2Faws4_request&X-Amz-Date=20220510T042730Z&X-Amz-Expires=1000&X-Amz-SignedHeaders=host&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEDQaDmFwLW5vcnRoZWFzdC0yIkgwRgIhANnSk7I%2B3qcRkKFytPEMP9GsPNiP8zeqWkjSBD9KGpz3AiEAm74CFD5ZMl3v6it9wC3oOzLXeq9xMno9PflJKrS49%2F0qqAII%2Fv%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARABGgw4Njg3NTE2MjQ5OTkiDGpkHxQiGn05X2rgYCr8AaSt4P1lcHVUc%2FcaYEIvpIhMczfi2n3zpjvcmSmFojz9Cay5GH%2FN61xM6xOVCbCeZNzByxkGPdzkAM%2BQ43MAsvN3PdVtYsIDiv2SJvazQSdVAH5mfN6vGpMqXTUZBYYohiAUe7H3nwu2EGnesMKqsNCNDkyZMBmbWI3mIbgu3bNF3b2oZYFc00UrNyaIlvP3Bf5hfZWCMxS%2F%2B73vZ9ca%2FrH2yaMvyhy7yDkbDAxoYe%2Fet08H6OFrR%2FNNTtjM79fMTmoAUhIDu1U3nNfBpdX6H20EXbYf55MRrGhdGI8SUMrTg5EpRgZYIFFd42rei9RKlE%2Fch%2Fg4Kq3pvIA75TCy0%2BeTBjqZAYxDuUNd5T3dyetv9RvfyJo4jFP%2BRFM9y9ryhcmu9I67jkNhWyb87iuy3GU8%2BmQ0Vve%2F%2FyG6C1BGrJjrRqWvN1BRmlB9LejUmoQ4d4%2BuBQOCD1t0lNWoZ%2BdH2tdQeKeV1B2a0xODWuGdVXD6hqFQwa6sJPHmnIE9PAQmPSiCRvbwjrIKan46qu%2BLL7ITYasJ3wkjI5t6cqqItg%3D%3D&X-Amz-Signature=da93f44274924b6c02428a9ffc1f7c9ac862150c05c3dc1d69ddc18c7971f07b\"\n      },\n      {\n        \"upload_url\": \"https://drcha-ai-datalake.s3.amazonaws.com/raw/ml-api-payload-images-prod/8cc6ab59-cb16-4073-9853-19ae937c4a61?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIA4URNBZMT44NTW4P5%2F20220510%2Fap-northeast-2%2Fs3%2Faws4_request&X-Amz-Date=20220510T042730Z&X-Amz-Expires=1000&X-Amz-SignedHeaders=host&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEDQaDmFwLW5vcnRoZWFzdC0yIkgwRgIhANnSk7I%2B3qcRkKFytPEMP9GsPNiP8zeqWkjSBD9KGpz3AiEAm74CFD5ZMl3v6it9wC3oOzLXeq9xMno9PflJKrS49%2F0qqAII%2Fv%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARABGgw4Njg3NTE2MjQ5OTkiDGpkHxQiGn05X2rgYCr8AaSt4P1lcHVUc%2FcaYEIvpIhMczfi2n3zpjvcmSmFojz9Cay5GH%2FN61xM6xOVCbCeZNzByxkGPdzkAM%2BQ43MAsvN3PdVtYsIDiv2SJvazQSdVAH5mfN6vGpMqXTUZBYYohiAUe7H3nwu2EGnesMKqsNCNDkyZMBmbWI3mIbgu3bNF3b2oZYFc00UrNyaIlvP3Bf5hfZWCMxS%2F%2B73vZ9ca%2FrH2yaMvyhy7yDkbDAxoYe%2Fet08H6OFrR%2FNNTtjM79fMTmoAUhIDu1U3nNfBpdX6H20EXbYf55MRrGhdGI8SUMrTg5EpRgZYIFFd42rei9RKlE%2Fch%2Fg4Kq3pvIA75TCy0%2BeTBjqZAYxDuUNd5T3dyetv9RvfyJo4jFP%2BRFM9y9ryhcmu9I67jkNhWyb87iuy3GU8%2BmQ0Vve%2F%2FyG6C1BGrJjrRqWvN1BRmlB9LejUmoQ4d4%2BuBQOCD1t0lNWoZ%2BdH2tdQeKeV1B2a0xODWuGdVXD6hqFQwa6sJPHmnIE9PAQmPSiCRvbwjrIKan46qu%2BLL7ITYasJ3wkjI5t6cqqItg%3D%3D&X-Amz-Signature=6fa52e50810eeded5d29a5837d26ecbd95d113fa85a0b0e272f35c7a85ee9df3\",\n        \"download_url\": \"https://drcha-ai-datalake.s3.amazonaws.com/raw/ml-api-payload-images-prod/8cc6ab59-cb16-4073-9853-19ae937c4a61?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIA4URNBZMT44NTW4P5%2F20220510%2Fap-northeast-2%2Fs3%2Faws4_request&X-Amz-Date=20220510T042730Z&X-Amz-Expires=1000&X-Amz-SignedHeaders=host&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEDQaDmFwLW5vcnRoZWFzdC0yIkgwRgIhANnSk7I%2B3qcRkKFytPEMP9GsPNiP8zeqWkjSBD9KGpz3AiEAm74CFD5ZMl3v6it9wC3oOzLXeq9xMno9PflJKrS49%2F0qqAII%2Fv%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARABGgw4Njg3NTE2MjQ5OTkiDGpkHxQiGn05X2rgYCr8AaSt4P1lcHVUc%2FcaYEIvpIhMczfi2n3zpjvcmSmFojz9Cay5GH%2FN61xM6xOVCbCeZNzByxkGPdzkAM%2BQ43MAsvN3PdVtYsIDiv2SJvazQSdVAH5mfN6vGpMqXTUZBYYohiAUe7H3nwu2EGnesMKqsNCNDkyZMBmbWI3mIbgu3bNF3b2oZYFc00UrNyaIlvP3Bf5hfZWCMxS%2F%2B73vZ9ca%2FrH2yaMvyhy7yDkbDAxoYe%2Fet08H6OFrR%2FNNTtjM79fMTmoAUhIDu1U3nNfBpdX6H20EXbYf55MRrGhdGI8SUMrTg5EpRgZYIFFd42rei9RKlE%2Fch%2Fg4Kq3pvIA75TCy0%2BeTBjqZAYxDuUNd5T3dyetv9RvfyJo4jFP%2BRFM9y9ryhcmu9I67jkNhWyb87iuy3GU8%2BmQ0Vve%2F%2FyG6C1BGrJjrRqWvN1BRmlB9LejUmoQ4d4%2BuBQOCD1t0lNWoZ%2BdH2tdQeKeV1B2a0xODWuGdVXD6hqFQwa6sJPHmnIE9PAQmPSiCRvbwjrIKan46qu%2BLL7ITYasJ3wkjI5t6cqqItg%3D%3D&X-Amz-Signature=1a90e0bbd216b8166e88519ccf802fc04a08aae04c2be9cc9569538e53429e92\"\n      }\n    ]\n  }\n}"}],"_postman_id":"422c1597-e9dc-43f1-8e49-c55500ac4f30"},{"name":"/treads/r1/predict","id":"c81ba8f1-b81c-41c3-ba15-3187d003a8bb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"description":"<p>(Required) API Key token</p>\n","key":"x-api-key","value":"<change-me>"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"images\": [\n    {\n      \"download_url\": \"https://cdn.doctor-cha.com/tire/cl0gtpx9b000ceum52c6599ro.jpg\",\n      \"upload_time\": 4.2\n    },\n    {\n      \"download_url\": \"https://cdn.doctor-cha.com/tire/cl0gtpxaf000eeum57kaxgmnp.jpg\",\n      \"upload_time\": 4.2\n    },\n    {\n      \"download_url\": \"https://cdn.doctor-cha.com/tire/cl0gtpx9t000deum516u2htex.jpg\",\n      \"upload_time\": 4.1\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"{{baseUrl}}/treads/r1/predict","description":"<p>하나의 타이어를 서로 다른 각도에서 촬영한 복수 개의 트레드 이미지를 입력으로 받아 트레드의 잔여 깊이를 예측하는 API .</p>\n<p>동일한 타이어에 대해서 서로 다른 각도에서 촬영한 트레드 이미지를 최소 1장에서 최대 3장까지 제출하여 분석을 요청할 수 있으며, 일반적으로 제출하는 이미지 수가 많을수록 예측 정확도가 올라갑니다.</p>\n<p>현재 모델은 두 단계에 걸쳐서 예측을 합니다.</p>\n<ol>\n<li>제출된 이미지들이 모두 트레드 이미지에 해당하는지 확인<ol>\n<li>현재 정책인 높은 정확도를 위해서 제출된 이미지 중에 트레드 이미지가 아니라고 판단되는 이미지가 한 장이라도 존재할 경우 <code>400 NonTreadImageDetected</code> 에러가 발생합니다.</li>\n<li>일반적으로 트레드 면을 찍지 않고 타이어 측면(사이드월) 혹은 휠을 찍은 경우, 타이어가 아닌 다른 물체 혹은 풍경을 촬영하는 경우에 <code>400 NonTreadImageDetected</code> 에러가 발생됩니다. 해당 에러유형이 발생할 경우 사용자에게 가이드를 참조하여 재촬영을 요구하는 형태로 서비스 플로우를 설계할 수 있습니다.</li>\n<li>위와 같은 정책이 사용자 경험을 해친다고 판단된다면 트레드 이미지가 최소 한 장이라도 존재할 때 2단계로 넘어가도록 정책 변경이 가능합니다.</li>\n</ol>\n</li>\n<li>제출된 이미지가 모두 트레드 이미지인 경우 각 트레드 이미지에 대해서 잔여 깊이를 예측합니다. 이후 각 이미지 별 잔여 깊이를 취합하여 해당 타이어에 대한 최종적인 잔여 깊이 값( <code>estimated_depth</code> )을 계산합니다. 더불어서 잔여 깊이를 바탕으로 예상 잔여 교체 시기를 개월 수( <code>estimated_lifetime</code> )로 산정합니다.</li>\n</ol>\n<h3 id=\"request-body-schema\">Request Body Schema</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>field</strong></th>\n<th><strong>type</strong></th>\n<th><strong>required</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>images[]</td>\n<td>List of Image</td>\n<td>required</td>\n<td></td>\n</tr>\n<tr>\n<td>images[].download_url</td>\n<td>string</td>\n<td>required</td>\n<td><code>upload_url</code> 을 통한 업로드 요청이 완료된 후에 추론 서버가 이미지를 다운 받을 수 있는 <code>download_url</code></td>\n</tr>\n<tr>\n<td>images[].upload_time</td>\n<td>number</td>\n<td>optional</td>\n<td>클라이언트 측에서 이미지를 업로드하는데 소요된 시간 (단위: 초)를 Optional 파라미터로 제출할 수 있습니다. 해당 정보가 없더라도 분석 요청은 수행되며, 업로드 소요 시간을 모니터링하는 용도로 활용됩니다.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"response-schema\">Response Schema</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>field</strong></th>\n<th><strong>type</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>success</td>\n<td>boolean</td>\n<td>API 호출이 성공했을 시 <code>true</code> , 그 외에는 <code>false</code> 값</td>\n</tr>\n<tr>\n<td>code</td>\n<td>integer</td>\n<td>HTTP 요청의 status_code와 같은 값을 가집니다.</td>\n</tr>\n<tr>\n<td>data.estimated_lifetime</td>\n<td>integer</td>\n<td>타이어의 잔여 깊이를 바탕으로 계산한 예상 교체 시기까지 남은 개월 수 (단위: 월)</td>\n</tr>\n<tr>\n<td>data.estimated_depth</td>\n<td>number</td>\n<td>여러 각도에서 찍은 트레드면 이미지로부터 종합적으로 예측된 타이어의 잔여 깊이 (단위: mm)</td>\n</tr>\n<tr>\n<td>data.images[]</td>\n<td>List of Image</td>\n<td><code>num_images</code> 개수 만큼의 <code>download_url</code> , <code>upload_url</code> , 이미지별 트레드 잔여 깊이를 예측한 결과가 포함됩니다.</td>\n</tr>\n<tr>\n<td>data.images[].upload_url</td>\n<td>string</td>\n<td>1000초의 유효 기간을 갖는 AWS S3 버킷의 pre-signed URL로 <code>PUT</code> 메소드를 통해 파일을 업로드합니다.</td>\n</tr>\n<tr>\n<td>data.images[].download_url</td>\n<td>string</td>\n<td><code>upload_url</code> 을 통해 이미지 업로드를 완료한 이후, 분석 API를 호출할 때는 <code>download_url</code> 을 전달해야 합니다. 따라서 클라이언트 단에서 업로드 이후 분석 API 호출 시까지 상태로 저장해야 합니다.</td>\n</tr>\n<tr>\n<td>data.images[].estimated_depth</td>\n<td>number</td>\n<td>해당 사진에서 예측된 타이어의 잔여 깊이 (단위: mm)</td>\n</tr>\n<tr>\n<td>data.images[].is_tread</td>\n<td>boolean</td>\n<td>트레드 사진이라고 인식된 경우 true, 그렇지 않을 경우 false</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"7e41271c-94b1-4672-9b7f-7a54891d5ff1","id":"7e41271c-94b1-4672-9b7f-7a54891d5ff1","name":"오토피디아 ML API v1.0","type":"collection"}},"urlObject":{"path":["treads","r1","predict"],"host":["{{baseUrl}}"],"query":[],"variable":[{"id":"65bdeef5-bc4b-4a5a-91b4-9261678cf5ab","type":"any","value":"{{basePath}}","key":"basePath"}]}},"response":[{"id":"7cbf66e3-e2d1-45fb-a9c0-50d765868abc","name":"200 response","originalRequest":{"method":"POST","header":[{"description":"(Required) api-key token","key":"x-api-key","value":"<change-to-token-value>"}],"body":{"mode":"raw","raw":"{\n  \"images\": [\n    {\n      \"download_url\": \"https://cdn.doctor-cha.com/tire/cl0gtpx9b000ceum52c6599ro.jpg\",\n      \"upload_time\": 4.2\n    },\n    {\n      \"download_url\": \"https://cdn.doctor-cha.com/tire/cl0gtpxaf000eeum57kaxgmnp.jpg\",\n      \"upload_time\": 4.2\n    },\n    {\n      \"download_url\": \"https://cdn.doctor-cha.com/tire/cl0gtpx9t000deum516u2htex.jpg\",\n      \"upload_time\": 4.1\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{baseUrl}}/treads/r1/predict","host":["{{baseUrl}}"],"path":["treads","r1","predict"],"variable":[{"key":"basePath","value":"{{basePath}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"code\": 200,\n  \"data\": {\n    \"estimated_lifetime\": 18,\n    \"estimated_depth\": 5.5,\n    \"images\": [\n      {\n        \"download_url\": \"https://cdn.doctor-cha.com/tire/cl0gtpx9b000ceum52c6599ro.jpg\",\n        \"upload_time\": 4.2,\n        \"estimated_depth\": 6,\n        \"is_tread\": true\n      },\n      {\n        \"download_url\": \"https://cdn.doctor-cha.com/tire/cl0gtpxaf000eeum57kaxgmnp.jpg\",\n        \"upload_time\": 4.2,\n        \"estimated_depth\": 5.2,\n        \"is_tread\": true\n      },\n      {\n        \"download_url\": \"https://cdn.doctor-cha.com/tire/cl0gtpx9t000deum516u2htex.jpg\",\n        \"upload_time\": 4.1,\n        \"estimated_depth\": 5.4,\n        \"is_tread\": true\n      }\n    ]\n  }\n}"}],"_postman_id":"c81ba8f1-b81c-41c3-ba15-3187d003a8bb"}],"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"<value>"}]}},"event":[{"listen":"prerequest","script":{"id":"f7133462-696d-48a0-910b-687be7fc6421","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"a7aa7e1e-e469-4b48-9087-258a0da5ecf1","type":"text/javascript","exec":[""]}}],"variable":[{"key":"x-api-key","value":"<change-me>","type":"string"}]}