Qwen 프로바이더
Qwen 프로바이더
younis-ahmed/qwen-ai-provider 는 Qwen을 사용해 AI SDK에 언어 모델 지원을 제공하는 커뮤니티 프로바이더예요.
참고: 이 커뮤니티 프로바이더는 아직 AI SDK 5와 호환되지 않아요. 프로바이더가 업데이트될 때까지 기다리거나 AI SDK 5 호환 프로바이더를 고려해 주세요.
출처: 문서
본문
설정 (Setup)
Qwen 프로바이더는 qwen-ai-provider 모듈에서 사용할 수 있어요. 다음과 같이 설치할 수 있어요:
프로바이더 인스턴스 (Provider Instance)
qwen-ai-provider에서 기본 프로바이더 인스턴스 qwen을 임포트할 수 있어요:
import { qwen } from 'qwen-ai-provider';
커스터마이즈가 필요하면 qwen-ai-provider에서 createQwen을 임포트해 나만의 설정으로 프로바이더 인스턴스를 만들 수 있어요:
import { createQwen } from 'qwen-ai-provider';
const qwen = createQwen({
// 선택적 설정, 예:
// baseURL: 'https://qwen/api/v1',
});
다음의 선택적 설정으로 Qwen 프로바이더 인스턴스를 커스터마이즈할 수 있어요:
-
baseURL string
프록시 서버를 사용하는 경우처럼 API 호출에 다른 URL 프리픽스를 사용할 수 있어요. 기본 프리픽스는
https://dashscope-intl.aliyuncs.com/compatible-mode/v1이에요. -
apiKey string
Authorization헤더로 보내지는 API 키예요. 기본값은DASHSCOPE_API_KEY환경 변수예요. -
headers Record<string,string>
요청에 포함할 커스텀 헤더예요.
-
fetch (input: RequestInfo, init?: RequestInit) => Promise<Response>
커스텀 fetch 구현이에요. 기본값은 전역
fetch함수예요. 요청을 가로채는 미들웨어로 사용하거나, 예를 들어 테스트용 커스텀 fetch 구현을 제공할 수 있어요.
언어 모델 (Language Models)
프로바이더 인스턴스를 사용해 Qwen 채팅 API를 호출하는 모델을 만들 수 있어요. 첫 번째 인자는 모델 ID이며, 예를 들어 qwen-plus처럼 사용해요. 일부 Qwen 채팅 모델은 도구 호출을 지원해요.
const model = qwen('qwen-plus');
예시 (Example)
Qwen 언어 모델을 generateText 함수로 텍스트를 생성하는 데 사용할 수 있어요:
import { qwen } from 'qwen-ai-provider';
import { generateText } from 'ai';
const { text } = await generateText({
model: qwen('qwen-plus'),
prompt: 'Write a vegetarian lasagna recipe for 4 people.',
});
Qwen 언어 모델은 streamText 함수에서도 사용할 수 있고 Output을 통한 구조화된 데이터 생성도 지원해요(AI SDK Core 참고).
모델 기능 (Model Capabilities)
| 모델 | 이미지 입력 | 객체 생성 | 도구 사용 | 도구 스트리밍 |
|---|---|---|---|---|
qwen-vl-max |
||||
qwen-plus-latest |
||||
qwen-max |
||||
qwen2.5-72b-instruct |
||||
qwen2.5-14b-instruct-1m |
||||
qwen2.5-vl-72b-instruct |
참고: 위 표는 인기 모델을 나열한 거예요. 사용 가능한 전체 모델 목록은 Qwen 문서를 참고하세요. 위 표는 인기 모델을 나열한 것이며, 필요하면 사용 가능한 프로바이더 모델 ID를 문자열로 전달할 수도 있어요.
임베딩 모델 (Embedding Models)
.embeddingModel() 팩토리 메서드로 Qwen 임베딩 API를 호출하는 모델을 만들 수 있어요.
const model = qwen.embeddingModel('text-embedding-v3');
모델 기능 (Model Capabilities)
| 모델 | 기본 차원 | 행 최대 개수 | 행당 최대 토큰 |
|---|---|---|---|
text-embedding-v3 |
1024 | 6 | 8,192 |