Layerup 安全
Layerup Security 集成允许您保护对任何 LangChain 大型语言模型(LLM)、LLM 链或 LLM 代理的调用。该 LLM 对象可封装任何现有的 LLM 对象,从而在您的用户与您的 LLM 之间提供一层安全防护。
虽然 Layerup Security 对象被设计为一个大语言模型(LLM),但它实际上并非真正的 LLM,它只是封装了一个 LLM,使其能够具备底层 LLM 的相同功能。
设置
首先,你需要从 Layerup 网站 获取一个 Layerup Security 账户。
接下来,通过控制面板创建一个项目,并复制您的API密钥。我们建议将您的API密钥放在项目的环境中。
安装 Layerup 安全 SDK:
pip install LayerupSecurity
安装 LangChain 社区版:
pip install langchain-community
现在您已准备好使用 Layerup Security 来保护您的 LLM 调用!
from langchain_community.llms.layerup_security import LayerupSecurity
from langchain_openai import OpenAI
# Create an instance of your favorite LLM
openai = OpenAI(
model_name="gpt-3.5-turbo",
openai_api_key="OPENAI_API_KEY",
)
# Configure Layerup Security
layerup_security = LayerupSecurity(
# Specify a LLM that Layerup Security will wrap around
llm=openai,
# Layerup API key, from the Layerup dashboard
layerup_api_key="LAYERUP_API_KEY",
# Custom base URL, if self hosting
layerup_api_base_url="https://api.uselayerup.com/v1",
# List of guardrails to run on prompts before the LLM is invoked
prompt_guardrails=[],
# List of guardrails to run on responses from the LLM
response_guardrails=["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 prompt guardrails
handle_prompt_guardrail_violation=(
lambda violation: {
"role": "assistant",
"content": (
"There was sensitive data! I cannot respond. "
"Here's a dynamic canned response. Current date: {}"
).format(datetime.now())
}
if violation["offending_guardrail"] == "layerup.sensitive_data"
else None
),
# Handler for guardrail violations on the response guardrails
handle_response_guardrail_violation=(
lambda violation: {
"role": "assistant",
"content": (
"Custom canned response with dynamic data! "
"The violation rule was {}."
).format(violation["offending_guardrail"])
}
),
)
response = layerup_security.invoke(
"Summarize this message: my name is Bob Dylan. My SSN is 123-45-6789."
)