전호영 Posted October 30, 2024 Posted October 30, 2024 안녕하세요. 다음과 같이 API Spec을 작성하였습니다. { "info": { "title": "자투리 시간 및 현재 위치 기반 장소 추천", "version": "v1" }, "paths": { "/v1/places_recommendation": { "post": { "summary": "AI를 통해 장소를 추천하는 API입니다.", "responses": { "200": { "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "integer", "description": "추천 순서(1,2,3,4,5 중 1)" }, "title": { "type": "string", "description": "장소 이름" }, "address": { "type": "string", "description": "장소 주소" }, "content": { "type": "string", "description": "장소 추천 이유" } } }, "maxItems": 5, "minItems": 1 } } }, "description": "성공적인 응답" } }, "description": "AI를 통해 장소를 추천하는 API입니다.", "operationId": "placesRecommendation", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [ "spareTime", "activityType", "keywords", "location" ], "properties": { "keywords": { "type": "array", "items": { "enum": [ "SELF_DEVELOPMENT", "HEALTH", "NATURE", "CULTURE_ART", "ENTERTAINMENT", "RELAXATION", "SOCIAL" ], "type": "string" }, "description": "원하는 활동 주제. SELF_DEVELOPMENT, HEALTH, NATURE, CULTURE_ART, ENTERTAINMENT, RELAXATION, SOCIAL 중 1~7개의 값을 가진다." }, "location": { "type": "string", "description": "현재 위치" }, "spareTime": { "type": "integer", "description": "자투리 시간. 10~300 사이의 값을 가진다." }, "activityType": { "enum": [ "ONLINE", "OFFLINE", "ONLINE_AND_OFFLINE" ], "type": "string", "description": "활동의 온/오프라인 여부. ONLINE, OFFLINE, ONLINE_AND_OFFLINE 중 하나의 값을 가진다." } } } } }, "required": true } } } }, "openapi": "3.0.0", "servers": [ { "url": "http://localhost:8080" } ] } 그 후 데이터 수집 시 호출 옵션을 다음과 같이 설정하였습니다. { "baseOperation": { "header": { "X-Naver-Client-Id": "", "X-Naver-Client-Secret": "" } }, "operations": [ { "operationId": "placesRecommendation", "requestBody": { "spareTime": 30, "activityType": "OFFLINE", "keywords": [ "NATURE" ], "location": "서울시 강남구" } } ] } 그 후 실행을 누르면 위와 같이 계속 에러가 발생합니다.. 어디가 문제인지 모르겠습니다 .
CLOVA Studio 운영자6 Posted October 31, 2024 Posted October 31, 2024 @전호영님 안녕하세요. 공유주신 API Spec을 확인해본 결과, servers 항목의 url 필드에 로컬 주소(http://localhost:8080)가 입력되어서 해당 오류가 발생된 것으로 보입니다. 따라서 외부에서도 접근이 가능한 도메인 이름 또는 주소로 변경해 주시면 정상적인 호출이 가능합니다. 이후에도 문제가 지속되거나 추가적인 문의가 있으시다면 언제든 남겨주세요! 감사합니다 🙂
전호영 Posted November 1, 2024 Author Posted November 1, 2024 예시로 준 지역검색을 사용해보았습니다. API Spec에서 query에 대한 값들을 수정하고, display도 5로 변경했습니다. Quote { "info": { "title": "네이버 지역 검색", "version": "1.0.0", "description": "네이버 지역 서비스에 등록된 업체 및 기관을 검색하기 위한 스킬" }, "paths": { "/v1/search/local.json": { "get": { "summary": "국내 지역 정보 검색 결과를 나열합니다.", "responses": { "200": { "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "link": { "type": "string" }, "mapx": { "type": "string" }, "mapy": { "type": "string" }, "title": { "type": "string" }, "address": { "type": "string" }, "category": { "type": "string" }, "telephone": { "type": "string" }, "description": { "type": "string" }, "roadAddress": { "type": "string" } } } }, "start": { "type": "integer" }, "total": { "type": "integer" }, "display": { "type": "integer" }, "lastBuildDate": { "type": "string" } } } } }, "description": "- **title**: 업체명\\n- **address**: 지번 주소(e.g. 서울특별시 중구 을지로3가 229-1)\\n- **roadAddress**: 도로명 주소(e.g. 서울특별시 중구 을지로15길 6-5)\\n- **category**: 카테고리(e.g. 식당, 카페, 병원, 미용실, 기업, 공공 기관)\\n- **description**: 업체에 대한 설명(e.g. 연탄불 한우갈비 전문점, 강남역 근처 분위기 좋은 카페)\\n- **link**: 홈페이지 링크" } }, "parameters": [ { "in": "query", "name": "query", "schema": { "type": "string" }, "required": true, "description": "**query**: 사용자가 하고싶은 활동의 타입으로 중복 선택이 가능합니다. (e.g. 자기개발, 건강, 자연, 문화/예술, 엔터테인먼트, 휴식, 소셜)\\n" }, { "in": "query", "name": "display", "schema": { "type": "integer", "default": "5" }, "required": true, "description": "요청한 쿼리에 대한 검색 결과 수 입니다. 유일한 상점이나 업체일 경우에는 결과를 1개만 보여주세요." }, { "in": "query", "name": "sort", "schema": { "type": "string" }, "required": false, "description": "검색 결과 정렬 방법\\n- **random**: 정확도순으로 내림차순 정렬(기본값)\\n- **comment**:카페, 블로그의 리뷰 개수순으로 내림차순 정렬이 필요할 때 값을 사용하세요. '맛집'이라는 키워드가 포함되면 무조건 이 값을 사용하세요.(e.g. 리뷰 많은 순으로 정렬해주세요. 유명한 곳을 알려주세요. 인기 많은 곳을 알려주세요.)\\n" } ], "description": "지역의 업체나 기관을 검색합니다.", "operationId": "localSearch" } } }, "openapi": "3.0.2", "servers": [ { "url": "https://openapi.naver.com" } ] } 이 후 유저 쿼리로 Quote 자투리 시간: 30분 선호활동: OFFLINE 활동 키워드: 휴식 위치: 건대입구 활동이나 갈만한 장소를 추천해줘 이와 같이 날려보았는데 답변으로 Quote { "message": "네, 건대입구에서 휴식할 수 있는 장소를 알려드리겠습니다.", "list": [ { "name": "휴식카페 청계광장점", "address": "서울특별시 종로구 서린동 146 1F 휴식카페" }, { "name": "휴식카페 종로르메이에르점", "address": "서울 종로구 종로1가 24 1층 116-1호" }, { "name": "휴식카페 시청점", "address": "서울 중구 태평로2가 69-3 1층 휴식카페" }, { "name": "휴식 청계다동점", "address": "서울 중구 다동 70" }, { "name": "잠시휴식", "address": "서울 중구 을지로2가 6" } ] } 건대입구 주변이라고 할 수 없는 값들을 추천받았습니다. 이는 데이터 학습을 통해 해결하나요?
전호영 Posted November 1, 2024 Author Posted November 1, 2024 추가로 hyper clova x에 있는 스킬을 api로 받아올 순 없나요 ? 이렇게 네이버 여행 스킬을 api로 받아와 사용하고 싶습니다.
CLOVA Studio 운영자10 Posted November 4, 2024 Posted November 4, 2024 @전호영님 안녕하세요! 전달주신 API Spec와 query로 확인해보니, API 조회 결과는 "건대입구에서 휴식할 수 있는 장소"로 잘 받아오나, 액션입력에서 쿼리 파마리터를 "query=휴식"으로 잡혀 API 호출 결과에 영향을 미친 것 으로 보입니다. 이때는 아래와 같이 액션입력 영역을 의도하신 "건대입구 휴식"로 수정 및 적용해주시면 최종답변까지 의도한 응답값을 받으실 수 있습니다.이렇게 데이터 수집 시에 Step2의 액션 입력값과 Step3의 생각 영역을 적절히 수정 후 학습을 진행하시면 모델 응답을 개선할 수 있습니다. 마지막으로, 문의 주신 CLOVA X의 Skill을 API로 활용하기 어려운 점 안내드립니다. 추가적인 문의 있으시면 편하게 남겨주세요! 감사합니다.
Recommended Posts
게시글 및 댓글을 작성하려면 로그인 해주세요.
로그인