프로젝트

일반

사용자정보

Actions

이슈 #376

진행중
RL RL

이슈 #235: 5-2. 사용자 프롬프트 전처리 함수

사용자 입력 특수문자·제어문자 이스케이프 처리

이슈 #376: 사용자 입력 특수문자·제어문자 이스케이프 처리

Ryan Lee이(가) 약 7시간 전에 추가함.

상태:
신규
우선순위:
보통
담당자:
목표버전:
시작일:
2026/04/16
완료일:
진척도:

0%

추정시간:

설명

작업 내용

  • wrapUserInput()가 쓰는 구분 마커([사용자 입력], [/사용자 입력])가 사용자 본문에 포함될 때 프롬프트 구조가 깨지는 문제 방지
    • 래핑 전 마커 문자열을 이스케이프하거나 unique 토큰으로 치환
  • 제어/불가시 문자 정리:
    • BOM (U+FEFF), zero-width chars (U+200B~D), null byte (U+0000)
    • RTL/LTR override 계열 (U+202AE, U+20669) — 허용 정책 결정 필요
  • 최대 입력 길이 제한 정책 수립 (max_tokens 64k 기준 입력 허용 범위)

수용 기준

  • 사용자가 입력에 [/사용자 입력] 문자열을 포함해도 시스템 프롬프트 구조가 깨지지 않고 LLM이 해당 내용을 일반 텍스트로 처리한다
  • zero-width character가 포함된 입력이 의도치 않은 렌더링 이상 없이 처리된다
  • 제어 문자는 전송 전 제거되고, 로그에 제거 개수가 표기된다 (dev)
  • 과도하게 긴 입력은 사전 경고 또는 잘림 처리된다

의존성 / 참고

  • 상위 이슈: #235 (5-2 본체)
  • 관련: #237 (wrapUserInput), AXI §8 (05e9836)
  • 주요 파일: src/stores/chatStore.ts (wrapUserInput() 호출 지점), src/services/api/anthropic.ts
Actions

내보내기 PDF Atom