Mock Completion() 응답 - 테스트 비용 절약 💰
Mock Completion() 응답 - 테스트 비용 절약 💰
테스트 목적으로 completion()에 mock_response를 전달하면 실제 LLM API를 호출하지 않고도 mock 응답을 얻을 수 있어요. 기본 응답을 가진 응답 객체를 반환하며, 스트리밍에서도 동작해요. 테스트 비용을 아끼는 데 유용하답니다.
출처: 문서
본문
테스트 목적으로 completion()에 mock_response를 사용하면 completion 엔드포인트 호출을 흉내 낼 수 있어요.
이 방식은 LLM API를 호출하지 않고 기본 응답을 가진 응답 객체를 반환합니다(스트리밍에서도 동작해요).
빠른 시작 (quick start)
from litellm import completion
model = "gpt-5.6-luna"
messages = [{"role":"user", "content":"This is a test request"}]
completion(model=model, messages=messages, mock_response="It's simple to use and easy to get started")
스트리밍 (streaming)
from litellm import completion
model = "gpt-5.6-luna"
messages = [{"role": "user", "content": "Hey, I'm a mock request"}]
response = completion(model=model, messages=messages, stream=True, mock_response="It's simple to use and easy to get started")
for chunk in response:
print(chunk) # {'choices': [{'delta': {'role': 'assistant', 'content': 'Thi'}, 'finish_reason': None}]}
complete_response += chunk["choices"][0]["delta"]["content"]
(비스트리밍) Mock 응답 객체
{
"choices": [
{
"finish_reason": "stop",
"index": 0,
"message": {
"content": "This is a mock request",
"role": "assistant",
"logprobs": null
}
}
],
"created": 1694459929.4496052,
"model": "MockResponse",
"usage": {
"prompt_tokens": null,
"completion_tokens": null,
"total_tokens": null
}
}
mock_response로 pytest 함수 만들기
from litellm import completion
import pytest
def test_completion_openai():
try:
response = completion(
model="gpt-5.6-luna",
messages=[{"role":"user", "content":"Why is LiteLLM amazing?"}],
mock_response="LiteLLM is awesome"
)
# Add any assertions here to check the response
print(response)
assert(response['choices'][0]['message']['content'] == "LiteLLM is awesome")
except Exception as e:
pytest.fail(f"Error occurred: {e}")
이렇게 mock 응답을 활용하면 실제 호출 없이도 응답 구조를 검증하는 테스트를 작성할 수 있어요.