(test) test_post_call_rule

This commit is contained in:
ishaan-jaff
2024-01-15 17:17:43 -08:00
parent 2b3cc694af
commit c50d8afc86
+43 -34
View File
@@ -19,15 +19,6 @@ def my_pre_call_rule(input: str):
return True
def my_post_call_rule(input: str):
input = input.lower()
print(f"input: {input}")
print(f"INSIDE MY POST CALL RULE, len(input) - {len(input)}")
if "sorry" in input:
return False
return True
## Test 1: Pre-call rule
def test_pre_call_rule():
try:
@@ -55,32 +46,50 @@ def test_pre_call_rule():
litellm.pre_call_rules = []
def my_post_call_rule(input: str):
input = input.lower()
print(f"input: {input}")
print(f"INSIDE MY POST CALL RULE, len(input) - {len(input)}")
if len(input) < 200:
return {
"decision": False,
"message": "This violates LiteLLM Proxy Rules. Response too short",
}
return {"decision": True}
# test_pre_call_rule()
## Test 2: Post-call rule
# Test 2: Post-call rule
# commenting out of ci/cd since llm's have variable output which was causing our pipeline to fail erratically.
# def test_post_call_rule():
# try:
# litellm.pre_call_rules = []
# litellm.post_call_rules = [my_post_call_rule]
# ### completion
# response = completion(model="gpt-3.5-turbo",
# messages=[{"role": "user", "content": "say sorry"}],
# fallbacks=["deepinfra/Gryphe/MythoMax-L2-13b"])
# pytest.fail(f"Completion call should have been failed. ")
# except:
# pass
# print(f"MAKING ACOMPLETION CALL")
# # litellm.set_verbose = True
# ### async completion
# async def test_async_response():
# messages=[{"role": "user", "content": "say sorry"}]
# try:
# response = await acompletion(model="gpt-3.5-turbo", messages=messages)
# pytest.fail(f"acompletion call should have been failed.")
# except Exception as e:
# pass
# asyncio.run(test_async_response())
# litellm.pre_call_rules = []
# litellm.post_call_rules = []
def test_post_call_rule():
try:
litellm.pre_call_rules = []
litellm.post_call_rules = [my_post_call_rule]
### completion
response = completion(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "say sorry"}],
max_tokens=2,
)
pytest.fail(f"Completion call should have been failed. ")
except Exception as e:
print("Got exception", e)
print(type(e))
print(vars(e))
pass
# print(f"MAKING ACOMPLETION CALL")
# litellm.set_verbose = True
### async completion
# async def test_async_response():
# messages=[{"role": "user", "content": "say sorry"}]
# try:
# response = await acompletion(model="gpt-3.5-turbo", messages=messages)
# pytest.fail(f"acompletion call should have been failed.")
# except Exception as e:
# pass
# asyncio.run(test_async_response())
litellm.pre_call_rules = []
litellm.post_call_rules = []
# test_post_call_rule()