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);
}

더 알아보기 (Learn more)