TurbopufferVectorStore 통합

TurbopufferVectorStore 통합

LangChain JavaScript로 TurbopufferVectorStore와 통합해요.

turbopuffer는 검색·검색(retrieval)을 위한 빠르고 비용 효율적인 벡터 데이터베이스예요.

이 가이드는 turbopuffer 벡터 스토어 시작을 도와드려요. 모든 TurbopufferVectorStore 기능과 구성에 대한 자세한 문서는 API reference를 참고하세요.

개요 (Overview)

통합 세부 정보 (Integration details)

클래스 패키지 PY 지원 Downloads Version
TurbopufferVectorStore @langchain/turbopuffer NPM - Downloads NPM - Version

설정 (Setup)

turbopuffer 계정에 가입하고, API 키를 만들고, @langchain/turbopuffer, 공식 @turbopuffer/turbopuffer 클라이언트, @langchain/core, 그리고 임베딩 제공자(이 가이드는 OpenAI 임베딩 사용)를 설치하세요.

```bash npm npm install @langchain/turbopuffer @turbopuffer/turbopuffer @langchain/core @langchain/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 환경 변수로 설정해요.

더 알아보기 (Learn more)