跳到主要内容
这将帮助您开始使用 LangChain 的 Cloudflare Workers AI 嵌入模型。有关 CloudflareWorkersAIEmbeddings 功能和配置选项的详细文档,请参阅 API 参考

概览

集成详情

类别本地Python 支持下载量版本
CloudflareWorkersAIEmbeddings@langchain/cloudflareNPM - DownloadsNPM - Version

设置

要访问 Cloudflare 嵌入模型,您需要创建一个 Cloudflare 帐户并安装 @langchain/cloudflare 集成包。此集成旨在 Cloudflare Worker 中运行并接受绑定。 请按照官方文档设置您的 Worker。 您的 wrangler.toml 文件应类似于此:
name = "langchain-test"
main = "worker.js"
compatibility_date = "2024-01-10"

[[vectorize]]
binding = "VECTORIZE_INDEX"
index_name = "langchain-test"

[ai]
binding = "AI"

凭据

如果您想获取模型调用的自动化跟踪,您还可以通过取消注释下方来设置您的 LangSmith API 密钥
# export LANGSMITH_TRACING="true"
# export LANGSMITH_API_KEY="your-api-key"

安装

LangChain CloudflareWorkersAIEmbeddings 集成位于 @langchain/cloudflare 包中。
npm install @langchain/cloudflare @langchain/core

用法

下面是一个使用 Workers AI 嵌入和 Cloudflare Vectorize 向量存储的 Worker 示例。
// @ts-nocheck

import type {
  VectorizeIndex,
  Fetcher,
  Request,
} from "@cloudflare/workers-types";

import {
  CloudflareVectorizeStore,
  CloudflareWorkersAIEmbeddings,
} from "@langchain/cloudflare";

export interface Env {
  VECTORIZE_INDEX: VectorizeIndex;
  AI: Fetcher;
}

export default {
  async fetch(request: Request, env: Env) {
    const { pathname } = new URL(request.url);
    const embeddings = new CloudflareWorkersAIEmbeddings({
      binding: env.AI,
      model: "@cf/baai/bge-small-en-v1.5",
    });
    const store = new CloudflareVectorizeStore(embeddings, {
      index: env.VECTORIZE_INDEX,
    });
    if (pathname === "/") {
      const results = await store.similaritySearch("hello", 5);
      return Response.json(results);
    } else if (pathname === "/load") {
      // Upsertion by id is supported
      await store.addDocuments(
        [
          {
            pageContent: "hello",
            metadata: {},
          },
          {
            pageContent: "world",
            metadata: {},
          },
          {
            pageContent: "hi",
            metadata: {},
          },
        ],
        { ids: ["id1", "id2", "id3"] }
      );

      return Response.json({ success: true });
    } else if (pathname === "/clear") {
      await store.delete({ ids: ["id1", "id2", "id3"] });
      return Response.json({ success: true });
    }

    return Response.json({ error: "Not Found" }, { status: 404 });
  },
};

API 参考

有关所有 CloudflareWorkersAIEmbeddings 功能和配置的详细文档,请访问 API 参考
以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。
© . This site is unofficial and not affiliated with LangChain, Inc.