TurbopufferVectorStore 통합
TurbopufferVectorStore 통합
LangChain JavaScript로 TurbopufferVectorStore와 통합해요.
turbopuffer는 검색·검색(retrieval)을 위한 빠르고 비용 효율적인 벡터 데이터베이스예요.
이 가이드는 turbopuffer 벡터 스토어 시작을 도와드려요. 모든 TurbopufferVectorStore 기능과 구성에 대한 자세한 문서는 API reference를 참고하세요.
개요 (Overview)
통합 세부 정보 (Integration details)
| 클래스 | 패키지 | PY 지원 | Downloads | Version |
|---|---|---|---|---|
TurbopufferVectorStore |
@langchain/turbopuffer |
✅ |
설정 (Setup)
turbopuffer 계정에 가입하고, API 키를 만들고, @langchain/turbopuffer, 공식 @turbopuffer/turbopuffer 클라이언트, @langchain/core, 그리고 임베딩 제공자(이 가이드는 OpenAI 임베딩 사용)를 설치하세요.
yarn add @langchain/turbopuffer @turbopuffer/turbopuffer @langchain/core @langchain/openai
pnpm add @langchain/turbopuffer @turbopuffer/turbopuffer @langchain/core @langchain/openai
자격 증명 (Credentials)
API 키를 환경 변수로 설정하세요:
process.env.TURBOPUFFER_API_KEY = "your-api-key";
선택적으로 리전을 설정하세요 (예: gcp-us-central1).
인스턴스화 (Instantiation)
turbopuffer 클라이언트와 네임스페이스를 만들고, 네임스페이스를 TurbopufferVectorStore에 전달하세요:
import { OpenAIEmbeddings } from "@langchain/openai";
import { TurbopufferVectorStore } from "@langchain/turbopuffer";
import { Turbopuffer } from "@turbopuffer/turbopuffer";
const embeddings = new OpenAIEmbeddings({
model: "text-embedding-3-small",
});
const client = new Turbopuffer({
apiKey: proces...KEY,
region: "gcp-us-central1",
});
const vectorStore = new TurbopufferVectorStore(embeddings, {
namespace: client.namespace("my-namespace"),
});
벡터 스토어 관리 (Manage vector store)
벡터 스토어에 항목 추가 (Add items to vector store)
현재는 문자열 메타데이터 값만 지원돼요.
import type { Document } from "@langchain/core/documents";
const createdAt = new Date().getTime();
const ids = await vectorStore.addDocuments([
{
pageContent: "some content",
metadata: { created_at: createdAt.toString() },
},
{ pageContent: "hi", metadata: { created_at: (createdAt + 1).toString() } },
{ pageContent: "bye", metadata: { created_at: (createdAt + 2).toString() } },
{
pageContent: "what's this",
metadata: { created_at: (createdAt + 3).toString() },
},
]);
벡터 스토어에서 항목 삭제 (Delete items from vector store)
await vectorStore.delete({ ids: [ids[ids.length - 1]] });
벡터 스토어 쿼리 (Query vector store)
직접 쿼리 (Query directly)
const results = await vectorStore.similaritySearch("hello", 1);
for (const doc of results) {
console.log(doc.pageContent, doc.metadata);
}
turbopuffer 필터 표현식으로 메타데이터를 필터링하세요. 지원 연산자는 turbopuffer 필터 문서를 참고하세요.
const results2 = await vectorStore.similaritySearch("hello", 1, [
"created_at",
"Eq",
(createdAt + 3).toString(),
]);
for (const doc of results2) {
console.log(doc.pageContent, doc.metadata);
}
기존 ID로 업서트 (Upsert with existing IDs)
await vectorStore.addDocuments(
[
{ pageContent: "changed", metadata: { created_at: createdAt.toString() } },
{
pageContent: "hi changed",
metadata: { created_at: (createdAt + 1).toString() },
},
{
pageContent: "bye changed",
metadata: { created_at: (createdAt + 2).toString() },
},
{
pageContent: "what's this changed",
metadata: { created_at: (createdAt + 3).toString() },
},
],
{ ids }
);
네임스페이스의 모든 벡터 삭제 (Delete all vectors in the namespace)
await vectorStore.delete({ deleteAll: true });
검색 증강 생성(RAG) 사용법 (Usage for retrieval-augmented generation)
이 벡터 스토어를 검색 증강 생성(RAG)에 사용하는 방법에 대한 가이드는 다음 섹션을 참고하세요:
API reference
모든 TurbopufferVectorStore 기능과 구성에 대한 자세한 문서는 API reference를 참고하세요.
출처: 문서
본문
TurbopufferVectorStore는 turbopuffer 벡터 데이터베이스용 통합이에요. @langchain/turbopuffer 패키지에서 Turbopuffer 클라이언트와 네임스페이스로 인스턴스화하고, 문서 추가(문자열 메타데이터만 지원)·삭제·similaritySearch(turbopuffer 필터 표현식 포함)·ID 업서트·deleteAll을 지원해요. API 키는 TURBOPUFFER_API_KEY 환경 변수로 설정해요.