> ## Documentation Index
> Fetch the complete documentation index at: https://langchain-docs-zh.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# TurbopufferVectorStore 集成

> 使用 LangChain JavaScript 集成 TurbopufferVectorStore。

[turbopuffer](https://turbopuffer.com) 是一个快速、高性价比的向量数据库，用于搜索和检索。

本指南将帮助你开始使用 turbopuffer [向量存储](https://langchain-docs-zh.mintlify.site/langchain/oss/python/integrations/vectorstores.md)。有关所有 `TurbopufferVectorStore` 功能和配置的详细文档，请参阅 [API 参考](https://reference.langchain.com/javascript/langchain-turbopuffer/TurbopufferVectorStore)。

## 概述

### 集成详情

| 类 | 包 | [Python 支持](https://langchain-docs-zh.mintlify.site/langchain/oss/python/integrations/vectorstores/turbopuffer.md) | 下载量 | 版本 |
| :- | :- | :-: | :-: | :-: |
| [`TurbopufferVectorStore`](https://reference.langchain.com/javascript/langchain-turbopuffer/TurbopufferVectorStore) | [`@langchain/turbopuffer`](https://www.npmjs.com/package/@langchain/turbopuffer) | ✅ | ![NPM - 下载量](https://img.shields.io/npm/dm/@langchain/turbopuffer?style=flat-square\&label=%20&) | ![NPM - 版本](https://img.shields.io/npm/v/@langchain/turbopuffer?style=flat-square\&label=%20&) |

## 设置

[注册 turbopuffer 账户](https://turbopuffer.com/join)，创建 API 密钥，并安装 `@langchain/turbopuffer`，官方的 `@turbopuffer/turbopuffer` 客户端，`@langchain/core`，以及一个嵌入提供者（本指南使用 [OpenAI 嵌入](https://langchain-docs-zh.mintlify.site/langchain/oss/python/integrations/embeddings/openai.md)）。

```bash npm theme={null}
npm install @langchain/turbopuffer @turbopuffer/turbopuffer @langchain/core @langchain/openai
```

```bash yarn theme={null}
yarn add @langchain/turbopuffer @turbopuffer/turbopuffer @langchain/core @langchain/openai
```

```bash pnpm theme={null}
pnpm add @langchain/turbopuffer @turbopuffer/turbopuffer @langchain/core @langchain/openai
```

### 凭证

将你的 API 密钥设置为环境变量：

```typescript theme={null}
process.env.TURBOPUFFER_API_KEY = "your-api-key";
```

可选地设置一个 [区域](https://turbopuffer.com/docs/regions)（例如 `gcp-us-central1`）。

## 实例化

创建一个 turbopuffer 客户端和命名空间，然后将命名空间传递给 `TurbopufferVectorStore`：

```typescript theme={null}
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: process.env.TURBOPUFFER_API_KEY,
  region: "gcp-us-central1",
});

const vectorStore = new TurbopufferVectorStore(embeddings, {
  namespace: client.namespace("my-namespace"),
});
```

## 管理向量存储

### 向向量存储添加项

目前仅支持字符串元数据值。

```typescript theme={null}
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() },
  },
]);
```

### 从向量存储删除项

```typescript theme={null}
await vectorStore.delete({ ids: [ids[ids.length - 1]] });
```

## 查询向量存储

### 直接查询

```typescript theme={null}
const results = await vectorStore.similaritySearch("hello", 1);

for (const doc of results) {
  console.log(doc.pageContent, doc.metadata);
}
```

使用 turbopuffer 过滤表达式按元数据过滤。有关支持的运算符，请参阅 [turbopuffer 过滤文档](https://turbopuffer.com/docs/reference/query#filter-parameters)。

```typescript theme={null}
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

```typescript theme={null}
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 }
);
```

### 删除命名空间中的所有向量

```typescript theme={null}
await vectorStore.delete({ deleteAll: true });
```

### 用于检索增强生成的使用方式

有关如何使用此向量存储进行检索增强生成（RAG）的指南，请参阅以下部分：

* [使用 LangChain 构建 RAG 应用](https://langchain-docs-zh.mintlify.site/langchain/oss/deepagents/rag.md)。
* [智能体 RAG](https://langchain-docs-zh.mintlify.site/langchain/oss/langgraph/agentic-rag.md)
* [检索文档](https://langchain-docs-zh.mintlify.site/langchain/oss/deepagents/retrieval.md)

***

## API 参考

有关所有 `TurbopufferVectorStore` 功能和配置的详细文档，请前往 [API 参考](https://reference.langchain.com/javascript/langchain-turbopuffer/TurbopufferVectorStore)。

***

> 官方原文：[src/oss/javascript/integrations/vectorstores/turbopuffer.mdx](https://github.com/langchain-ai/docs/blob/main/src/oss/javascript/integrations/vectorstores/turbopuffer.mdx) · 非官方翻译，译文由 AI 生成，以英文原文为准。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.