캐릭터 챗봇 #74

Merged
klaus merged 33 commits from test into main 2025-09-10 06:26:03 +00:00
Owner
No description provided.
klaus added 33 commits 2025-09-10 06:25:52 +00:00
49cd5a795b fix: 캐릭터 등록 폼
- 시스템 프롬프트, 태그 캡션 크기 16px로 수정
3783714c75 feat(ui): 캐릭터 리스트 테이블 UI 개선
- 테이블 헤더 변경 (이름→캐릭터명, 설명→캐릭터 설명 등)
- 이미지 크기 100x100으로 설정
- 캐릭터 설명, 말투, 대화 스타일을 보기 버튼으로 표시
- 다이얼로그를 통해 상세 내용 표시 기능 추가
13c85bb2a8 "feat(api): 캐릭터 리스트 API 수정 및 데이터 처리 로직 개선
- API 경로를 /admin/chat/character/list로 변경
- size 파라미터 기본값을 20으로 설정
- 응답 데이터 구조 변경 (items → content)
- total_page 계산 로직 수정 (전체 개수와 size로 계산)
- 태그 표시 기능 추가"
72b1627f3f feat(character): 캐릭터 등록/수정 폼 개선
- 생년월일을 나이로 변경 (숫자만 입력 가능)
- 태그 기능 개선 (50자 이내, 20개 제한, 띄어쓰기 불가, 스페이스바로 등록)
- 인물관계 추가 (최대 200자, 최대 10개)
- 취미 목록 추가 (최대 100자, 최대 10개)
- 가치관 목록 추가 (최대 100자, 최대 10개)
- 목표 추가 (최대 200자, 최대 10개)
- 말투/특징적 표현 필드 추가 (최대 500자)
- 대화 스타일 추가 (최대 200자)
- 외모 설명 추가 (최대 1000자)
- 연령제한 제거
- UI 순서 변경 (채팅형태 입력 UI를 아래로 이동)
- 채팅형태 UI 개선 (최근 입력이 위쪽에 표시)
7f56d0b423 feat(character): 캐릭터 폼에 성격 특성, 세계관, 기억 기능 개선
- 성격 특성(personalities): 제목(trait)과 설명(description) 입력 UI 구현, 최대 10개
- 세계관(배경)(backgrounds): 제목(topic)과 설명(description) 입력 UI 구현, 최대 10개
- 기억(memories): 제목(title), 기억(content), 감정(emotion) 입력 UI 구현, 최대 20개
80b298440b feat(character): 캐릭터 등록 API
- 모든 내용을 form 에 등록하던 방식을 image와 request(json string)으로 등록하도록 수정
062bb4f7b2 feat(character): 캐릭터 삭제 API
- 삭제 API 호출 대신 isActive=false로 수정 API 호출하도록 변경
bbacab88c5 feat(character): 캐릭터 로드, 저장, 수정
- success가 true여야만 다음 행동을 하도록 처리
7ed23047e9 feat(character-banner): 캐릭터 배너 페이지 추가
- 리스트, 등록, 수정, 삭제 추가
- 페이징은 스크롤 로딩으로 구현
efca5e445d feat(character-banner): 캐릭터 배너 등록 다이얼로그
- 캐릭터 검색 결과가 없으면 '검색결과가 없습니다.'라고 안내
a3e82a81f8 feat(chat): 캐릭터 폼에 '한 줄 소개', 캐릭터 유형, 원작 정보 추가 및 API 필드 반영
CharacterForm.vue: 설명을 한 줄 소개(TextField)로 변경하고 MBTI 옆에 캐릭터 유형 Select 추가, 태그 아래 원작명/원작링크 필드 추가. api/character.js: createCharacter 요청에 characterType, originalTitle, originalLink 반영. 수정/등록 로직에 관련 필드 매핑 및 변경 필드 추출 반영. 왜: 신규 요구사항 반영 및 API/데이터 정합성 확보.
ba248f7680 feat(chat): 캐릭터 리스트, 추가/수정 폼, 배너
- response의 데이터 구조에 맞춰서 코드 수정
8f502f6d4d fix(chat): 캐릭터 추가/수정 폼 저장 버튼 로직 및 유효성 수정
- 수정 모드 이미지 변경 강제 제거, 시스템 프롬프트 필수 규칙 추가, 저장 버튼 라벨 조건부 표기(저장/수정)
- 수정 모드: 변경사항 또는 새 이미지 선택 시에만 저장 활성화, 등록 모드: 유효성만 충족 시 저장 가능
- 왜: 수정 UX 개선 및 필수 입력 요건 충족
e09f654aba fix(character-form): 수정 모드에서 변경 사항만 있으면 저장 버튼 활성화
- isSaveDisabled 로직을 등록/수정 모드로 분리
- 수정(edit) 모드에서는 필수값 유효성과 무관하게 변경 감지 시 버튼 활성화
- 등록(create) 모드에서는 기존대로 폼 유효성으로 활성화 판단
- saveCharacter에서도 등록 모드에서만 필수값 유효성 검사를 강제하도록 수정

관련 파일: src/views/Chat/CharacterForm.vue
806af4aba0 fix(character-form): 인물 관계 입력 레이아웃 3단 구성 및 입력 방식 수정
- relationshipType, currentStatus를 v-text-field로 변경하고 길이 제한(<=10자) 및 필수 입력 검증 추가
- 인물 관계 입력을 3단 레이아웃으로 재구성 (1행: 상대방 이름+관계명, 2행: 관계 타입+현재 상태+중요도, 3행: 관계 설명)
- addRelationship 로직 보강: 각 필드 substring 보정, 중요도 1~10 범위 보정, 최대 개수(10개) 체크
- 저장 로직 비교 함수에서 relationships를 객체 배열 비교 대상에 포함하여 변경 감지 정확도 개선

왜: 기존 TextField 하나로 관계를 모두 입력해 가독성과 구조화가 어려웠고, 선택형 필드 요구사항이 변경되어 직접 입력하도록 수정 필요
무엇: UI/검증/데이터 처리 전반을 요구사항에 맞게 분리 및 보강
071502d869 fix(character-form): 저장 버튼 비활성 문제 수정 및 필수 라벨 * 표시
- 등록(create) 모드에서 필수값 충족 시 버튼 활성화되도록 유효성 처리 정비

- 필수 항목 라벨에 빨간색 * 표시

- 인물관계 입력 필드의 검증 규칙을 v-form 유효성에서 제외

- 인물관계 필드 힌트 문구 개선
bc8833483a fix(character-image): 캐릭터 이미지 등록/수정
- 트리거 단어 최소 개수 3개로 수정
199049ab7c feat(chat): 캐릭터 폼에 JSON 내보내기/가져오기 기능 추가
- 툴바에 'JSON 다운로드/업로드' 버튼 추가
- buildSerializablePayload, exportToJson, onImportFileChange, applyImportedData 메서드 구현
- 이미지(image, imageUrl) 및 isActive는 직렬화/역직렬화에서 제외
- 업로드 시 버전 검증 및 길이/개수 제한, 중요도(1~10) 보정 적용
- 사용자 알림 메시지(성공/오류) 한글화
5ee0fe6a60 fix(chat): 인물관계 삭제 후 수정 저장 시 서버 반영되지 않던 문제 수정
수정 모드에서 saveCharacter가 변경 필드만 전송하면서 relationships 배열이 제외되어
삭제/수정 사항이 서버에 반영되지 않는 문제가 있었습니다. 수정 시 항상
relationships를 포함해 서버와 동기화되도록 변경했습니다.

- CharacterForm.vue: update 시 changedData.relationships 항상 포함
klaus merged commit 5fcdd7f06d into main 2025-09-10 06:26:03 +00:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: klaus/sodalive-vuejs-admin#74
No description provided.