Layerup 安全
Layerup 安全 集成允许您保护对任何 LangChain 大型语言模型(LLM)、LLM 链或 LLM 代理的调用。该 LLM 对象包裹在任意现有的 LLM 对象外围,从而在您的用户和 LLM 之间建立一个安全层。
虽然 Layerup 安全对象被设计为一个 LLM,但它实际上并不是一个 LLM,它只是包裹在一个 LLM 上,使其能够适配底层 LLM 的相同功能。
准备工作
首先,您需要从 Layerup 官网 获取一个 Layerup 安全账户。
接下来,通过 仪表板 创建一个项目,并复制您的 API 密钥。我们建议将您的 API 密钥放置在项目的环境变量中。
安装 Layerup 安全 SDK:
- npm
- Yarn
- pnpm
npm install @layerup/layerup-security
yarn add @layerup/layerup-security
pnpm add @layerup/layerup-security
然后安装 LangChain 社区包:
- npm
- Yarn
- pnpm
npm install @langchain/community @langchain/core
yarn add @langchain/community @langchain/core
pnpm add @langchain/community @langchain/core
现在,您就可以开始使用 Layerup 安全保护您的 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: "[email protected]" },
// 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."
);
API Reference:
- LayerupSecurity from
@langchain/community/llms/layerup_security - LayerupSecurityOptions from
@langchain/community/llms/layerup_security - OpenAI from
@langchain/openai
相关内容
Related
- LLM conceptual guide
- LLM how-to guides