From 09f8ad86b6330e3c14cc0625ffe653fc47fa20d2 Mon Sep 17 00:00:00 2001 From: aengzu Date: Mon, 23 Sep 2024 12:40:21 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=ED=80=98=EC=8A=A4=ED=8A=B8=20=EB=8B=AC?= =?UTF-8?q?=EC=84=B1=EB=B0=94=20=EC=95=88=EB=B3=B4=EC=9D=B4=EB=8A=94=20?= =?UTF-8?q?=EA=B1=B0=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/data/service/conversation_analysis_service.dart | 7 ++++--- lib/data/service/rejection_service.dart | 3 ++- lib/data/service/response_service.dart | 2 +- .../screens/chatting/controller/chat_viewmodel.dart | 13 ++++++------- .../screens/feedback/view/feedback_view.dart | 2 +- 5 files changed, 14 insertions(+), 13 deletions(-) diff --git a/lib/data/service/conversation_analysis_service.dart b/lib/data/service/conversation_analysis_service.dart index 158dcfe..c3fa803 100644 --- a/lib/data/service/conversation_analysis_service.dart +++ b/lib/data/service/conversation_analysis_service.dart @@ -23,13 +23,14 @@ class ConversationAnalysisService { defaultOptions: const ChatOpenAIOptions( temperature: 0.8, model: 'gpt-4-turbo', - maxTokens: 600, + maxTokens: 300, ), ); // 프롬프트 넣기 final conversationAnalysisPrompt = ChatPromptTemplate.fromTemplate(''' 당신은 다음의 대화 기록들과 사용한 거절 방법, 미달성 퀘스트를 보고, 사용자의 대화 능력을 평가해야합니다. 부탁을 거절하는 능력을 평가하고자 합니다. + 사용자는 중학생 정도로 그들이 이해할만한 부드러운 언어로 평가합니다. 간혹가다 이모티콘도 써주세요. 대화 기록에선 사용자의 'userMessage' 에 대한 ai의 반응인 'text', 'feeling', 'affinityScore' 가 있으며, 'userMessage' 에서 사용된 거절 방법이 'rejection_content' 으로 그리고 거절 점수가 'rejection_score' 로 나타납니다. 대화 기록에서 'userMessage' 기록들을 보고 유저의 거절 능력을 평가해주세요. @@ -39,9 +40,9 @@ class ConversationAnalysisService { [미달성 퀘스트] {quest} -답변으로 'evaluation'(string), 'usedRejection'(string) 을 반드시 JSON 객체로 리턴하세요. (\```json 로 시작하는 문자열을 생성하지 마세요) +답변으로 'evaluation'(string), 'usedRejection'(string) 을 반드시 JSON 객체로 리턴하세요. (\```json 로 시작하는 문자열을 생성하지 마세요. 전체는 260자 이내로 출력되어야합니다.) - 'evaluation'은 사용자의 대화 능력을 AI의 입장에서 500자 이내로 평가한 문자열입니다. (string) + 'evaluation'은 사용자의 대화 능력을 AI의 입장에서 180자 이내로 평가한 문자열입니다. (string) 'evalution' 은 사용자의 대화능력을 평가할 뿐 아니라 사용자의 대화 능력을 개선할 수 있는 피드백을 제공해야합니다. 대화 기록에서 인용할 만한 텍스트가 있다면 직접적으로 인용하여 지적 및 칭찬을 해주세요. 또한, 대화 기록에서 사용자의 말이 character 의 감정을 상하게 할 부분이 있거나, 사용자가 과하게 자기 표현을 못하는 경우에 이를 지적해주세요. diff --git a/lib/data/service/rejection_service.dart b/lib/data/service/rejection_service.dart index 7dbb348..4b65b88 100644 --- a/lib/data/service/rejection_service.dart +++ b/lib/data/service/rejection_service.dart @@ -24,6 +24,7 @@ class RejectionService { final rejectionPrompt = ChatPromptTemplate.fromTemplate(''' 당신은 주어진 message를 바탕으로 거절 카테고리를 출력하는 역할을 합니다. message가 주어지면, 해당 내용에 따라 거절 카테고리를 반환하세요. + 부탁을 수락한 경우는 어떠한 카테고리에도 속하지 않습니다. message : {message} @@ -42,7 +43,7 @@ class RejectionService { 무시하거나 냉담한 반응: ("내가 왜 신경 써야 해?", "알아서 해" 등) 비꼬는 태도: ("네가 그걸 할 수 있다고?" 등) 불성실한 대답: ("몰라", "어쩔핑" 등) - 이유 없는 거절: ("안 돼", "안 할래" 등 단순히 거절만 표현하고 구체적인 이유를 제공하지 않는 경우) + 이유 없는 거절: ("안 돼", "안 할래" 등 단순히 거절만 표현하고 구체적인 이유를 제공하지 않는 경우 ) 원인을 상대로 돌리기: ("네가 잘못했으니까 안 도와줄 거야" 등) 주제에서 벗어난 말: ("저녁 뭐 먹지?" 등) 세 글자 이하의 성의 없는 답변: ("응", "그래" 등) diff --git a/lib/data/service/response_service.dart b/lib/data/service/response_service.dart index 18f7b91..ca8b342 100644 --- a/lib/data/service/response_service.dart +++ b/lib/data/service/response_service.dart @@ -45,7 +45,7 @@ class ResponseService { {persona} - 당신은 'message', 'isEnd'을 반드시 JSON 객체로 리턴하세요. + 당신은 'message', 'isEnd'을 반드시 JSON 객체로 리턴하세요. (\```json 로 시작하는 문자열을 생성하지 마세요) - message: 메시지 내용을 나타냅니다. (string) - isEnd : 만약 user의 마지막 말이 부탁에 대한 수락이라면 바로 isEnd 를 true로 설정하시오. default 값은 false 입니다. 만약 isEnd 가 false이라면 물러서지 않고 계속 부탁합니다.(bool) diff --git a/lib/presentation/screens/chatting/controller/chat_viewmodel.dart b/lib/presentation/screens/chatting/controller/chat_viewmodel.dart index 9067cd2..2742a76 100644 --- a/lib/presentation/screens/chatting/controller/chat_viewmodel.dart +++ b/lib/presentation/screens/chatting/controller/chat_viewmodel.dart @@ -216,14 +216,13 @@ class ChatViewModel extends GetxController { String questContent = questContentMap[character.name]?[questIndex] ?? '알 수 없는 퀘스트'; // 퀘스트 달성 메시지 출력 - Fluttertoast.showToast( - msg: "퀘스트 달성! $questContent", - toastLength: Toast.LENGTH_SHORT, - gravity: ToastGravity.TOP_RIGHT, - timeInSecForIosWeb: 2, + Get.snackbar( + "퀘스트 달성!", + "퀘스트 달성! $questContent", + snackPosition: SnackPosition.TOP, backgroundColor: Colors.blue[700], - textColor: Colors.white, - fontSize: 16.0, + colorText: Colors.white, + duration: Duration(seconds: 2), ); } } diff --git a/lib/presentation/screens/feedback/view/feedback_view.dart b/lib/presentation/screens/feedback/view/feedback_view.dart index 51d1a2d..93cc4c0 100644 --- a/lib/presentation/screens/feedback/view/feedback_view.dart +++ b/lib/presentation/screens/feedback/view/feedback_view.dart @@ -26,7 +26,7 @@ class FeedbackView extends StatelessWidget { children: [ // 고정된 높이의 스크롤 가능한 영역 SizedBox( - height: 0.8.sh, // 화면 높이의 70% + height: 0.75.sh, // 화면 높이의 70% child: SingleChildScrollView( padding: const EdgeInsets.all(16.0), child: Column(