LLM 도구, httpx 의존성 문제로 이틀 연속 패치
최근 30일 조회수 — 좋아요 —핵심 요약
OpenAI 파이썬 라이브러리가 httpx 사용을 중단해 커맨드라인 도구 LLM이 설치 오류를 겪자 개발자가 이틀 만에 임시·정식 패치를 냈다.
사이먼 윌리슨(Simon Willison)이 만든 커맨드라인 도구 LLM이 지난 21일과 22일 이틀 연속으로 패치를 냈다. 원인은 의존성 문제였다. OpenAI 파이썬 라이브러리가 httpx 사용을 중단하면서, 이 라이브러리를 거쳐 httpx를 간접 설치받던 LLM의 신규 설치가 작동을 멈췄다.1
LLM은 httpx를 직접 의존성으로 명시한 적이 없다. openai 패키지를 통해 httpx가 딸려 들어오는 구조에 기대고 있었는데, openai 쪽에서 httpx를 빼버리자 그 전제가 깨진 것이다. 윌리슨은 21일 0.32.1을 내며 openai<3으로 버전을 고정해 급한 불부터 껐다.1 임시방편이었던 셈이다.
다음 날인 22일 나온 0.33이 근본 대응이다. 윌리슨은 이를 “더 포괄적인 수정”이라고 설명했다.2
httpx 문제 외에 0.33에는 기능 추가도 여럿 담겼다. llm embed와 llm embed-multi 명령이 --key 옵션을 받게 됐고, 파이썬 API의 EmbeddingModel.embed(), EmbeddingModel.embed_multi(), Collection.embed(), Collection.embed_multi() 메서드도 key= 인자를 받아 호출마다 다른 API 키를 임베딩 플러그인에 전달할 수 있다. 기존에 self.key를 읽던 플러그인은 호환성 폴백 덕분에 그대로 동작한다. 이로써 임베딩 모델도 일반 LLM 모델과 같은 키 처리 방식을 쓰게 됐다.
프롬프트 템플릿 처리도 바뀌었다. llm prompt의 -t/--template 옵션을 여러 번 반복해 템플릿을 순서대로 합칠 수 있다. 한 템플릿에 담긴 모델 설정을 다른 템플릿의 프롬프트와 조합하는 식이다. 예를 들어 모델과 reasoning_effort 옵션을 저장한 템플릿(lhigh)과 프롬프트만 저장한 템플릿(pelican)을 만든 뒤 llm -t lhigh -t pelican으로 합쳐 실행할 수 있다. 추론 기능을 지원하는 Responses API 모델에는 reasoning_summary 옵션도 추가됐다. auto, concise, detailed 세 값을 지원하며 llm openai endpoint --responses와 함께 쓴다.2
같은 시기 관련 플러그인 llm-openrouter도 0.7로 업데이트됐다. LLM 0.32와의 호환성을 맞췄고, OpenRouter를 통해 접근하는 모델의 추론 과정(reasoning trace)을 표시할 수 있게 됐다. 모델은 OpenRouter가 구현한 Responses API를 쓰도록 바뀌었고, Shell·WebFetch·WebSearch 세 가지 서버 측 도구가 새로 추가돼 -T WebSearch처럼 옵션으로 켤 수 있다.3
httpx 관련 소식 자체는 짧지만, 파이썬 생태계에서 상위 패키지가 간접 의존성을 조용히 바꿀 때 하위 도구가 얼마나 쉽게 깨질 수 있는지 보여주는 사례다. LLM 쪽은 이틀 만에 임시 패치와 정식 패치를 순차로 내놓으며 대응을 마쳤다.
Footnotes
읽기 목록은 이 브라우저에 저장됩니다.
출처
- Release: llm 0.32.1 — Simon Willison's Weblog
- Release: llm 0.33 — Simon Willison's Weblog
- Release: llm-openrouter 0.7 — Simon Willison's Weblog
이 글은 위 출처를 근거로 자동 생성된 뒤 발행됐습니다. 원문을 함께 확인해 주세요.