We are hitting openai api from our fastapi application, We have middleware where we format the logs to json. There are some special characters in logs , and we need to remove them before we display the logs in console. We have special character remover function in middleware , it works perfectly for logs from application , but for logs from openai the special character is not removed. I placed a debugger in function , and call is not coming to this function if it is from openai.
class FilterEmojis(logging.Filter):
def filter(self, record):
record.msg = re.sub(r'[^\x00-\x7F]+',' ', str(record.msg))
return record
logger = logging.root
handler = logging.StreamHandler()
handler.setFormatter(formatter)
logger.handlers = [handler]
logger.setLevel(logging.DEBUG)
logger.addFilter(FilterEmojis())
logging.getLogger("uvicorn.access").disabled = True
"level": "DEBUG", "conversation_id": "ap-1", "name": "openai", "message": "api_version=2023-07-01-preview data='{"messages": [{"role": "system", "content": "\\nWelcome to ai \\ud83e\\udd16\\ud83d\\udee9\\ufe0f"