LangChain의 Fake LLM 클래스를 활용하여 실제 언어 모델 호출 없이 테스트 환경을 구축하는 방법을 소개합니다.
이를 통해 LangChain 기반 애플리케이션 개발 과정에서 비용을 절감하고, 체인 로직의 안정성을 효과적으로 검증할 수 있습니다.
Fake LLM은 실제 언어 모델을 호출하지 않고, 미리 정의된 응답을 반환하도록 설계된 테스트용 언어 모델입니다. 이를 활용하면 아래와 같은 이점과 제한점을 확인할 수 있습니다:
장점
제한점
개발 환경에서는 Fake LLM을 사용하고, 배포 환경에서는 실제 OpenAI API가 호출되도록 설정합니다.
이를 통해
1. 서비스 개발 단계에서 OpenAI API 사용 비용을 절감할 수 있습니다.
2. LangChain 기반 RAG(Retrieval-Augmented Generation) 구조 개선 시 기존 API 동작을 검증할 수 있습니다.
from langchain_community.llms.fake import FakeListLLM
from ..tools.generators.llm import get_OPENAI_llm
import json
import os
def get_llm():
env = os.getenv("ENV", "production")
if env == "development":
# Fake LLM 생성 및 반환
responses = json.loads(os.getenv("FAKE_LLM_RESPONSES"))
return FakeListLLM(responses=responses)
elif env == "production":
# 실제 OpenAI API LLM 반환
return get_OPENAI_llm(model="gpt-4o-mini", temperature=0.7)
else:
raise ValueError("Invalid ENV value. Must be 'development' or 'production'.")
FAKE_LLM_RESPONSES=[
{"answer": "This is a fake response", "context": ["Fake context"]}
]
# 개발 환경에서는 Fake LLM을 사용
llm = get_llm()
# 배포 환경에서는 실제 OpenAI LLM 호출
llm = get_OPENAI_llm(model="gpt-4o-mini", temperature=0.7)
Fake LLM은 미리 정의된 응답을 반환하는 단순한 테스트 도구입니다. 이는 실제 LLM의 성능을 평가하거나 복잡한 데이터 처리를 검증하는 데는 적합하지 않습니다.
따라서 다음 사항을 염두에 두어야 합니다: