CloudflareWorkersAIEmbeddings 통합

CloudflareWorkersAIEmbeddings 통합

LangChain JavaScript로 CloudflareWorkersAIEmbeddings 임베딩 모델과 통합하는 방법을 안내할게요.

출처: 문서

본문

이 문서는 LangChain으로 Cloudflare Workers AI 임베딩 모델을 시작하는 데 도움을 줘요. CloudflareWorkersAIEmbeddings 기능과 구성 옵션에 대한 자세한 문서는 API 레퍼런스를 참고하세요.

개요

통합 세부 정보

클래스 패키지 Local Py 지원 Downloads Version
CloudflareWorkersAIEmbeddings @langchain/cloudflare NPM - Downloads NPM - 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"

자격 증명

모델 호출의 자동 추적(tracing)을 원한다면 아래 주석을 해제해 LangSmith API 키를 설정할 수도 있어요:

# export LANGSMITH_TRACING="true"
# export LANGSMITH_API_KEY="your-api-key"

설치

LangChain CloudflareWorkersAIEmbeddings 통합은 @langchain/cloudflare 패키지에 있어요:

```bash npm theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}} npm install @langchain/cloudflare @langchain/core ```
yarn add @langchain/cloudflare @langchain/core
pnpm add @langchain/cloudflare @langchain/core

사용법

아래는 Cloudflare Vectorize vectorstore와 함께 Workers AI 임베딩을 사용하는 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 레퍼런스를 참고하세요.


[Connect these docs](/use-these-docs) to Claude, VSCode, and more via MCP for real-time answers. [Edit this page on GitHub](https://github.com/langchain-ai/docs/edit/main/src/oss/javascript/integrations/embeddings/cloudflare_ai.mdx) or [file an issue](https://github.com/langchain-ai/docs/issues/new/choose).

더 알아보기