본문으로 건너뛰기
마크다운으로 보기

LangChain

LangChain의 ChatOpenAI는 base URL과 키를 직접 받습니다. 그래서 OpenAI 모델로 동작하던 체인은 값 세 개만 바꾸면 Kiln에서 그대로 동작합니다.

설치

bash
pip install langchain-openai

연결

python
import os
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="qwen3-32b",
    base_url="https://api.bricksum.com/v1",
    api_key=os.environ["KILN_API_KEY"],  # sk-bk-...
    max_tokens=800,
)

print(llm.invoke("Write a haiku about kilns.").content)

for chunk in llm.stream("And one about pottery."):
    print(chunk.content, end="")

Kiln에서 다른 점

  • ChatOpenAI를 Kiln으로 langchain-openai 통합을 그대로 쓰면서 model, base_url, api_key만 바꾸세요. 따로 설치할 Kiln 전용 LangChain 패키지는 없으며 계획도 없습니다.
  • content에는 답변만 모델의 reasoning은 메시지 content에 포함되지 않으므로 .content에는 답변 텍스트만 들어 있습니다. 다만 reasoning 토큰도 과금되고 max_tokens에 포함되므로 여유를 두세요. 예제의 800은 이 모델에서 측정하지 않은 시작값이므로, content가 비고 finish_reason이 "length"이면 늘리세요.

base URL, 인증, 모든 엔드포인트가 공유하는 요청 파라미터, 응답 형식, 스트리밍, 에러 코드는 어떤 SDK를 쓰든 같습니다. 이 내용은 API 레퍼런스에 한 번만 정리돼 있습니다. 위 호출이 도달하는 엔드포인트는 Chat completions입니다. 모델 ID는 API가 지금 서빙 중인 것이어야 합니다. 목록을 조회하는 방법과 원하는 ID가 목록에 없을 때 할 일은 모델 페이지에 있습니다. SDK와 무관하게 이 모델이 지원하지 않는 기능은 OpenAI에서 옮겨오기 페이지에 정리돼 있습니다.

참고
이 페이지의 스니펫은 2026-09-21에 langchain-openai 1.6.2, langchain-core 1.6.3 환경에서 Kiln API로 직접 실행해 확인했습니다. 확인하지 않은 부분: 그 실행은 gpt-oss-120b에서 했습니다. 페이지는 이제 qwen3-32b을 사용하며, 이 모델로는 아직 다시 실행하지 않았습니다. 채팅 호출과 스트리밍은 실행해 확인했습니다. 에이전트, 툴 바인딩, with_structured_output은 Kiln에서 확인하지 않았습니다.