2024.07.04 - [IT/HyperClovaX] - [Clova Studio] 스킬트레이너 - 1 [ 스킬셋 만들기 ]
스킬셋을 만들었다면 이제 스킬을 만들 차례다.
하나의 스킬은 하나의 API 와 매칭이 된다.
물론 외부의 openAPI 도 사용할 수 있겠지만 회사 내부에서 사용하는 API 도 사용할 수 있다.
다만 Clova Studio 에서 API로 통신이 되야하기에 네트워크가 열려있는 API 에서만 사용할 수 있다.
이번에 내가 진행한 실제 프로젝트를 예를 들어보려 한다.
네이버개발자에서 제공하는 API 중 검색 API 가 있고 검색 API 중 쇼핑을 전문으로 검색할 수 있는 기능이 있다.
https://developers.naver.com/main/
네이버개발자의 API 종류가 몇개 있는데 그 중에서 쇼핑이라는 단어에 꽂혀서 "데이터랩(쇼핑인사이트)" 를 선택하면 엉뚱한 선택을 하게 되는 것이다.
제일 상단에 있는 "검색"을 선택해야지만 네이버검색의 기능 중 쇼핑 부분을 검색할 수 있게 된다.
그리고 추가로 검색의 쇼핑 관련 API 사용방법에 대해서도 알아보아야 한다.
https://developers.naver.com/docs/serviceapi/search/shopping/shopping.md#%EC%87%BC%ED%95%91
요청 URL: https://openapi.naver.com/v1/search/shop.json
필수 파라미터: query , 검색어는 UTF-8로 인코딩되어야함
**이 외의 정보는 위의 네이버개발자 API 사용방법을 확인해보자
우선 새로운 스킬셋을 만든다.
아래는 스킬을 만든는데 필요한 정보다.
스킬명: shopSkill
API spec
{
"info": {
"title": "네이버 쇼핑 검색",
"version": "1.0.0",
"description": "네이버 쇼핑 서비스에 등록된 상품을 검색하기 위한 스킬"
},
"paths": {
"/v1/search/shop.json": {
"get": {
"summary": "쇼핑 검색 결과를 나열합니다.",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"link": {
"type": "string"
},
"brand": {
"type": "string"
},
"image": {
"type": "string"
},
"maker": {
"type": "string"
},
"title": {
"type": "string"
},
"hprice": {
"type": "integer"
},
"lprice": {
"type": "integer"
},
"mallName": {
"type": "string"
},
"category1": {
"type": "string"
},
"category2": {
"type": "string"
},
"category3": {
"type": "string"
},
"category4": {
"type": "string"
},
"productId": {
"type": "integer"
},
"productType": {
"type": "integer"
}
}
}
},
"start": {
"type": "integer"
},
"total": {
"type": "integer"
},
"display": {
"type": "integer"
},
"lastBuildDate": {
"type": "string"
}
}
}
}
},
"description": "- **title**: 상품명\\n- **link**: 상품 구매 페이지 링크\\n- **image**: 상품 이미지\\n- **lprice**: 최저가\\n- **hprice**: 최고가\\n- **mallName**: 쇼핑몰명\\n- **productId**: 상품 ID\\n- **productType**: 상품 타입\\n- **brand**: 브랜드\\n- **maker**: 제조사\\n- **category1**: 카테고리1\\n- **category2**: 카테고리2\\n- **category3**: 카테고리3\\n- **category4**: 카테고리4"
}
},
"parameters": [
{
"in": "query",
"name": "query",
"schema": {
"type": "string"
},
"required": true,
"description": "**query**: 사용자가 찾고자 하는 상품의 설명 (e.g. 스마트폰, 노트북, 가방)"
},
{
"in": "query",
"name": "display",
"schema": {
"type": "integer",
"default": "2"
},
"required": false,
"description": "요청한 쿼리에 대한 검색 결과 수 입니다."
},
{
"in": "query",
"name": "start",
"schema": {
"type": "integer"
},
"required": false,
"description": "검색 시작 위치입니다."
},
{
"in": "query",
"name": "sort",
"schema": {
"type": "string"
},
"required": true,
"description": "검색 결과 정렬 방법\\n- **sim**: 정확도순으로 내림차순 정렬(기본값)\\n- **date**: 날짜순으로 내림차순 정렬\\n- **asc**: 가격 오름차순\\n- **dsc**: 가격 내림차순\\n- **point**: 리뷰 순\\n- **mall**: 네이버페이 상품 순\\n- **checkout**: 네이버체크아웃 상품 순\\n- **rel**: 유사도순"
}
],
"description": "네이버 쇼핑에서 상품을 검색합니다.",
"operationId": "shoppingSearch"
}
}
},
"openapi": "3.0.2",
"servers": [
{
"url": "https://openapi.naver.com"
}
]
}
API spec 은 네이버개발자의 검색 API 의 request & response 를 정의한 정의서 이다.
Manifest:
Name for model : SearchShop
Description for human : 사용자가 나이, 성별, 날씨, 장소, 분위기 등에 맞춰 옷, 악세서리 등을 추천합니다.
Description for model : 사용자가 원하는 유형에 맞게 옷, 악세서리 등을 추천하는 API 입니다. 이 API 를 호출하면 네이버의 쇼핑 검색에서 나오는 제목, 판매처, 최저 가격, 최고 가격, 성별, 연령대, 카테고리1,2를 보여줍니다.
Manifest 는 스킬셋을 통해서 LLM 요청이 왔을 때 어떤 스킬을 사용할지를 결정할 수 있는 중요한 부분이기에 model 에게 설명하는 부분을 잘 기입해야 한다.
이렇게 만들어진 스킬은 이제 데이터 수집을 통해서 훈련을 위한 과정에 도입하게 된다.
'IT > HyperClovaX' 카테고리의 다른 글
[Clova Studio] 스킬트레이너 - 1 [ 스킬셋 만들기 ] (0) | 2024.07.04 |
---|---|
[Clova Studio] 플레이그라운드 - 2 [파라미터] (0) | 2024.06.28 |
[Clova Studio] 플레이그라운드 - 1[챗모드,페르소나] (0) | 2024.06.27 |
[Clova Studio] 스킬트레이너에 대한 간략 요약 (0) | 2024.06.24 |
LLM의 훈련 데이터의 한계 (0) | 2024.06.22 |