ZeroEntropy Provider
ZeroEntropy Provider
zeroentropy-ai/zeroentropy-ai-provider는 ZeroEntropy를 사용해 AI SDK에 텍스트 임베딩과 리랭킹(reranking) 지원을 제공하는 커뮤니티 프로바이더예요.
출처: 문서
본문
설정
ZeroEntropy 프로바이더는 zeroentropy-ai-provider 모듈에서 사용할 수 있어요. 다음과 같이 설치할 수 있어요:
npm install zeroentropy-ai-provider
프로바이더 인스턴스
zeroentropy-ai-provider에서 기본 프로바이더 인스턴스 zeroentropy를 import 할 수 있어요:
import { zeroentropy } from 'zeroentropy-ai-provider';
커스텀 설정이 필요하다면 zeroentropy-ai-provider에서 createZeroEntropy를 import 해서 설정과 함께 프로바이더 인스턴스를 만들 수 있어요:
import { createZeroEntropy } from 'zeroentropy-ai-provider';
const zeroentropy = createZeroEntropy({
apiKey: proces..._KEY ?? '',
});
ZeroEntropy 프로바이더 인스턴스를 커스터마이즈하기 위해 다음의 선택적 설정을 사용할 수 있어요:
-
baseURL string
ZeroEntropy API의 기본 URL이에요. 기본 접두사는
https://api.zeroentropy.dev/v1이에요. -
apiKey string
Authorization헤더로 전송되는 API 키예요. 기본값은ZEROENTROPY_API_KEY환경 변수예요. ZeroEntropy Dashboard에서 API 키를 얻을 수 있어요. -
headers Record<string,string>
요청에 포함할 커스텀 헤더예요.
-
fetch (input: RequestInfo, init?: RequestInit) => Promise<Response>
커스텀 fetch 구현이에요. 기본값은 전역
fetch함수예요. 요청을 가로채는 미들웨어로 사용하거나, 예를 들어 테스트를 위한 커스텀 fetch 구현을 제공하는 데 사용할 수 있어요.
텍스트 임베딩 모델
.textEmbeddingModel() 팩토리 메서드를 사용해 ZeroEntropy 임베딩 API를 호출하는 모델을 만들 수 있어요.
import { zeroentropy } from 'zeroentropy-ai-provider';
const embeddingModel = zeroentropy.textEmbeddingModel('zembed-1');
embed 또는 embedMany 함수로 ZeroEntropy 임베딩 모델을 사용해 임베딩을 생성할 수 있어요:
import { zeroentropy } from 'zeroentropy-ai-provider';
import { embed, embedMany } from 'ai';
// Single embedding
const { embedding } = await embed({
model: zeroentropy.textEmbeddingModel('zembed-1'),
value: 'sunny day at the beach',
});
// Batch embeddings
const { embeddings } = await embedMany({
model: zeroentropy.textEmbeddingModel('zembed-1'),
values: ['first document', 'second document'],
});
ZeroEntropy 임베딩 모델은 providerOptions.zeroentropy를 통해 전달할 수 있는 추가 프로바이더 옵션을 지원해요:
import { zeroentropy } from 'zeroentropy-ai-provider';
import { embed } from 'ai';
const { embedding } = await embed({
model: zeroentropy.textEmbeddingModel('zembed-1'),
value: 'sunny day at the beach',
providerOptions: {
zeroentropy: {
inputType: 'document',
dimensions: 1280,
},
},
});
다음 프로바이더 옵션을 사용할 수 있어요:
-
inputType 'query' | 'document'
입력이 검색 쿼리인지 인덱싱할 문서인지 지정해요. 검색 쿼리에는
'query', 인덱싱할 콘텐츠에는'document'를 사용해요. 기본값은'document'예요. -
dimensions 2560 | 1280 | 640 | 320 | 160 | 80 | 40
출력 벡터 차원이에요. 기본값은
2560이에요. 유연한 차원 축소를 위한 Matryoshka 표현을 지원해요. -
latency 'fast' | 'slow'
'fast'는 1초 미만의 지연시간,'slow'는 더 높은 처리량 한도를 위한 값이에요.
모델 기능
| 모델 | 기본 차원 | 컨텍스트 길이 | 설명 |
|---|---|---|---|
zembed-1 |
2560 | 8192 | 다국어 임베딩 모델, Matryoshka 차원 지원 |
리랭킹 모델
.rerankingModel() 팩토리 메서드를 사용해 ZeroEntropy 리랭킹 API를 호출하는 모델을 만들 수 있어요.
import { zeroentropy } from 'zeroentropy-ai-provider';
import { rerank } from 'ai';
const result = await rerank({
model: zeroentropy.rerankingModel('zerank-2'),
query: 'talk about rain',
documents: ['sunny day at the beach', 'rainy day in the city'],
topN: 2,
});
ZeroEntropy 리랭킹 모델은 providerOptions.zeroentropy를 통해 전달할 수 있는 추가 프로바이더 옵션을 지원해요:
import { zeroentropy } from 'zeroentropy-ai-provider';
import { rerank } from 'ai';
const result = await rerank({
model: zeroentropy.rerankingModel('zerank-2'),
query: 'talk about rain',
documents: ['sunny day at the beach', 'rainy day in the city'],
topN: 2,
providerOptions: {
zeroentropy: {
latency: 'fast',
},
},
});
다음 프로바이더 옵션을 사용할 수 있어요:
-
latency 'fast' | 'slow'
'fast'는 1초 미만의 지연시간,'slow'는 더 높은 처리량 한도를 위한 값이에요.
모델 기능
| 모델 | 설명 |
|---|---|
zerank-2 |
최첨단 크로스-인코더 리랭커 플래그십 모델 |
zerank-2-nano |
저지연 사용 사례를 위한 컴팩트 zerank-2 변형 |
zerank-1 |
이전 세대 리랭커 |
zerank-1-small |
저지연 사용 사례를 위한 경량 리랭커 |
사용 가능한 모델과 옵션의 전체 목록은 ZeroEntropy 문서를 참고하세요.
더 알아보기 (Learn more)
- 출처 문서: ZeroEntropy Provider