openclaw-provider-manager은(는) 무엇을 하나요?
AI 모델 제공자를 관리하여 모델을 자동으로 발견하고, 사용량 한도를 추적하며, 에이전트 전체에서 실패 시 모델을 자동으로 전환합니다.
개요
이 스킬은 다음과 같은 기능을 제공합니다:
- 자동 모델 발견: 등록된 제공자에서 사용 가능한 모델을 자동으로 검색하고 캐싱합니다.
- 사용량 한도 추적: 각 제공자의 API 사용량 한도와 현재 사용량을 실시간으로 모니터링합니다.
- 자동 장애 조치: 특정 모델 호출이 실패할 경우 대체 모델로 자동 전환합니다.
- 제공자 관리: 여러 AI 모델 제공자(예: OpenAI, Anthropic, 로컬 모델)를 중앙에서 관리합니다.
지원 플랫폼
- Claude Code
- Cursor
- Codex
- OpenClaw 기반 에이전트
설치
- 저장소를 클론합니다:
git clone https://github.com/nancealeuronic154/openclaw-provider-manager.git
- 의존성을 설치합니다:
cd openclaw-provider-manager
pip install -r requirements.txt
- 환경 변수를 설정합니다:
export PROVIDER_CONFIG_PATH="./config/providers.yaml"
export CACHE_DIR="./.cache/providers"
설정
providers.yaml 파일에 제공자를 정의합니다:
providers:
- name: openai
api_key: ${OPENAI_API_KEY}
base_url: "https://api.openai.com/v1"
models:
- gpt-4
- gpt-3.5-turbo
rate_limit:
max_requests: 100
window_seconds: 60
- name: anthropic
api_key: ${ANTHROPIC_API_KEY}
base_url: "https://api.anthropic.com/v1"
models:
- claude-3-opus
- claude-3-sonnet
rate_limit:
max_requests: 50
window_seconds: 60
사용법
기본 사용
from provider_manager import ProviderManager
manager = ProviderManager()
# 사용 가능한 모델 목록 가져오기
models = manager.list_available_models()
print(models)
# 특정 모델 호출 (실패 시 자동 전환)
response = manager.call_model(
model="gpt-4",
prompt="Hello, world!",
fallback_models=["gpt-3.5-turbo", "claude-3-sonnet"]
)
print(response)
CLI 사용
# 사용 가능한 모델 나열
openclaw-provider-manager list-models
# 특정 제공자 확인
openclaw-provider-manager check-provider anthropic
# 사용량 한도 보기
openclaw-provider-manager usage-limits
API 참조
ProviderManager
__init__(config_path: str = None): 설정 파일 경로를 사용하여 관리자 초기화.list_available_models() -> List[str]: 모든 제공자에서 사용 가능한 모델 목록 반환.call_model(model: str, prompt: str, fallback_models: List[str] = None) -> str: 모델을 호출하고 실패 시 대체 모델 사용.get_provider_status(provider_name: str) -> dict: 특정 제공자의 상태(사용량, 한도 등) 반환.add_provider(config: dict): 새 제공자를 동적으로 추가.
RateLimiter
check_limit(provider_name: str) -> bool: 제공자가 현재 한도에 도달했는지 확인.increment_usage(provider_name: str): 제공자 사용량 증가.
장애 조치 로직
- 기본 모델 호출 시도.
- 실패 시(HTTP 429, 500, 시간 초과 등)
fallback_models목록에 있는 다음 모델로 전환. - 모든 대체 모델이 실패하면
ModelNotAvailable예외 발생. - 실패 통계를 기록하여 향후 라우팅 결정에 활용.
예제
다양한 시나리오에 대한 자세한 예제는 examples/ 디렉토리를 참조하세요.
기여
기여는 환영합니다! 자세한 내용은 CONTRIBUTING.md를 읽어주세요.
라이선스
MIT