1P by doolayer 5일전 | ★ favorite | 댓글 2개

안녕하세요!

AI 모델을 활용하다 보면 구조화된 JSON 출력이 꼭 필요할 때가 많습니다.
저 역시 여러 프로젝트를 진행하면서 JSON 출력을 활용할 상황이 자주 있었는데, 매번 같은 불편함을 겪었습니다.

LLM 구조화 출력의 불편한 점은 크게 3가지 였습니다.

  1. 코드 블록(````json … ``` ) 처리
    대부분의 LLM은 JSON을 반환할 때 세 개의 백틱과 json 키워드로 감싼 코드 블록을 사용합니다.
    간단한 정규식으로도 처리할 수 있지만, 매번 반복하기 귀찮더군요. 패키지 차원에서 한 줄로 처리되면 훨씬 편리합니다.

  2. 중첩된 따옴표 문제
    JSON에서는 문자열을 쌍따옴표(")로 감싸야 합니다. 하지만 문자열 내부에 다시 인용부호가 등장하면 \" 같은 이스케이프가 필요합니다.
    LLM은 이 구분을 종종 놓쳐 잘못된 JSON을 반환합니다. 이 문제를 자동으로 보정해주는 기능이 필요했습니다.

  3. 스마트 따옴표(유니코드 인용부호)
    LLM이 생성한 문장에는 흔히 “ ” 같은 스마트 따옴표가 포함됩니다.
    JSON 표준에는 맞지 않으므로, 이를 일반 쌍따옴표(")로 일괄 변환할 수 있어야 합니다.

찾아보니 Node.js 기반의 ai-json-fixer 프로젝트는 있었지만, 파이썬 생태계에는 마땅한 도구가 없더군요.

그래서 만들었습니다! (GPT 선생님과 함께요 ㅎㅎ)
pip 으로 간단히 설치해서 사용할 수 있습니다.
pip install jsonquotefixer

한번 써보고 마구마구 비판해주세요 ㅎㅎ

ipynb로 깃헙에 예시가 잘 보이면 좋겠네요

시간오더는 n (시퀀스 길이) 입니다!