Z.AI Provider
Z.AI Provider
Z.AI provider는 Z.AI API를 통해 GLM 언어 및 비전 모델에 접근할 수 있게 해 줘요.
API 키는 Z.AI API key console에서 만들 수 있어요.
출처: 문서
본문
셋업 (Setup)
Z.AI provider는 @ai-sdk/zai 패키지로 사용할 수 있어요. 다음과 같이 설치하세요:
npm install @ai-sdk/zai
pnpm add @ai-sdk/zai
yarn add @ai-sdk/zai
bun add @ai-sdk/zai
ZAI_API_KEY 환경 변수를 설정하세요:
ZAI_API_KEY=your-api-key
Provider 인스턴스 (Provider Instance)
@ai-sdk/zai에서 기본 provider 인스턴스인 zai를 import하세요:
import { zai } from '@ai-sdk/zai';
커스텀 구성을 위해 createZai를 사용하세요:
import { createZai } from '@ai-sdk/zai';
const zai = createZai({
apiKey: proces...KEY,
baseURL: 'https://api.z.ai/api/paas/v4',
});
provider는 다음 선택 설정을 받아요:
- apiKey string —
Authorization헤더로 전송되는 API 키. 기본값은ZAI_API_KEY환경 변수. - baseURL string — API 요청의 URL 접두사. 기본값
https://api.z.ai/api/paas/v4. - headers Record<string, string> — 추가 요청 헤더.
- fetch FetchFunction — 예를 들어 미들웨어에서 요청을 가로채기 위한 커스텀 fetch 구현.
언어 모델 (Language Models)
provider에 모델 id를 전달해 언어 모델을 만드세요:
import { zai } from '@ai-sdk/zai';
import { generateText } from 'ai';
const { text } = await generateText({
model: zai('glm-5.3'),
prompt: 'Explain quantum entanglement in simple terms.',
});
현재 모델 제품군은 GLM 5, GLM 4.7, GLM 4.6, GLM 4.5, 그리고 GLM 비전 모델이에요. 모델 가용성은 시간에 따라 변하므로, 현재 카탈로그는 Z.AI model documentation을 참고하세요.
provider가 지원하는 것:
- 텍스트 생성 및 스트리밍
- 추론 출력 및 추론 기록
- 함수 호출(증분 도구 호출 스트리밍 포함)
- JSON 객체 출력
- 호환 비전 모델의 URL 기반 이미지 및 비디오 입력
Provider 옵션 (Provider Options)
Z.AI별 옵션은 providerOptions.zai로 전달할 수 있어요:
import { zai } from '@ai-sdk/zai';
import { generateText } from 'ai';
const result = await generateText({
model: zai('glm-5.3'),
prompt: 'Compare two approaches to implementing a rate limiter.',
providerOptions: {
zai: {
thinking: { type: 'enabled', clearThinking: true },
reasoningEffort: 'high',
requestId: 'request-123456',
userId: 'user-123456',
},
},
});
다음 옵션이 있어요:
- doSample boolean — 샘플링 활성화. 비활성화하면
temperature와topP가 효과가 없어요. - thinking object —
type: 'enabled' | 'disabled'로 생각(thinking) 제어. 이전 보조 메시지의 추론을 유지하려면clearThinking을false로 설정. - reasoningEffort 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max' — 지원 모델에서 추론 노력 제어.
- toolStream boolean — 지원 모델에서 증분 함수 호출 인자 스트리밍 활성화.
- requestId string — 호출자가 제공한 6~64자 요청 id.
- userId string — 민감하지 않은 6~128자 최종 사용자 id.
스트리밍 도구 호출 (Streaming Tool Calls)
지원 GLM 모델이 함수 호출 인자를 증분 스트리밍하도록 하려면 toolStream을 활성화하세요:
import { zai } from '@ai-sdk/zai';
import { streamText, tool } from 'ai';
import { z } from 'zod';
const result = streamText({
model: zai('glm-5.3'),
prompt: 'What is the weather in San Francisco?',
tools: {
weather: tool({
description: 'Get the weather for a city',
inputSchema: z.object({ city: z.string() }),
}),
},
providerOptions: {
zai: { toolStream: true },
},
});
for await (const part of result.fullStream) {
console.log(part);
}