mirror of
https://github.com/BerriAI/litellm.git
synced 2025-04-25 10:44:24 +00:00
Merge pull request #416 from BerriAI/ishaan/error-logging
Add Dashboard for showing error logs on exception
This commit is contained in:
commit
a669f5a738
4 changed files with 57 additions and 3 deletions
|
@ -208,6 +208,7 @@ class Logging:
|
|||
def pre_call(self, input, api_key, model=None, additional_args={}):
|
||||
# Log the exact input to the LLM API
|
||||
print_verbose(f"Logging Details Pre-API Call for call id {self.litellm_call_id}")
|
||||
litellm.error_logs['PRE_CALL'] = locals()
|
||||
try:
|
||||
# print_verbose(f"logging pre call for model: {self.model} with call type: {self.call_type}")
|
||||
self.model_call_details["input"] = input
|
||||
|
@ -290,6 +291,7 @@ class Logging:
|
|||
|
||||
def post_call(self, original_response, input=None, api_key=None, additional_args={}):
|
||||
# Log the exact result from the LLM API, for streaming - log the type of response received
|
||||
litellm.error_logs['POST_CALL'] = locals()
|
||||
try:
|
||||
self.model_call_details["input"] = input
|
||||
self.model_call_details["api_key"] = api_key
|
||||
|
@ -1882,9 +1884,40 @@ def get_model_list():
|
|||
)
|
||||
|
||||
####### EXCEPTION MAPPING ################
|
||||
def exception_type(model, original_exception, custom_llm_provider):
|
||||
def exception_type(
|
||||
model,
|
||||
original_exception,
|
||||
custom_llm_provider,
|
||||
completion_kwargs={},
|
||||
):
|
||||
global user_logger_fn, liteDebuggerClient
|
||||
exception_mapping_worked = False
|
||||
|
||||
if litellm.set_verbose == True:
|
||||
litellm.error_logs['EXCEPTION'] = original_exception
|
||||
litellm.error_logs['KWARGS'] = completion_kwargs
|
||||
try:
|
||||
# code to show users their litellm error dashboard
|
||||
import urllib.parse
|
||||
import json
|
||||
for log_key in litellm.error_logs:
|
||||
current_logs = litellm.error_logs[log_key]
|
||||
if type(current_logs) == dict:
|
||||
filtered_error_logs = {key: str(value) for key, value in current_logs.items()}
|
||||
litellm.error_logs[log_key] = filtered_error_logs
|
||||
else:
|
||||
litellm.error_logs[log_key] = str(current_logs)
|
||||
|
||||
# Convert the filtered_error_logs dictionary to a JSON string
|
||||
error_logs_json = json.dumps(litellm.error_logs)
|
||||
# URL-encode the JSON data
|
||||
encoded_data = urllib.parse.quote(error_logs_json)
|
||||
|
||||
print("👉 view error logs:")
|
||||
print("\033[91m" + '\033[4m' + 'https://logs.litellm.ai/?data=' + str(encoded_data) + "\033[0m")
|
||||
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
if isinstance(original_exception, OriginalError):
|
||||
# Handle the OpenAIError
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue