跳到主要内容
Layerup Security 集成允许您保护对任何 LangChain LLM、LLM 链或 LLM 代理的调用。LLM 对象封装了任何现有的 LLM 对象,在您的用户和 LLM 之间提供了一个安全层。 虽然 Layerup Security 对象被设计为 LLM,但它本身实际上并不是一个 LLM,它只是封装了一个 LLM,使其能够适应底层 LLM 的相同功能。

设置

首先,您需要从 Layerup 网站 获取一个 Layerup Security 账户。 接下来,通过仪表盘创建一个项目,并复制您的 API 密钥。我们建议将您的 API 密钥放入您项目的环境中。 安装 Layerup Security SDK:
npm
npm install @layerup/layerup-security
并安装 LangChain Community
npm
npm install @langchain/community @langchain/core
现在您就可以开始使用 Layerup Security 保护您的 LLM 调用了!
import {
  LayerupSecurity,
  LayerupSecurityOptions,
} from "@langchain/community/llms/layerup_security";
import { GuardrailResponse } from "@layerup/layerup-security";
import { OpenAI } from "@langchain/openai";

// Create an instance of your favorite LLM
const openai = new OpenAI({
  modelName: "gpt-3.5-turbo",
  openAIApiKey: process.env.OPENAI_API_KEY,
});

// Configure Layerup Security
const layerupSecurityOptions: LayerupSecurityOptions = {
  // Specify a LLM that Layerup Security will wrap around
  llm: openai,

  // Layerup API key, from the Layerup dashboard
  layerupApiKey: process.env.LAYERUP_API_KEY,

  // Custom base URL, if self hosting
  layerupApiBaseUrl: "https://api.uselayerup.com/v1",

  // List of guardrails to run on prompts before the LLM is invoked
  promptGuardrails: [],

  // List of guardrails to run on responses from the LLM
  responseGuardrails: ["layerup.hallucination"],

  // Whether or not to mask the prompt for PII & sensitive data before it is sent to the LLM
  mask: false,

  // Metadata for abuse tracking, customer tracking, and scope tracking.
  metadata: { customer: "example@uselayerup.com" },

  // Handler for guardrail violations on the response guardrails
  handlePromptGuardrailViolation: (violation: GuardrailResponse) => {
    if (violation.offending_guardrail === "layerup.sensitive_data") {
      // Custom logic goes here
    }

    return {
      role: "assistant",
      content: `There was sensitive data! I cannot respond. Here's a dynamic canned response. Current date: ${Date.now()}`,
    };
  },

  // Handler for guardrail violations on the response guardrails
  handleResponseGuardrailViolation: (violation: GuardrailResponse) => ({
    role: "assistant",
    content: `Custom canned response with dynamic data! The violation rule was ${violation.offending_guardrail}.`,
  }),
};

const layerupSecurity = new LayerupSecurity(layerupSecurityOptions);
const response = await layerupSecurity.invoke(
  "Summarize this message: my name is Bob Dylan. My SSN is 123-45-6789."
);

以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。
© . This site is unofficial and not affiliated with LangChain, Inc.