Anthropic SDK 연동 (Python / TypeScript)
Anthropic 공식 SDK로 1zheai 호출: base_url에 https://1zheai.com 입력, 캐시·스트리밍·도구 호출·thinking을 네이티브 지원.
Anthropic 공식 SDK는 네이티브 /v1/messages을 사용하므로 Claude의 모든 파라미터를 그대로 사용할 수 있습니다. 변경할 부분은 base_url과 api_key뿐입니다.
pip install anthropicnpm install @anthropic-ai/sdkimport osimport anthropic
client = anthropic.Anthropic( base_url="https://1zheai.com", api_key=os.environ["ONEZHE_API_KEY"],)
message = client.messages.create( model="claude-sonnet-5-5", max_tokens=1024, messages=[{"role": "user", "content": "用一句话介绍你自己"}],)print(message.model)print(message.content[0].text)print(message.usage)import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({ baseURL: "https://1zheai.com", apiKey: process.env.ONEZHE_API_KEY,});
const message = await client.messages.create({ model: "claude-sonnet-5-5", max_tokens: 1024, messages: [{ role: "user", content: "用一句话介绍你自己" }],});console.log(message.model);console.log(message.content);console.log(message.usage);base_url에 루트 주소를 입력하며, /v1을 붙이지 마세요.
스트리밍 출력
제목이 “스트리밍 출력”인 섹션with client.messages.stream( model="claude-sonnet-5-5", max_tokens=1024, messages=[{"role": "user", "content": "写一首四行的诗"}],) as stream: for text in stream.text_stream: print(text, end="", flush=True)const stream = client.messages.stream({ model: "claude-sonnet-5-5", max_tokens: 1024, messages: [{ role: "user", content: "写一首四行的诗" }],});stream.on("text", (text) => process.stdout.write(text));await stream.finalMessage();캐시를 사용한 호출
제목이 “캐시를 사용한 호출”인 섹션길고 고정된 내용을 system에 넣고 cache_control을 추가하세요:
message = client.messages.create( model="claude-sonnet-5-5", max_tokens=1024, system=[ { "type": "text", "text": LONG_PROJECT_CONTEXT, # 每次都一样的长文本 "cache_control": {"type": "ephemeral"}, } ], messages=[{"role": "user", "content": "根据上面的说明回答:..."}],)print(message.usage.cache_creation_input_tokens, message.usage.cache_read_input_tokens)두 번째 호출 시 cache_read_input_tokens이 0보다 크면 캐시에 적중한 것입니다. 자세한 내용은 Prompt Caching을 참조하세요.
환경 변수 사용
제목이 “환경 변수 사용”인 섹션공식 SDK는 ANTHROPIC_BASE_URL과 ANTHROPIC_API_KEY을 읽으므로, 클라이언트 생성 시 파라미터를 전달하지 않아도 됩니다:
export ANTHROPIC_BASE_URL="https://1zheai.com"export ANTHROPIC_API_KEY="sk-你的Key"그런 다음 클라이언트 생성 시 파라미터를 전달하지 않습니다:
client = anthropic.Anthropic() # 自动读取上面两个变量이 기기에서 Claude Code도 이 두 변수를 읽는다면, 둘 다 1zheai로 전환됩니다. 보통 원하는 결과가 바로 이것입니다.
자주 묻는 질문
제목이 “자주 묻는 질문”인 섹션404?
base_url에 /v1을 과도하게 입력했습니다. Anthropic SDK가 /v1/messages을 자동으로 조합합니다.
401?
API 키(API key)를 확인하세요. 또한, 환경에 ANTHROPIC_AUTH_TOKEN(예: 이전에 Claude Code에 설정한 오래된 값)이 동시에 존재하면 SDK가 이것도 읽으므로, 오래된 값을 삭제한 후 다시 시도하세요.
요청 및 응답 구조
제목이 “요청 및 응답 구조”인 섹션system, 콘텐츠 블록, 중지 원인을 조회해야 한다면 Messages 인터페이스 상세을 확인하세요. 완전한 프로그램은 콘텐츠 블록 유형에 따라 텍스트를 읽어야 하며, 첫 번째 블록이 항상 text라고 가정하지 마세요.
