제브챗(jevchat)이 Jev의 다음 기호 예측 확률을 이용해 답변을 한 글자씩 생성하는 챗봇으로 구현됐다. 제브챗은 사용자의 질문과 지금까지 작성된 답변을 Jev에 보내 다음에 올 기호를 묻고, 그 확률 분포에서 하나를 뽑아 답변에 덧붙이는 방식이다. 깃허브에 공개된 제브챗 저장소에 따르면 이 프로젝트는 재미를 위한 실험으로, 비용은 다소 비현실적이지만 결과가 우스꽝스럽다는 점을 목표로 한다.
Jev 확률로 답변을 한 기호씩 생성
제브챗은 매 단계마다 “사용자의 질문과 지금까지 작성된 답변을 바탕으로 다음에 올 기호는 무엇인가”를 Jev에 질문한다. 선택지는 알파벳 전체와 생성을 끝내는 STOP으로 구성되며, Jev가 각 선택지에 부여한 확률을 정규화한 뒤 샘플러가 다음 기호를 고른다. 선택된 기호를 답변에 붙이고 같은 과정을 반복하다가 STOP이 나오면 생성을 멈춘다. 알파벳에는 일반 문자 집합뿐 아니라 일부 토큰 목록을 줄여 만든 목록도 포함할 수 있고, 여러 샘플링 전략을 선택할 수 있다.
분포를 얻는 방식은 `choice`와 `bisect`로 나뉜다. `choice`는 전체 알파벳을 놓고 한 번에 하나를 고르게 하는 반면, `bisect`는 알파벳을 정렬한 뒤 앞쪽인지 뒤쪽인지 묻는 예·아니오 질문을 이어가 후보군을 좁힌 다음, 작은 그룹 안에서 다시 선택 질문을 한다. 빔 너비를 1보다 크게 설정하면 각 단계의 살아 있는 빔마다 점수 하나가 비용으로 추가된다. 이때 temperature, top_p, top_k는 적용되지 않고 빔은 무작위 추출이 아니라 확률 순위로 정렬된다.
입력 방식 개선과 실행 기능
같은 질문을 Jev에 전달하는 방식도 두 가지다. `–presentation symbol`에서는 `a`, `i`, ` the`처럼 기호 자체를 선택지로 제시하고, Jev가 해당 기호를 답변 뒤에 붙였다고 가정한 상태에서 문법과 철자를 판단한다. 반면 `–presentation hypothesis`에서는 선택지를 이미 기호가 붙은 완성 문장으로 제시한다. 원문은 후자가 의사결정 모델의 용도에 더 맞는 방식이라며 프로젝트에서 가장 큰 개선이라고 설명했다. 문자 단위 알파벳에서 최상위 선택이 맞을 확률은 약 3배, 정답 기호에 배분되는 확률 질량은 2배로 늘었고, 선택지별 설명을 포함하는 방식보다 입력 토큰도 적었다고 밝혔다.
생성 결과는 실시간으로 화면에 표시된다. 사용자는 초당 기호 수와 문자 수, API 호출마다 걸린 시간, 전체 경과 시간, 마지막 단계에서 Jev가 높은 점수를 준 상위 기호를 확인할 수 있다. Ctrl-C를 한 번 누르면 진행 중인 요청이 끝난 뒤 생성을 중단하고 부분 답변을 남기며, 두 번째로 누르면 즉시 중단한다. 대화 모드에서는 부분 답변이 대화 기록에 보존되고 `ask` 명령은 취소 시 종료 코드 130을 반환한다. `/help`, `/alphabet [name]`, `/temp`, `/stop-bias`, `/reset`, `/stats`, `/exit` 같은 채팅 명령도 제공된다.
제브챗은 실행을 위해 `pyproject.toml` 옆의 `.env` 파일에 Jev 키를 넣도록 안내하며, `JEV_API_KEY`와 `TYPESAFE_API_KEY`도 사용할 수 있다. `.env`의 값이 외부 환경변수보다 우선하므로 파일을 수정하는 것만으로 키를 바꿀 수 있다. 구현 과정은 클로드(Claude)의 도움을 받은 실험으로 소개됐으며, 샘플링 알고리즘과 전략을 설명하면 클로드가 이를 구현했다고 적혔다. 테스트는 네트워크 없이 동작하는 가짜 클라이언트와 HTTP 모의 전송을 이용해 158개가 모두 오프라인으로 작성됐고, 실제 API를 호출하는 부분은 `jevchat bench`로 분리됐다. 별도의 출시 일정이나 가격, 외부 기업·경쟁사의 반응은 제시되지 않았으며, 현재 공개된 내용은 Jev의 확률 출력을 챗봇 생성 과정에 연결해 본 기술 실험의 범위에 머문다.