都是通过调用外部接口实现moderation
在langchain包中,支持调用OpenAI和EdenAi的moderation接口实现文本的安全审查
在langchain_experiment包中,通过调用aws comprehend的Toxicity detection,Personally Identifiable Information (PII)和prompt safety接口,对输入输出的内容做内容安全识别。
针对PII问题,业内还有一个技术叫做:**data_anonymizer ,**通过这项技术,可以实现用户信息的替换,隐藏或者加密。langchain_experiment中提供了相关实现
OpenAI的文档:https://platform.openai.com/docs/guides/moderation/overview
model = (OpenAI())
prompt = ChatPromptTemplate()
moderated_chain = prompt | model | moderation
response = moderated_chain.invoke({"user_input": user_input})
EdenAI的文档:https://docs.edenai.co/reference/image_explicit_content_create
可以放到react agent中作为一种工具使用
from langchain_community.tools.edenai import (
EdenAiTextModerationTool,
)
llm = EdenAI(
feature="text", provider="openai",
params={"temperature": 0.2, "max_tokens": 250}
)
tools = [
EdenAiTextModerationTool(providers=["openai"], language="en")
]
agent_chain = initialize_agent(
tools,
llm,
agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
verbose=True,
return_intermediate_steps=True,
)
包含aws comprehend的Toxicity detection,Personally Identifiable Information (PII)和prompt safety三个接口