Skip to main content

规则

使用此功能根据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"])
优云智算