vectorstores Provider
vectorstores Provider
vectorstores provider는 vectorstores를 AI SDK와 통합해, 벡터 데이터베이스에서 데이터를 검색하고 저장하는 AI 워크플로우를 가능하게 해요.
출처: 문서
본문
설정
vectorstores 프로바이더는 @vectorstores/vercel 모듈에서 사용할 수 있어요. 다음과 같이 설치할 수 있어요:
npm install @vectorstores/vercel @vectorstores/core
문서 인덱싱
vectorstores 프로바이더를 사용하기 전에 문서용 인덱스를 정의해야 해요. 인덱스는 문서 임베딩을 벡터 데이터베이스에 저장해 콘텐츠에 대한 시맨틱 검색을 가능하게 해요.
@vectorstores/core 패키지의 VectorStoreIndex.fromDocuments 함수를 사용하면 인덱스를 쉽게 만들 수 있어요. 이 함수는 문서를 더 작은 청크로 자동 분할하고, 임베딩하고, 벡터 데이터베이스에 저장해요.
문서를 임베딩하려면 임베딩 모델이 필요해요. vercelEmbedding 함수(아래 유틸리티 참고)를 사용해 어떤 AI SDK 임베딩 모델이든 사용할 수 있어요.
인덱스가 있으면 retriever를 사용해 주어진 쿼리와의 유사도에 따라 가장 관련성 높은 문서를 찾을 수 있어요.
유틸리티
vectorstores 프로바이더는 AI SDK를 vectorstores와 통합하기 위한 두 가지 주요 유틸리티 함수를 제공해요.
vercelEmbedding
vercelEmbedding 함수는 어떤 AI SDK 임베딩 모델이든 vectorstores에서 사용할 수 있게 적응시켜요. 이를 통해 OpenAI나 Cohere 같은 임베딩 프로바이더를 vectorstores 생태계 내에서 사용할 수 있어요.
vercelEmbedding 함수로 인덱스를 만드는 예시예요:
import { openai } from '@ai-sdk/openai';
import { vercelEmbedding } from '@vectorstores/vercel';
import { VectorStoreIndex } from '@vectorstores/core';
const documents = [new Document({ text: 'This is a large document.' })];
const index = await VectorStoreIndex.fromDocuments(documents, {
embedFunc: vercelEmbedding(openai.embedding('text-embedding-3-small')),
});
vercelTool
vercelTool 함수는 vectorstores retriever를 AI SDK 도구로 감싸서, 벡터 데이터베이스의 데이터에 자율적으로 접근할 수 있는 에이전트를 가능하게 해요.
import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { vercelTool } from '@vectorstores/vercel';
const { text } = await generateText({
model: openai('gpt-5-mini'),
tools: {
search: vercelTool({
retriever: index.asRetriever(),
description: 'Search the knowledge base for pricing information',
}),
},
prompt: 'What is the price of a burrito?',
});
설정 옵션
| 옵션 | 타입 | 필수 | 설명 |
|---|---|---|---|
retriever |
BaseRetriever | Yes | 감쌀 vectorstores retriever 인스턴스 |
description |
string | Yes | LLM이 도구를 언제 어떻게 사용할지 이해하도록 돕는 안내 텍스트 |
noResultsMessage |
string | No | 일치하는 문서가 없을 때의 커스텀 폴백 메시지 (기본값: "No results found in documents.") |
사용 사례
Agentic RAG
벡터 데이터베이스의 지식 저장소에 대해 질문을 해요. LLM은 도구를 사용해 벡터 데이터베이스를 쿼리할지 자율적으로 결정하고, 관련 콘텐츠를 검색하며, 조회 결과를 응답에 통합해요.
에이전트 메모리 시스템
메모리를 벡터 데이터베이스에 저장하는 도구와 벡터 데이터베이스에서 메모리를 검색하는 도구를 결합해, 대화 간 사용자별 정보를 저장하고 검색해요.
참고 자료
더 알아보기 (Learn more)
- 출처 문서: vectorstores Provider