캐릭터 챗봇 #74
| @@ -23,35 +23,33 @@ async function getCharacter(id) { | ||||
| async function createCharacter(characterData) { | ||||
|   const formData = new FormData() | ||||
|  | ||||
|   // 기본 필드 추가 | ||||
|   formData.append('name', characterData.name) | ||||
|   formData.append('description', characterData.description) | ||||
|   formData.append('isActive', characterData.isActive) | ||||
|  | ||||
|   // 추가 필드가 있는 경우 추가 | ||||
|   if (characterData.personality) formData.append('personality', characterData.personality) | ||||
|   if (characterData.gender) formData.append('gender', characterData.gender) | ||||
|   if (characterData.birthDate) formData.append('birthDate', characterData.birthDate) | ||||
|   if (characterData.mbti) formData.append('mbti', characterData.mbti) | ||||
|   if (characterData.ageRestricted !== undefined) formData.append('ageRestricted', characterData.ageRestricted) | ||||
|   if (characterData.worldView) formData.append('worldView', characterData.worldView) | ||||
|   if (characterData.relationships) formData.append('relationships', characterData.relationships) | ||||
|   if (characterData.speechPattern) formData.append('speechPattern', characterData.speechPattern) | ||||
|   if (characterData.systemPrompt) formData.append('systemPrompt', characterData.systemPrompt) | ||||
|  | ||||
|   // 태그와 메모리는 배열이므로 JSON 문자열로 변환 | ||||
|   if (characterData.tags && characterData.tags.length > 0) { | ||||
|     formData.append('tags', JSON.stringify(characterData.tags)) | ||||
|   } | ||||
|  | ||||
|   if (characterData.memories && characterData.memories.length > 0) { | ||||
|     formData.append('memories', JSON.stringify(characterData.memories)) | ||||
|   } | ||||
|  | ||||
|   // 이미지가 있는 경우 추가 | ||||
|   // 이미지만 FormData에 추가 | ||||
|   if (characterData.image) formData.append('image', characterData.image) | ||||
|  | ||||
|   return Vue.axios.post('/api/admin/characters', formData, { | ||||
|   // 나머지 데이터는 JSON 문자열로 변환하여 request 필드에 추가 | ||||
|   const requestData = { | ||||
|     name: characterData.name, | ||||
|     systemPrompt: characterData.systemPrompt, | ||||
|     description: characterData.description, | ||||
|     age: characterData.age, | ||||
|     gender: characterData.gender, | ||||
|     mbti: characterData.mbti, | ||||
|     speechPattern: characterData.speechPattern, | ||||
|     speechStyle: characterData.conversationStyle, | ||||
|     appearance: characterData.appearance, | ||||
|     tags: characterData.tags || [], | ||||
|     hobbies: characterData.hobbies || [], | ||||
|     values: characterData.values || [], | ||||
|     goals: characterData.goals || [], | ||||
|     relationships: characterData.relationships || [], | ||||
|     personalities: characterData.personalities || [], | ||||
|     backgrounds: characterData.backgrounds || [], | ||||
|     memories: characterData.memories || [] | ||||
|   } | ||||
|  | ||||
|   formData.append('request', JSON.stringify(requestData)) | ||||
|  | ||||
|   return Vue.axios.post('/admin/chat/character/register', formData, { | ||||
|     headers: { | ||||
|       'Content-Type': 'multipart/form-data' | ||||
|     } | ||||
| @@ -62,34 +60,33 @@ async function createCharacter(characterData) { | ||||
| async function updateCharacter(characterData) { | ||||
|   const formData = new FormData() | ||||
|  | ||||
|   // 기본 필드 추가 | ||||
|   formData.append('name', characterData.name) | ||||
|   formData.append('description', characterData.description) | ||||
|   formData.append('isActive', characterData.isActive) | ||||
|  | ||||
|   // 추가 필드가 있는 경우 추가 | ||||
|   if (characterData.personality) formData.append('personality', characterData.personality) | ||||
|   if (characterData.gender) formData.append('gender', characterData.gender) | ||||
|   if (characterData.birthDate) formData.append('birthDate', characterData.birthDate) | ||||
|   if (characterData.mbti) formData.append('mbti', characterData.mbti) | ||||
|   if (characterData.ageRestricted !== undefined) formData.append('ageRestricted', characterData.ageRestricted) | ||||
|   if (characterData.worldView) formData.append('worldView', characterData.worldView) | ||||
|   if (characterData.relationships) formData.append('relationships', characterData.relationships) | ||||
|   if (characterData.speechPattern) formData.append('speechPattern', characterData.speechPattern) | ||||
|   if (characterData.systemPrompt) formData.append('systemPrompt', characterData.systemPrompt) | ||||
|  | ||||
|   // 태그와 메모리는 배열이므로 JSON 문자열로 변환 | ||||
|   if (characterData.tags && characterData.tags.length > 0) { | ||||
|     formData.append('tags', JSON.stringify(characterData.tags)) | ||||
|   } | ||||
|  | ||||
|   if (characterData.memories && characterData.memories.length > 0) { | ||||
|     formData.append('memories', JSON.stringify(characterData.memories)) | ||||
|   } | ||||
|  | ||||
|   // 이미지가 있는 경우 추가 | ||||
|   // 이미지만 FormData에 추가 | ||||
|   if (characterData.image) formData.append('image', characterData.image) | ||||
|  | ||||
|   // 나머지 데이터는 JSON 문자열로 변환하여 request 필드에 추가 | ||||
|   const requestData = { | ||||
|     name: characterData.name, | ||||
|     systemPrompt: characterData.systemPrompt, | ||||
|     description: characterData.description, | ||||
|     age: characterData.age, | ||||
|     gender: characterData.gender, | ||||
|     mbti: characterData.mbti, | ||||
|     speechPattern: characterData.speechPattern, | ||||
|     speechStyle: characterData.conversationStyle, | ||||
|     appearance: characterData.appearance, | ||||
|     tags: characterData.tags || [], | ||||
|     hobbies: characterData.hobbies || [], | ||||
|     values: characterData.values || [], | ||||
|     goals: characterData.goals || [], | ||||
|     relationships: characterData.relationships || [], | ||||
|     personalities: characterData.personalities || [], | ||||
|     backgrounds: characterData.backgrounds || [], | ||||
|     memories: characterData.memories || [], | ||||
|     isActive: characterData.isActive | ||||
|   } | ||||
|  | ||||
|   formData.append('request', JSON.stringify(requestData)) | ||||
|  | ||||
|   return Vue.axios.put(`/api/admin/characters/${characterData.id}`, formData, { | ||||
|     headers: { | ||||
|       'Content-Type': 'multipart/form-data' | ||||
|   | ||||
		Reference in New Issue
	
	Block a user