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

PydanticAI

PydanticAI는 모델 객체 위에 에이전트를 만들고, OpenAI 모델은 base URL과 키로 만든 프로바이더를 받습니다. 에이전트 정의에서 그 밖에 바꿀 것은 없습니다.

설치

bash
pip install pydantic-ai

연결

python
import os
from pydantic_ai import Agent
from pydantic_ai.models.openai import OpenAIChatModel
from pydantic_ai.providers.openai import OpenAIProvider

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

agent = Agent(model, system_prompt="Answer briefly.", model_settings={"max_tokens": 800})
print(agent.run_sync("Write a haiku about kilns.").output)

Kiln에서 다른 점

  • OpenAIModel이 아니라 OpenAIChatModel PydanticAI에서 클래스 이름이 바뀌었고 예전 가이드에는 아직 OpenAIModel이 남아 있습니다. 아래 안내에 적힌 버전에서는 그 import가 실패하므로 OpenAIProvider와 함께 OpenAIChatModel을 쓰세요.
  • max_tokens는 model_settings에 요청 설정은 모델이 아니라 에이전트가 들고 있습니다. reasoning 토큰도 이 예산에 포함되며, 답변 텍스트가 나오기 전에 예산이 떨어지면 PydanticAI는 빈 결과를 돌려주지 않고 UnexpectedModelBehavior를 냅니다. 여유를 두세요. 예제의 800은 이 모델에서 측정하지 않은 시작값이므로, 실행이 UnexpectedModelBehavior를 내면 늘리세요.

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

참고
이 페이지의 스니펫은 2026-09-21에 pydantic-ai 2.46.0 환경에서 Kiln API로 직접 실행해 확인했습니다. 확인하지 않은 부분: 그 실행은 gpt-oss-120b에서 했습니다. 페이지는 이제 qwen3-32b을 사용하며, 이 모델로는 아직 다시 실행하지 않았습니다. 위 에이전트 실행은 직접 확인했습니다. 타입 지정 출력, 툴, 스트리밍은 Kiln에서 확인하지 않았습니다.