핵심 요약
Maslul은 LLM 애플리케이션에서 요청 난이도에 따라 최적의 모델을 선택하고 실행하는 파이썬 라이브러리이다. 기존의 하드코딩된 모델 선택 방식 대신, 요청을 분석하여 적절한 티어로 라우팅하고 공급자별로 다른 SDK 인터페이스를 단일 형태로 정규화한다. 서버나 프록시를 거치지 않고 애플리케이션에 직접 임베딩되는 구조로, 도구 사용, 구조화된 출력, 웹 검색, 재시도 로직을 공급자 독립적으로 처리한다. 설정 파일(TOML)을 통해 라우팅 전략과 티어별 모델을 관리하며, 비용 최적화와 장애 복구 기능을 제공한다.
대상 독자
프로덕션 환경에서 여러 LLM 공급자를 통합 관리하고 비용을 최적화하려는 개발자
의미 / 영향
이 라이브러리는 LLM 라우팅을 위한 별도의 인프라 구축 부담을 없애고, 개발자가 코드 수준에서 모델 선택과 장애 복구 로직을 제어할 수 있게 한다. 특히 다양한 모델을 혼합하여 사용하는 복잡한 LLM 애플리케이션의 운영 효율성을 크게 향상시킨다.
섹션별 상세
import asyncio
from maslul import Router, Request, Message
router = Router.from_toml("maslul.toml")
async def main() -> None:
resp = await router.complete(Request(messages=[Message(role="user", content="Hello!")]))
print(resp.text, "·", resp.level_used, "·", resp.usage.output_tokens, "tokens")
asyncio.run(main())Maslul 라우터를 초기화하고 요청을 처리하는 기본 예시 코드
async def get_weather(call: ToolCall) -> str:
return f"18°C in {call.input['city']}"
req = Request(
messages=[Message(role="user", content="Weather in Paris?")],
tools=[ToolDef(name="get_weather", description="Current weather for a city.", input_schema={"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]})],
tool_executor=get_weather,
)Maslul을 사용하여 도구(Tool)를 정의하고 실행하는 예시 코드
실무 Takeaway
- LLM 애플리케이션에서 요청 난이도에 따라 모델을 동적으로 라우팅하여 비용과 성능을 최적화할 수 있다.
- 공급자별로 파편화된 SDK 인터페이스를 단일 형태로 정규화하여 유지보수 비용을 줄일 수 있다.
- 애플리케이션에 직접 임베딩되는 라이브러리 방식을 사용하여 별도의 프록시 서버 운영 없이도 안정적인 장애 복구와 재시도 로직을 구현할 수 있다.
언급된 리소스
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.