로컬 디버깅
로컬 디버깅 (Local Debugging)
LiteLLM 로컬 디버깅에는 litellm._turn_on_debug()를 켜는 방법과 커스텀 함수 completion(...logger_fn=<함수>)를 넘기는 방법 두 가지가 있어요. 주의할 점은 _turn_on_debug()는 API 키를 로그로 남길 수 있으므로 프로덕션에서는 사용하면 안 된다는 점이에요.
출처: 문서
본문
로컬 디버깅 방법은 두 가지예요. litellm._turn_on_debug()를 켜거나, 커스텀 함수를 전달하는 completion(...logger_fn=<your_local_function>)을 쓰는 방법이죠.
⚠️ 경고: 프로덕션에서는
_turn_on_debug()를 사용하지 마세요. API 키를 로그로 남겨 로그 파일에 기록될 수 있어요.
상세 로그 켜기 (Set Verbose)
litellm이 수행하는 모든 것에 대한 print 문을 얻고 싶을 때 좋아요.
import litellm
from litellm import completion
litellm._turn_on_debug() # 👈 this is the 1-line change you need to make
## set ENV variables
os.environ["OPENAI_API_KEY"] = "openai key"
os.environ["COHERE_API_KEY"] = "cohere key"
messages = [{ "content": "Hello, how are you?","role": "user"}]
# openai call
response = completion(model="gpt-5.6-luna", messages=messages)
# cohere call
response = completion("command-nightly", messages)
JSON 로그 (JSON Logs)
로그를 JSON으로 저장하고 싶다면 litellm.json_logs = True로 설정하면 돼요.
현재는 litellm의 원시 POST 요청을 JSON으로만 로그로 남겨요 - [코드 보기].
로거 함수 (Logger Function)
때로는 실제로 API 호출에 무엇이 전송되고 무엇이 반환되는지 정확히 보는 게 중요할 때가 있어요. 예를 들어 API 호출이 실패한다면 왜 실패하는지, 정확히 어떤 파라미터가 설정되고 있는지 말이죠.
그럴 때 LiteLLM은 커스텀 로깅 함수를 전달해 모델 호출의 입력/출력을 보고 수정할 수 있게 해줍니다.
참고: 딕셔너리(dict) 객체를 받아야 해요.
커스텀 함수:
def my_custom_logging_fn(model_call_dict):
print(f"model call details: {model_call_dict}")
완전한 예시 (Complete Example)
from litellm import completion
def my_custom_logging_fn(model_call_dict):
print(f"model call details: {model_call_dict}")
## set ENV variables
os.environ["OPENAI_API_KEY"] = "openai key"
os.environ["COHERE_API_KEY"] = "cohere key"
messages = [{ "content": "Hello, how are you?","role": "user"}]
# openai call
response = completion(model="gpt-5.6-luna", messages=messages, logger_fn=my_custom_logging_fn)
# cohere call
response = completion("command-nightly", messages, logger_fn=my_custom_logging_fn)
여전히 문제가 보이나요? (Still Seeing Issues?)
Discord에 참여하세요. 초 단위로 도와드릴게요 ❤️