원문 제목: Release: llm-chat-completions-server 0.1a0 원문 URL: https://simonwillison.net/2026/Jul/30/llm-chat-completions-server/ 발행일: 2026-07-30
번역
LLM 0.32rc1에 도입된 새 콘텐츠-주소 가능(content-addressable) 로그의 핵심 목표 중 하나는, 다음과 같이 각 들어오는 메시지가 이전 대화를 확장하는 OpenAI Chat Completion 스타일 요청을 지원하는 것이었다.
curl http://localhost:8002/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{
"model": "qwen3.5-4b",
"messages": [
{"role": "user", "content": "Capital of France?"},
{"role": "assistant", "content": "Paris."},
{"role": "user", "content": "Germany?"}
]
}'
여기서 대화 상태는 클라이언트가 관리하므로, 각 요청마다 메시지 목록이 점점 길어진다. LLM의 새 스키마는 개별 메시지 부분의 해시를 이용해 중복을 제거하도록 설계되었다.
이를 검증하기 위해 나는 플러그인을 만들었다.
uv tool install llm --pre
llm install llm-chat-completions-server
llm chat-completions-server -p 9001
이 명령어들을 실행하면 9001 포트에 로컬 서버가 시작되어, 설치된 모든 LLM 모델(설치된 모든 플러그인의 모델 포함)을 ChatGPT Completions 호환 엔드포인트로 노출한다.
GPT-5.6 Sol이 이 모든 것을 작성했다. Sol이 OpenAI Chat Completions API 형태를 매우 잘 알고 있다는 것이 드러났다.
핵심 요약 (20줄)
- LLM 0.32rc1의 새 콘텐츠-주소 가능 로그는 OpenAI Chat Completion 스타일 요청을 지원하는 것이 목표이다.
- 각 요청에서 들어오는 메시지가 이전 대화를 확장하는 형태를 지원해야 한다.
- 예시는 curl로 localhost:8002/v1/chat/completions에 세 번의 메시지를 보내는 것이다.
- 대화 상태는 클라이언트가 관리하므로 요청마다 메시지 목록이 점점 길어진다.
- LLM의 새 스키마는 개별 메시지 부분의 해시를 이용해 중복을 제거한다.
- 이를 검증하기 위해 Simon은 llm-chat-completions-server 플러그인을 만들었다.
- 설치는 uv tool install llm --pre, 플러그인 설치, 서버 실행 단계로 이루어진다.
- 서버 실행 명령은 llm chat-completions-server -p 9001이다.
- 9001 포트에 로컬 서버가 시작된다.
- 서버는 설치된 모든 LLM 플러그인의 모델을 ChatGPT Completions 호환 엔드포인트로 노출한다.
- GPT-5.6 Sol이 이 플러그인 전체를 작성했다.
- gist 링크에서 전체 코드를 확인할 수 있다.
- Sol은 OpenAI Chat Completions API 형태를 매우 잘 알고 있다.
- 이 플러그인은 LLM 기반 애플리케이션을 OpenAI 호환 형식으로 쉽게 노출할 수 있게 한다.
- 로컬 개발과 통합 테스트에 유용하다.
- 메시지 저장을 위한 content-addressable hash ID는 포크된 대화 트리도 표현할 수 있다.
- 이는 LLM 0.32의 로깅 스키마 개선과 함께 가치를 발휘한다.
- 플러그인 형태로 제공되므로 사용자는 필요한 모델 플러그인만 설치할 수 있다.
- Simon은 새 로그 설계가 실제로 잘 작동하는지 확인하기 위해 이 서버를 만들었다.
- 이번 출시는 LLM 생태계에서 OpenAI 호환 서버를 쉽게 구축하는 새로운 가능성을 보여준다.