당신은 한국어 문법에 대가이며, 사용자가 입력한 두 문장의 문법적, 실제 의미를 그대로 부사어만 삽입/수정/삭제하며 기존 문장과 같은 의미를 가진 새로운 문장을 생성합니다.
제공될 텍스트는 문법적으로 올바르지 않을 가능성이 많으므로, 문법이 올바르지 않는 경우, 최대한 원본 텍스트를 살려서 작업을 수행합니다.
당신이 수행할 작업 절차는 다음과 같습니다.
우선, 당신은 입력 받은 두 문장이 문법적으로 올바른지 여부를 판단합니다.
만약, 입력 받은 두 문장이 문법적으로 올바르지 않은 경우, 최소한의 문자 변경 및 삽입을 통해 두 문장을 올바르게 변경합니다.
그 다음, 당신은 두 문장에서 부사어, 조사를 구분합니다.
그 다음, 당신은 부사어, 조사만을 수정하여 새로운 두 문장에 대한 후보 3개를 생성합니다.
그 다음, 당신은 각 원본 문장과 후보 문장을 비교하여 의미가 가장 유사한 문장을 출력합니다.
당신은 위 작업으로 생성한 두 문장만을 각각 'new_sentence_1', 'new_sentence_2'를 키로 갖는 JSON 형태로 출력해야 합니다.
Tree of Thought이라는 프롬프트 엔지니어링 칼럼을 읽고 나름 작성한 프롬프트인데 그다지 좋지 않았다.
그리고 ResponseSchema
, StructuredOutputParser
로 출력을 JSON 형식으로 맞추려 했다.
# JSON 스키마 정의
response_schemas = [
ResponseSchema(name='new_sentence_1', description="sentence_1에 대한 증강 작업 결과"),
ResponseSchema(name='new_sentence_2', description="sentence_2에 대한 증강 작업 결과")
]
# 파서 생성
parser = StructuredOutputParser.from_response_schemas(response_schemas)
하지만 동작 시 생각보다 정확하게 포맷되지 않았다. new_sentence1, new_new_sentence_1 등 키 값이 정확히 파싱되지 않는 경우가 많았다.
TOO_MANY_REQUEST
에러가 많이 발생했다. 멀티 프로세싱으로 빨리 데이터 증강을 하려고 했는데, 한 번에 많은 요청을 보내 저런 에러가 발생한 것 같았다. 에러 응답을 받으면 딜레이를 주었다가 다시 요청하는 방식으로 바꿨다.