평가 Dataset 만들기
평가 Dataset은 같은 기준으로 에이전트의 답변을 비교하기 위한 질문과 기준 답변의 묶음입니다. 이 페이지에서는 Dataset을 만들고 CSV로 가져온 뒤, 평가 Case를 추가하기 전에 확인해야 할 범위와 오류를 정리합니다. 평가 전체 흐름은 에이전트 평가 개요, 개별 질문과 기준 답변은 평가 Case 설계에서 이어집니다.
Dataset을 만들기 전에 결정할 것
먼저 Dataset의 사용 범위를 정합니다.
| 범위 | 의미 | 먼저 확인할 권한 |
|---|---|---|
| 개인 | 본인이 소유한 Dataset | Dataset 조회·생성 권한 |
| Workspace | 활성 Workspace에서 공유할 Dataset | Workspace 접근 권한과 생성 권한 |
Dataset은 이름, 설명, 범위, Case 수를 관리합니다. 새 Dataset은 Case 0건으로 시작합니다. Dataset을 삭제해도 즉시 행을 물리 삭제하는 방식이 아니라 삭제 시각을 기록하는 soft delete입니다.
평가에 사용할 질문과 기준 답변은 실제 고객 정보나 비밀값을 넣지 않은 테스트 자료로 준비합니다. 답변이 없는 질문을 허용할지, 긴 문장을 사용할지까지 Dataset을 만들기 전에 정해야 합니다. 시스템은 질문을 공백 제거 후 검사하고, 질문은 최대 50,000자, 기준 답변은 최대 100,000자까지 허용합니다.
JSON으로 Dataset 만들기
화면에서 Dataset 생성 기능을 제공하는지는 제품 버전과 권한에 따라 확인이 필요합니다. API 계약을 기준으로 보면 생성 입력은 이름, 선택적 설명, 범위입니다. 이름의 앞뒤 공백은 제거되며 이름은 1자 이상 255자 이하여야 합니다. 설명을 null로 보내면 빈 문자열로 저장됩니다.
생성 후에는 다음 항목을 확인합니다.
- 응답에 Dataset 식별 정보와 이름이 포함되는지 확인합니다.
- 범위가 의도한 개인 또는 Workspace 값인지 확인합니다.
- Case 수가 0인지 확인합니다.
- 목록 조회에서 같은 Dataset이 다시 보이는지 확인합니다.
목록은 이름과 설명의 부분 일치 검색을 지원합니다. 범위를 지정하지 않으면 호출자의 개인 Dataset과 활성 Workspace Dataset을 합쳐 반환할 수 있습니다. 목록 페이지의 기본 크기는 50이며 1에서 200 사이로 조정할 수 있습니다.
CSV로 가져오기
질문과 기준 답변이 이미 표 형식으로 있다면 CSV 가져오기를 사용합니다. 파일은 최대 5 MiB, 데이터 행은 최대 1,000행입니다. 헤더에는 question과 answer 두 열이 필요합니다. 헤더의 대소문자와 앞뒤 공백은 정규화되지만, 두 필드 자체가 없으면 가져오기가 실패합니다.
인코딩은 UTF-8 BOM, CP949, Latin-1 순서로 시도됩니다. 질문은 공백만 있는 값이면 허용되지 않습니다. 기준 답변은 빈 문자열도 허용되므로, 빈 답변을 허용하지 않는 평가 기준이라면 가져오기 전에 별도로 검사해야 합니다. 구현은 파일 확장자를 검사하지 않으므로, 확장자만 맞추는 것으로 CSV 형식이 보장되지는 않습니다.
가져오기 전에는 비식별 테스트 파일로 다음을 점검합니다.
- 헤더가 question과 answer인지 확인합니다.
- 행 수가 1,000개 이하인지 확인합니다.
- 파일 크기가 5 MiB 이하인지 확인합니다.
- 질문의 공백을 제거한 값이 비어 있지 않은지 확인합니다.
- 질문과 기준 답변의 길이가 각각 허용 범위 안인지 확인합니다.
- 가져오기 후 Dataset의 Case 수가 입력 행 수와 일치하는지 확인합니다.
파일 크기를 넘으면 413 PAYLOAD_TOO_LARGE가 반환됩니다. CSV 내용이나 범위가 잘못되면 400 VALIDATION_ERROR, multipart 입력 자체나 필수 필드가 빠지면 422가 반환됩니다. 오류 코드가 다르면 파일 내용만 반복해서 고치지 말고 입력 형식과 권한을 먼저 구분해 확인합니다.
Dataset에 Case를 추가하기
Dataset 목록 조회와 Case 변경은 같은 권한 규칙을 따르지 않습니다. Workspace에서 공유된 Dataset을 읽을 수 있어도, Case를 추가·수정·삭제하려면 Dataset의 생성자여야 합니다. Dataset과 Case의 관계가 맞지 않거나 접근할 수 없는 Dataset이면 404 NOT_FOUND가 반환됩니다.
Case를 추가할 때 질문과 기준 답변을 전달합니다. Case 순서는 현재 마지막 순서 다음 값으로 자동 배정되고, 첫 Case의 순서는 0입니다. 추가에 성공하면 Dataset의 total_cases가 1 증가합니다.
저장 후에는 Dataset 상세에서 다음을 확인합니다.
- Case가 예상한 질문과 기준 답변으로 저장됐는지 확인합니다.
- Case 순서가 의도한 순서인지 확인합니다.
- total_cases가 실제 Case 수와 일치하는지 확인합니다.
- 평가 실행이 이미 pending 또는 running 상태인지 확인합니다.
진행 중인 평가 실행이 Dataset을 사용하고 있으면 Case 변경은 409 CONFLICT로 거부될 수 있습니다. 이때 Case 입력을 바꾸기보다 해당 실행을 먼저 확인해야 합니다.
삭제하기 전에 확인할 것
Dataset 삭제는 되돌리기 위한 복구 절차가 이 페이지의 계약에 포함되어 있지 않으므로, 삭제 전에 다음을 확인합니다.
- 삭제할 Dataset의 범위와 소유자를 확인합니다.
- pending 또는 running 상태의 평가 실행이 없는지 확인합니다.
- Workspace Dataset이라면 본인이 생성자이거나 manager, admin, owner, superuser 역할인지 확인합니다.
- 삭제 후 목록에서 해당 Dataset이 더 이상 활성 항목으로 보이지 않는지 확인합니다.
개인 Dataset은 소유자만 삭제할 수 있습니다. 권한이 없으면 403 WBAC_DENIED, 보이지 않는 Dataset이면 404 NOT_FOUND, 진행 중 실행이 있으면 409 CONFLICT가 반환됩니다. 실행이 남아 있어 삭제가 막혔다면 실행을 취소한 뒤 Dataset 삭제를 다시 판단합니다. 이미 종료된 실행을 다시 취소하는 경우에는 409가 반환될 수 있으므로, 실행 상태를 먼저 읽습니다.
완료 판단
Dataset 준비가 끝났다고 판단하려면 Dataset 자체의 저장 성공만 보지 않습니다. 범위와 소유자, Case 수, 각 Case의 순서와 내용, 진행 중 실행 여부를 따로 확인해야 합니다. 이 확인이 끝난 뒤에 평가 Case 설계로 이동해 질문별 품질 기준을 정합니다.