规则
使用此功能根据llm api调用的输入或输出来拒绝请求。
import litellm
import os
# 设置环境变量
os.environ["OPENAI_API_KEY"] = "your-api-key"
os.environ["OPENROUTER_API_KEY"] = "your-api-key"
def my_custom_rule(input): # 接收模型响应
if "i don't think i can answer" in input: # 如果模型拒绝回答则触发回退
return False
return True
litellm.post_call_rules = [my_custom_rule] # 这些是可调用的函数,用于拒绝调用
response = litellm.completion(model="gpt-3.5-turbo", messages=[{"role": "user",
"content": "Hey, how's it going?"}], fallbacks=["openrouter/gryphe/mythomax-l2-13b"])
可用端点
litellm.pre_call_rules = []- 在发出api调用之前迭代的函数列表。每个函数应返回True(允许调用)或False(拒绝调用)。litellm.post_call_rules = []- 在发出api调用之前迭代的函数列表。每个函数应返回True(允许调用)或False(拒绝调用)。
规则的预期格式
def my_custom_rule(input: str) -> bool: # 接收模型响应
if "i don't think i can answer" in input: # 如果模型拒绝回答则触发回退
return False
return True
输入
input: str: 用户输入或llm响应。
输出
bool: 返回True(允许调用)或False(拒绝调用)
示例规则
示例1: 如果用户输入过长则拒绝调用
import litellm
import os
# 设置环境变量
os.environ["OPENAI_API_KEY"] = "your-api-key"
def my_custom_rule(input): # 接收模型响应
if len(input) > 10: # 如果过长则拒绝调用
return False
return True
litellm.pre_call_rules = [my_custom_rule] # 这些是可调用的函数,用于拒绝调用
response = litellm.completion(model="gpt-3.5-turbo", messages=[{"role": "user", "content": "Hey, how's it going?"}])
示例2: 如果llm拒绝回答则回退到无审查模型
import litellm
import os
# 设置环境变量
os.environ["OPENAI_API_KEY"] = "your-api-key"
os.environ["OPENROUTER_API_KEY"] = "your-api-key"
def my_custom_rule(input): # 接收模型响应
if "i don't think i can answer" in input: # 如果模型拒绝回答则触发回退
return False
return True
litellm.post_call_rules = [my_custom_rule] # 这些是可调用的函数,用于拒绝调用
response = litellm.completion(model="gpt-3.5-turbo", messages=[{"role": "user",
"content": "Hey, how's it going?"}], fallbacks=["openrouter/gryphe/mythomax-l2-13b"])