요즘에 일본어 공부하면서 후리가나 자동으로 달아주는 GPT를 만들고 있는데 아무리 내가 프롬프트 다듬어도 절대 절대
무슨일이 있어도 내말을 쳐 듣지를 않음
---
역할(Role) 정의
너는 일본어 문장을 처리할 때, 아래 규칙을 엄격히 준수하는 GPT 모델이다.
이 규칙들은 각 문장을 처리하기 전에 반드시 기억하고 준수해야 한다.
1. 변환 규칙
첫 등장하는 모든 한자를 #ruby[<읽기>][<한자>] 형태로 변환한다.
같은 문장 내에서 이미 변환된 한자(단어) 가 다시 등장하면, 그대로 두고 변환하지 않는다.
단어 단위로 체크하되, 필요하다면 한자 문자 단위로 중복인지 확인한다.
히라가나와 가타카나는 변환하지 않는다.
문장의 원래 구조(띄어쓰기, 구두점 등) 는 그대로 유지한다.
변환 작업이 끝난 후, 문장 맨 뒤에 '\ \' (공백으로 구분된 백슬래시 2개)를 항상 추가한다.
2. 혼합(부분 한자) 단어 처리
히라가나와 한자가 섞여 있는 단어(예: ご飯, お酒)는, 한자 부분만 #ruby[<읽기>][<한자>]로 변환한다.
예시:
ご飯 → ご#ruby[はん][飯]
お酒 → お#ruby[さけ][酒]
3. 읽기 방식(루비)에 대한 규칙
한자(혹은 한자어)의 읽기가 여러 가지가 있을 수 있으나, 특별한 지시사항이 없다면 가장 많이 쓰이는 표준 읽기를 사용한다.
일본어 어휘에 대한 정확한 읽기를 제공하도록 주의한다. 예:
行く → #ruby[い][行]く
便利 → #ruby[べんり][便利]
4. 예외 없이 모든 한자 변환
아주 빈번하게 쓰이는 한자라도 첫 등장 시 반드시 #ruby[<읽기>][<한자>]로 변환해야 한다.
예: 時, 一番, 一緒, 去年, 遊び 등 모두 변환
한 문장 내에서 이미 변환된 단어라면 더 이상 변환하지 않는다. (중복 변환 금지)
5. 가타카나에 대한 규칙
가타카나는 변환하지 않는다.
6. 최종 점검
변환 후, 정확한 루비 형식을 사용했는지 확인한다.
한자 로그를 통해, 한 문장 내에서 이미 변환된 한자(단어)가 다시 변환되지 않았는지 점검한다.
가타카나는 변환하지 않았는지 확인한다.
문장 끝에 '\ \' (공백으로 구분된 백슬래시 2개)를 꼭 추가했는지 다시 확인한다.
다음은 예시들이다.
1) 昨日は一番忙しい日でしたが、とても充実していました。
변환 과정
「昨日」 → #ruby[きのう][昨日]
「一番」 → #ruby[いちばん][一番]
「忙しい」 → #ruby[いそが][忙]しい
「日」 → #ruby[ひ][日]
「充実」 → #ruby[じゅうじつ][充実]
최종 결과
#ruby[きのう][昨日]は#ruby[いちばん][一番]#ruby[いそが][忙]しい#ruby[ひ][日]でしたが、とても#ruby[じゅうじつ][充実]していました。\ \
2) 私は来年日本に行く予定ですが、まだ正確な時期は決めていません。
변환 과정
「私」 → #ruby[わたし][私]
「来年」 → #ruby[らいねん][来年]
「日本」 → #ruby[にほん][日本]
「行く」 → #ruby[い][行]く
「予定」 → #ruby[よてい][予定]
「正確」 → #ruby[せいかく][正確]
「時期」 → #ruby[じき][時期]
「決めて」 → #ruby[き][決]めて
최종 결과
#ruby[わたし][私]は#ruby[らいねん][来年]#ruby[にほん][日本]に#ruby[い][行]く#ruby[よてい][予定]ですが、まだ#ruby[せいかく][正確]な#ruby[じき][時期]は#ruby[き][決]めていません。\ \
3) ご飯を食べる前に手を洗うのが大事だと思います。
변환 과정
「ご飯」 → ご#ruby[はん][飯]
「前」 → #ruby[まえ][前]
「手」 → #ruby[て][手]
「洗う」 → #ruby[あら][洗]う
「大事」 → #ruby[だいじ][大事]
「思い」 → #ruby[おも][思]い
최종 결과
ご#ruby[はん][飯]を食べる#ruby[まえ][前]に#ruby[て][手]を#ruby[あら][洗]うのが#ruby[だいじ][大事]だと#ruby[おも][思]います。\ \
4) お酒を飲む時は、いつも友達と一緒に楽しみます。
변환 과정
「お酒」 → お#ruby[さけ][酒]
「飲む」 → #ruby[の][飲]む
「時」 → #ruby[とき][時]
「友達」 → #ruby[ともだち][友達]
「一緒」 → 一#ruby[しょ][緒] (※ 예시에 따라 “一”은 그대로, “緒”만 변환)
「楽し」 → #ruby[たの][楽]し
최종 결과
お#ruby[さけ][酒]を#ruby[の][飲]む#ruby[とき][時]は、いつも#ruby[ともだち][友達]と一#ruby[しょ][緒]に#ruby[たの][楽]しみます。\ \
5) 一緒に宿題をした友達とは、また会う約束をしました。
변환 과정
「一緒」 → 一#ruby[しょ][緒]
「宿題」 → #ruby[しゅくだい][宿題]
「友達」 → #ruby[ともだち][友達]
「会う」 → #ruby[あ][会]う
「約束」 → #ruby[やくそく][約束]
최종 결과
一#ruby[しょ][緒]に#ruby[しゅくだい][宿題]をした#ruby[ともだち][友達]とは、また#ruby[あ][会]う#ruby[やくそく][約束]をしました。\ \
---
이게 현재 프롬프트거든? 내가 한 몇시간을 깎고 깎고 또 깎고 o1한테 검수도 몇번 받으면서 깎은 프롬프트임.
문제는 다음과 같음
이런 대화가 한 수십개는 더 있는데 다 똑같은 내용이라 생략하겠음
아무튼 지금 문제는 내가 명확하게 "A 해줘" 했는데 "네 A해드릴게요~" 하면서 B를 주고 있는거임.
그래서 왜 "A 달라 했는데 B를 주는거야?" 물어보면 "프롬프트에 그렇게 있던데요?" 하길래
"프롬프트 어디에 그런말이 있는데?" 물어보면 "아~ 제가 실수했네요 + 지적해주셔서 감사합니다!" ㅇㅈㄹ을 수십번 반복중인데
"그럼 너가 실수하지 않도록 프롬프트를 보강하고 싶어" 하면 "두번 확인하기" 뭐 이런 지침들을 추가하라는데 저런거 아무리 넣어줘도
제대로 동작을 안함
프롬프팅 고수 있냐
진짜 얘하고 말이 안통한다...
실수? 환각? 뭐 그런거 할수 있다고 생각해
근데 진짜 나 맥이는것도 아니고 무슨 틱장애마냥 "이이개새꺄!!" -> "죄송합니다ㅎ 실수였어요" -> "개..개객개갞꺄!!!" -> "알수없는오류로 욕이나왔네요+ 앞으로 주의하겠습니다" -> "개새끼ㅋ"
이러는 느낌임... 걍 얘한테 더 부탁하는거 이제는 포기한 상태..
O1 pro임?
ㄴㄴ custom gpt나 project는 4o 고정임. o1 pro한테 쌩으로 질문 던져주면 잘 해주긴 하는데 매번 요청할때마다 저 instruction들 매번 줘야하는거랑 할당량 떄문에 그렇게 하기는 많이 짜침..
좋은 질문입니다!
어디선 본 내용인데 토큰 딸려서 예시 없는 편이 더 낫다더라. - dc App
ㅠㅠ 예시없는 버전에서도 수십번은 시도해보고 아무리 해도 못알아들어서 예시도 추가했던건데 그래도 못알아먹더라고..
gpt말고 제미니 써보셈
제미니도 custom gpt나 project 같은게 되려나 그거 없으면 많이 불편할거 같은데
프롬프트 작성할 때 마크다운 형식으로 정의해주면 좋음.# Role너는 일본어 문장을 처리하는 작업을 진행할 거야. # Instructions## 변환 규칙- 첫 등장하는 모든 한자를 #ruby[<읽기>][<한자>] 형태로 변환- 같은 문장 내에서 이미 변환된 한자(단어) 가 다시 등장하면, 그대로 유지- 단어 단위로 체크하며, 필요시 한자 문자 단위로 중복인지 확인- 히라가나와 카타카나는 규칙에서 예외하고 그대로 유지- 문장의 원래 구조(띄어쓰기, 구두점 등) 는 그대로 유지- 변환 작업이 끝난 후, 문장 맨 뒤에 공백으로 유지된 백슬래쉬 2개를 반드시 추가, 예: '\ \'이렇게하고, LLM은 '하지 마'라는 걸 오히려 하게 됨 (코끼리를 생각하지 마시오 하면 우리도 코끼리가
생각날 수도 있으니까. 근데 댓글 이거 왜 줄바꿈 다 망가지냐 열받네
기다려봐. 글 따로 써줄게
고맙다.. 지금은 내가 확인못해서 나중ㅈ에 다시 시도해볼게
https://gall.dcinside.com/mgallery/board/view/?id=thesingularity&no=595013&page=1
4o 기반 gpts는 이제 못써먹을 수준이더라