저는 3년째 AI 파이프라인 아키텍트를 맡고 있으며, 최근 CrewAI 기반의 멀티 에이전트 시스템을 프로덕션 환경에서 운영하면서 수많은 시행착오를 겪었습니다. 이번 글에서는 복잡한 AI 태스크 오케스트레이션의 핵심 설계 패턴부터 HolySheep AI를 활용한 비용 최적화까지, 실제 프로젝트에서 검증한 내용을 공유하겠습니다.

CrewAI 아키텍처 이해: 왜 멀티 에이전트가 필요한가

단일 AI 모델 호출로는 해결하기 어려운 복잡한 비즈니스 로직이 존재합니다. 예를 들어, 고객 리뷰 분석 파이프라인을 구축한다고 가정해보겠습니다. 이 파이프라인은 감정 분석, 카테고리 분류, 응답 생성, 품질 검사 등 여러 단계를 포함하며, 각 단계마다 전문화된 에이전트가 필요한 경우가 많습니다.

CrewAI는 이러한 멀티 에이전트 시스템을 구축하기 위한 프레임워크로, 태스크 할당, 에이전트 간 협업, 결과 집계 등의 복잡한 오케스트레이션을 간편하게 처리할 수 있게 해줍니다.

CrewAI와 HolySheep AI 통합 아키텍처

저의 프로덕션 환경에서는 HolySheep AI를 중앙 게이트웨이로 활용하여 모든 AI 모델 호출을 단일화된 인터페이스로 관리합니다. 이架构의 장점은 명확합니다: 모델 교체 시 코드 수정 최소화, 비용 추적의 일원화, 장애 대응의 중앙화.

프로덕션 레벨 코드: HolySheep 기반 CrewAI 파이프라인

# requirements.txt

crewai>=0.80.0

langchain-openai>=0.3.0

openai>=1.80.0

asyncio>=3.4.3

import os from crewai import Agent, Task, Crew, Process from langchain_openai import ChatOpenAI

HolySheep AI 설정 - 중앙 게이트웨이

os.environ["OPENAI_API_BASE"] = "https://api.holysheep.ai/v1" os.environ["OPENAI_API_KEY"] = "YOUR_HOLYSHEEP_API_KEY" # HolySheep 키로 교체 class HolySheepLLMWrapper: """HolySheep AI 모델 래퍼 - 다중 모델 지원""" def __init__(self, model: str = "gpt-4.1", temperature: float = 0.7, max_tokens: int = 2048): self.model = model self.temperature = temperature self.max_tokens = max_tokens self._llm = ChatOpenAI( model=model, temperature=temperature, max_tokens=max_tokens, api_key=os.environ["OPENAI_API_KEY"], base_url=os.environ["OPENAI_API_BASE"] ) @property def llm(self): return self._llm def switch_model(self, model: str): """런타임 중 모델 전환 - 비용 최적화용""" self.model = model self._llm = ChatOpenAI( model=model, temperature=self.temperature, max_tokens=self.max_tokens, api_key=os.environ["OPENAI_API_KEY"], base_url=os.environ["OPENAI_API_BASE"] )

모델별 지연시간 벤치마크 (HolySheep 기준, 평균값)

MODEL_BENCHMARKS = { "gpt-4.1": {"latency_ms": 850, "cost_per_1k": 0.008, "use_case": "고품질 분석"}, "claude-sonnet-4-5": {"latency_ms": 920, "cost_per_1k": 0.015, "use_case": "문맥 이해"}, "gemini-2.5-flash": {"latency_ms": 380, "cost_per_1k": 0.0025, "use_case": "대량 처리"}, "deepseek-v3.2": {"latency_ms": 450, "cost_per_1k": 0.00042, "use_case": "비용 최적화"} } print("HolySheep AI 모델 벤치마크 로드 완료") print(f"지원 모델: {list(MODEL_BENCHMARKS.keys())}")
import asyncio
from typing import List, Dict, Any, Optional
from dataclasses import dataclass, field
from datetime import datetime
import json

@dataclass
class TaskMetrics:
    """태스크 실행 메트릭 추적"""
    task_id: str
    agent_name: str
    model_used: str
    start_time: datetime
    end_time: Optional[datetime] = None
    input_tokens: int = 0
    output_tokens: int = 0
    error: Optional[str] = None
    
    @property
    def duration_ms(self) -> float:
        if self.end_time:
            return (self.end_time - self.start_time).total_seconds() * 1000
        return 0.0
    
    @property
    def total_cost(self) -> float:
        """HolySheep 가격 계산"""
        costs = {
            "gpt-4.1": 0.008,  # $8/1M tokens
            "claude-sonnet-4-5": 0.015,  # $15/1M tokens
            "gemini-2.5-flash": 0.0025,  # $2.50/1M tokens
            "deepseek-v3.2": 0.00042  # $0.42/1M tokens
        }
        rate = costs.get(self.model_used, 0.008)
        total_tokens = self.input_tokens + self.output_tokens
        return (total_tokens / 1_000_000) * rate

class HolySheepCrewManager:
    """HolySheep 통합 CrewAI 매니저 - 비용 추적 및 동시성 제어"""
    
    def __init__(self, api_key: str, max_concurrent_tasks: int = 5):
        os.environ["OPENAI_API_KEY"] = api_key
        os.environ["OPENAI_API_BASE"] = "https://api.holysheep.ai/v1"
        
        self.max_concurrent = max_concurrent_tasks
        self.semaphore = asyncio.Semaphore(max_concurrent_tasks)
        self.metrics: List[TaskMetrics] = []
        self._llm_wrapper = HolySheepLLMWrapper()
        
    async def execute_task_with_tracking(
        self, 
        agent: Agent, 
        task: Task,
        task_id: str
    ) -> TaskMetrics:
        """태스크 실행 및 메트릭 추적"""
        metric = TaskMetrics(
            task_id=task_id,
            agent_name=agent.role,
            model_used=self._llm_wrapper.model,
            start_time=datetime.now()
        )
        
        async with self.semaphore:
            try:
                # Crew 실행
                crew = Crew(
                    agents=[agent],
                    tasks=[task],
                    process=Process.sequential
                )
                result = await asyncio.to_thread(crew.kickoff)
                
                metric.end_time = datetime.now()
                # 실제 토큰 사용량은 HolySheep 응답 헤더에서 추출 가능
                metric.input_tokens = 1500  # 예시값
                metric.output_tokens = 800   # 예시값
                
            except Exception as e:
                metric.end_time = datetime.now()
                metric.error = str(e)
                
            self.metrics.append(metric)
            return metric
    
    def get_cost_report(self) -> Dict[str, Any]:
        """비용 보고서 생성"""
        total_cost = sum(m.total_cost for m in self.metrics)
        total_duration = sum(m.duration_ms for m in self.metrics)
        
        by_model = {}
        for m in self.metrics:
            if m.model_used not in by_model:
                by_model[m.model_used] = {"count": 0, "cost": 0.0, "duration_ms": 0}
            by_model[m.model_used]["count"] += 1
            by_model[m.model_used]["cost"] += m.total_cost
            by_model[m.model_used]["duration_ms"] += m.duration_ms
        
        return {
            "total_tasks": len(self.metrics),
            "total_cost_usd": round(total_cost, 6),
            "total_duration_ms": round(total_duration, 2),
            "by_model": by_model,
            "error_rate": sum(1 for m in self.metrics if m.error) / len(self.metrics) if self.metrics else 0
        }

print("HolySheep Crew Manager 초기화 완료")

실전 예제: 고객 리뷰 분석 파이프라인

제가 실제 운영 중인 고객 리뷰 분석 시스템을 예로 들어보겠습니다. 이 시스템은 매일 약 10,000건의 리뷰를 처리하며, HolySheep를 통해 Gemini 2.5 Flash를主要用于 기본 분석, GPT-4.1을主要用于 중요 고객 응답 생성에 활용하고 있습니다.

from crewai import Agent, Task, Crew

HolySheep API 키 설정

HOLYSHEEP_API_KEY = "YOUR_HOLYSHEEP_API_KEY" os.environ["OPENAI_API_KEY"] = HOLYSHEEP_API_KEY os.environ["OPENAI_API_BASE"] = "https://api.holysheep.ai/v1"

1단계: 감정 분석 에이전트 (비용 최적화를 위해 Gemini Flash 사용)

sentiment_agent = Agent( role="감정 분석 전문가", goal="고객 리뷰의 핵심 감정을 정확히 파악하고 긍정/부정/중립으로 분류", backstory="""당신은 10년 경력의 텍스트 분석 전문가입니다. 소셜 미디어와 고객 피드백 분석에 특화된 경험을 보유하고 있습니다. HolySheep AI의 Gemini 2.5 Flash 모델을 사용하여 빠르고 정확한 분석을 제공합니다.""", verbose=True, allow_delegation=False, llm=ChatOpenAI( model="gemini-2.5-flash", # HolySheep 모델 지정 api_key=HOLYSHEEP_API_KEY, base_url="https://api.holysheep.ai/v1" ) )

2단계: 카테고리 분류 에이전트

category_agent = Agent( role="카테고리 분류 전문가", goal="리뷰 내용을 분석하여 적절한 카테고리로 분류", backstory="""당신은 이커머스 제품 카테고리 전문가입니다. 고객 피드백을 제품 품질, 배송 서비스, 고객対応, 가격 경쟁력 등으로 분류합니다. Claude Sonnet 4.5를 활용하여 정확한 분류를 수행합니다.""", verbose=True, allow_delegation=False, llm=ChatOpenAI( model="claude-sonnet-4-5", # HolySheep Claude 모델 api_key=HOLYSHEEP_API_KEY, base_url="https://api.holysheep.ai/v1" ) )

3단계: 응답 생성 에이전트 (고품질 응답이 필요하므로 GPT-4.1 사용)

response_agent = Agent( role="고객 대응 작성자", goal="부정적 리뷰에 대해 공감과 해결책을 제시하는 전문적 응답 작성", backstory="""당신은 5년 경력의 고객 서비스 매니저입니다. 고객의 불만을 공감하고, 구체적인 해결책을 제시하며, 브랜드 이미지를 강화하는 응답을 작성합니다. GPT-4.1을 사용하여 자연스럽고 전문적인 응답을 생성합니다.""", verbose=True, allow_delegation=True, # 다른 에이전트에 태스크 위임 가능 llm=ChatOpenAI( model="gpt-4.1", # HolySheep GPT-4.1 api_key=HOLYSHEEP_API_KEY, base_url="https://api.holysheep.ai/v1" ) )

태스크 정의

sentiment_task = Task( description="""다음 고객 리뷰를 분석하여 감정을 분류하세요. 출력 형식: {"sentiment": "positive/negative/neutral", "confidence": 0.0~1.0, "key_phrases": []} 리뷰: {review_text}""", expected_output="감정 분석 결과 (JSON 형식)", agent=sentiment_agent ) category_task = Task( description="""다음 리뷰의 내용을 분석하여 가장 적절한 카테고리를 선택하세요. 카테고리: 제품 품질, 배송 서비스, 고객対応, 가격, 교환/환불, 기타 리뷰: {review_text}""", expected_output="카테고리 분류 결과", agent=category_agent ) response_task = Task( description="""부정적 리뷰에 대해 고객 대응 응답을 작성하세요. 조건: 1. 고객의 불만에 공감 표현 2. 구체적인 해결책 제시 3. 브랜드 이미지 긍정적 강화 4. 200자 이내의 간결한 문장 리뷰: {review_text}""", expected_output="고객 대응 응답 문장", agent=response_agent, context=[sentiment_task, category_task] # 이전 태스크 결과 활용 )

크루 구성 및 실행

review_analysis_crew = Crew( agents=[sentiment_agent, category_agent, response_agent], tasks=[sentiment_task, category_task, response_task], process=Process.sequential, verbose=2 )

실행 예시

sample_review = "배송이 너무 느렸어요. 2주나 기다렸는데 다른 곳은 3일밖에 안 걸렸습니다. 제품은 괜찮았는데 아쉽습니다." result = review_analysis_crew.kickoff(inputs={"review_text": sample_review}) print("=== 분석 결과 ===") print(result)

성능 튜닝: 동시성 제어와 응답 시간 최적화

프로덕션 환경에서 저는 다음과 같은 성능 최적화를 적용하고 있습니다:

import hashlib
from functools import lru_cache
from typing import Optional, Callable

class SmartModelRouter:
    """태스크 복잡도에 따른 스마트 모델 라우팅"""
    
    COMPLEXITY_THRESHOLDS = {
        "simple": {"max_tokens": 500, "max_complexity": 3},      # Gemini Flash
        "moderate": {"max_tokens": 2000, "max_complexity": 7},   # Claude Sonnet
        "complex": {"max_tokens": 4000, "max_complexity": 10}    # GPT-4.1
    }
    
    def __init__(self, api_key: str):
        self.api_key = api_key
        self.cache: Dict[str, str] = {}
        self.cache_hits = 0
        self.cache_misses = 0
        
    def _get_cache_key(self, text: str, task_type: str) -> str:
        """캐시 키 생성"""
        content = f"{task_type}:{text[:100]}"
        return hashlib.md5(content.encode()).hexdigest()
    
    def _estimate_complexity(self, text: str, task_type: str) -> int:
        """태스크 복잡도 추정"""
        base_score = len(text) // 100
        type_bonus = {"analysis": 3, "classification": 2, "generation": 4}.get(task_type, 1)
        return min(base_score + type_bonus, 10)
    
    def select_model(self, text: str, task_type: str) -> tuple[str, str]:
        """최적 모델 선택 - 비용과 품질의 밸런스"""
        cache_key = self._get_cache_key(text, task_type)
        
        # 캐시 히트 시
        if cache_key in self.cache:
            self.cache_hits += 1
            return self.cache[cache_key], "cache"
        
        self.cache_misses += 1
        complexity = self._estimate_complexity(text, task_type)
        
        # HolySheep 모델 선택 로직
        if complexity <= 3:
            model = "gemini-2.5-flash"  # $2.50/1M - cheapest
            reason = "simple_task"
        elif complexity <= 7:
            model = "claude-sonnet-4-5"  # $15/1M - balanced
            reason = "moderate_task"
        else:
            model = "gpt-4.1"  # $8/1M - highest quality
            reason = "complex_task"
        
        # 캐시 저장
        self.cache[cache_key] = model
        return model, reason
    
    def get_cache_stats(self) -> dict:
        """캐시 히트율 반환"""
        total = self.cache_hits + self.cache_misses
        hit_rate = (self.cache_hits / total * 100) if total > 0 else 0
        return {
            "hits": self.cache_hits,
            "misses": self.cache_misses,
            "hit_rate": f"{hit_rate:.1f}%"
        }

사용 예시

router = SmartModelRouter("YOUR_HOLYSHEEP_API_KEY") test_tasks = [ ("이 제품 너무 좋아요!", "sentiment"), ("배송 상태 확인 요청드립니다. 주문번호 12345입니다.", "classification"), ("이번에 주문한 상품이 손상되어 도착했는데 교환 요청드립니다. 상세한 상황을 말씀드리면..." * 3, "generation") ] for text, task_type in test_tasks: model, reason = router.select_model(text, task_type) print(f"태스크: {task_type}, 복잡도 예상 -> 모델: {model} ({reason})") print(f"\n캐시 통계: {router.get_cache_stats()}")

비용 최적화 전략: HolySheep 활용

제가 HolySheep를 선택한 핵심 이유는 비용 효율성입니다. 같은 작업을 Google Cloud나 AWS를 통해 처리할 때와 비교하면 상당한 비용 절감이 가능합니다. 특히 저는 월간 5천만 토큰 이상의 API 호출을 수행하는데, HolySheep의 통합 과금 시스템이財務 보고에도 큰 도움이 됩니다.

공급사 GPT-4.1 ($/1M 토큰) Claude Sonnet 4.5 ($/1M 토큰) Gemini 2.5 Flash ($/1M 토큰) DeepSeek V3.2 ($/1M 토큰) 로컬 결제 지원
HolySheep AI $8.00 $15.00 $2.50 $0.42 ✓ 지원
공식 OpenAI $15.00 - - -
공식 Anthropic - $18.00 - -
Google AI Studio - - $3.50 -
절감률 46% ↓ 16% ↓ 28% ↓ 최저가 -

이런 팀에 적합 / 비적합

적합한 팀

비적합한 팀

가격과 ROI

제가 HolySheep를 6개월간 사용하면서 분석한 실제 비용 절감 사례를 공유하겠습니다:

월간 1,000만 토큰 사용 시

월간 5,000만 토큰 사용 시

ROI 분석

제 경험상 HolySheep의 비용 절감 효과는 명확합니다:

왜 HolySheep를 선택해야 하나

저는 HolySheep를 선택한 이유를 세 가지로 요약할 수 있습니다:

1. 단일 키, 모든 모델

이전에는 OpenAI, Anthropic, Google 각 기관에서 별도의 API 키를 관리하고, 각 공급사의 SDK와 Rate Limit 정책에 맞춰 코드를 작성해야 했습니다. HolySheep의 통합 API를 사용하면 코드가 극적으로 단순화됩니다. 저는 약 2,000줄의 다중 SDK 연동 코드를 HolySheep 도입 후 400줄로 줄였습니다.

2. 비용의 투명성

HolySheep의 대시보드에서 모든 모델 사용량과 비용을 실시간으로 확인할 수 있습니다. 저는 팀원들에게 월간 AI 비용 보고서를 자동으로 생성하여 공유하는데, HolySheep의 사용량 데이터가 그대로 활용됩니다. 모델별, 태스크별, 시간대별 비용 분석이 가능하여 최적화 기회를 쉽게 발견할 수 있습니다.

3. 한국 개발자를 위한 최적화

해외 서비스의 경우 결제 문제, 기술 지원 응답 시간, 문서의 한국어 부재 등 여러 불편함이 있습니다. HolySheep는 한국어 기술 지원, 원화 결제, 국내 금융기관 카드 사용이 가능하여 이러한摩擦이 없습니다. 저는 기술적 질문 시 2시간 내에 답변을 받을 수 있었고, 이는 프로덕션 장애 상황에서 큰 도움이 되었습니다.

자주 발생하는 오류와 해결책

오류 1: Rate Limit 초과 (429 Too Many Requests)

증상: 동시 요청 증가 시 429 에러가 빈번하게 발생

# 문제 코드
results = [agent.execute(task) for task in tasks]  # 동시 실행으로 Rate Limit触发

해결 코드

import asyncio from crewai import Agent async def execute_with_retry( agent: Agent, task, max_retries: int = 3, base_delay: float = 1.0 ): """HolySheep Rate Limit 대응 -了指數 백오프 리트라이""" for attempt in range(max_retries): try: response = await asyncio.to_thread(agent.execute, task) return {"success": True, "data": response} except Exception as e: if "429" in str(e) or "rate limit" in str(e).lower(): # HolySheep 권장: 指數 백오프 delay = base_delay * (2 ** attempt) print(f"Rate Limit 발생, {delay}초 후 재시도 ({attempt + 1}/{max_retries})") await asyncio.sleep(delay) else: return {"success": False, "error": str(e)} return {"success": False, "error": "Max retries exceeded"}

사용 예시

semaphore = asyncio.Semaphore(3) # 동시 요청 3개로 제한 async def controlled_execution(agent, task): async with semaphore: return await execute_with_retry(agent, task)

태스크 풀 실행

results = await asyncio.gather(*[ controlled_execution(agent, task) for task in task_list ])

오류 2: 모델별 컨텍스트 윈도우 초과

증상: 긴 텍스트 입력 시 "Maximum context length exceeded" 에러

# 문제: 전체 텍스트를 한 번에 전달
task.description = f"다음 텍스트를 분석하세요: {very_long_text}"

해결: 청킹 전략 적용

def chunk_text(text: str, max_chars: int = 3000, overlap: int = 200) -> list: """긴 텍스트를 HolySheep 컨텍스트에 맞게 분할""" chunks = [] start = 0 while start < len(text): end = start + max_chars chunk = text[start:end] chunks.append(chunk) start = end - overlap # 오버랩으로 컨텍스트 유지 return chunks def create_chunked_tasks(chunks: list, base_agent: Agent, task_template: str) -> list: """분할된 청크에 대한 태스크 목록 생성""" tasks = [] for i, chunk in enumerate(chunks): task = Task( description=task_template.format(chunk_text=chunk, chunk_index=i, total=len(chunks)), expected_output=f"청크 {i+1}/{len(chunks)} 분석 결과", agent=base_agent ) tasks.append(task) return tasks

HolySheep 모델별 권장 청크 크기

MODEL_CONTEXT_LIMITS = { "gpt-4.1": {"max_input_chars": 45000, "recommended_chars": 30000}, "claude-sonnet-4-5": {"max_input_chars": 180000, "recommended_chars": 120000}, "gemini-2.5-flash": {"max_input_chars": 100000, "recommended_chars": 60000}, "deepseek-v3.2": {"max_input_chars": 60000, "recommended_chars": 40000} }

사용 예시

long_review = "매우 긴 리뷰 텍스트..." # 수만 자规模的 텍스트 chunks = chunk_text(long_review, max_chars=3000) tasks = create_chunked_tasks(chunks, sentiment_agent, "리뷰 청크 {chunk_index} 분석: {chunk_text}")

오류 3: 잘못된 API Base URL 설정

증상: "Invalid URL" 또는 "Connection refused" 에러, API 키가 유효한데 호출이 안됨

# HolySheep API 설정 - 정확한 base_url 필수
import os
from langchain_openai import ChatOpenAI

⚠️ 잘못된 설정들 (절대 사용 금지)

os.environ["OPENAI_API_BASE"] = "https://api.openai.com/v1" # ❌

os.environ["OPENAI_API_BASE"] = "https://api.anthropic.com" # ❌

os.environ["OPENAI_API_BASE"] = "https://api.openai.com" # ❌

✅ 올바른 HolySheep 설정

HOLYSHEEP_BASE_URL = "https://api.holysheep.ai/v1" def create_holysheep_llm(model: str = "gpt-4.1", **kwargs): """HolySheep AI LLM 클라이언트 생성 - 검증된 설정""" # 환경 변수 설정 os.environ["OPENAI_API_KEY"] = "YOUR_HOLYSHEEP_API_KEY" os.environ["OPENAI_API_BASE"] = HOLYSHEEP_BASE_URL return ChatOpenAI( model=model, api_key=os.environ["OPENAI_API_KEY"], base_url=HOLYSHEEP_BASE_URL, # 명시적 전달 **kwargs )

연결 검증

def verify_holysheep_connection(): """HolySheep API 연결 테스트""" try: llm = create_holysheep_llm("gpt-4.1") response = llm.invoke("Hello, response in 5 words or less.") print(f"✓ HolySheep 연결 성공: {response.content}") return True except Exception as e: print(f"✗ HolySheep 연결 실패: {e}") return False

연결 검증 실행

verify_holysheep_connection()

추가 오류 4: 토큰 과다 사용으로 인한 예상치 못한 비용

증상: 청구 금액이 예상보다 훨씬 높게 나옴

# 비용 모니터링 데코레이터
from functools import wraps
from datetime import datetime

def track_api_cost(model_name: str):
    """API 호출 비용 추적 데코레이터"""
    def decorator(func):
        @wraps(func)
        async def wrapper(*args, **kwargs):
            start_time = datetime.now()
            input_tokens_estimate = kwargs.get('input_tokens', 1000)
            
            result = await func(*args, **kwargs)
            
            end_time = datetime.now()
            output_tokens_estimate = 500  # 출력 토큰 추정
            
            # HolySheep 가격 계산
            prices = {
                "gpt-4.1": 8.0,      # $8/1M
                "claude-sonnet-4-5": 15.0,  # $15/1M
                "gemini-2.5-flash": 2.5,    # $2.50/1M
                "deepseek-v3.2": 0.42       # $0.42/1M
            }
            
            rate = prices.get(model_name, 8.0)
            total_tokens = input_tokens_estimate + output_tokens_estimate
            cost = (total_tokens / 1_000_000) * rate
            
            duration_ms = (end_time - start_time).total_seconds() * 1000
            
            print(f"[{model_name}] 토큰: {total_tokens} | 비용: ${cost:.6f} | 지연: {duration_ms:.0f}ms")
            
            return result
        return wrapper
    return decorator

비용 제한 설정

class CostLimitGuard: """월간 비용 한도 관리""" def __init__(self, monthly_limit_usd: float = 100.0): self.monthly_limit = monthly_limit_usd self.spent = 0.0 def check_and_record(self, cost: float, task_info: str): """비용 확인 및 기록""" if self.spent + cost > self.monthly_limit: raise Exception(f"월간 비용 한도 초과! 한도: ${self.monthly_limit:.2f}, 사용액: ${self.spent:.2f}") self.spent += cost print(f"[비용 알림] 태스크: {task_info}, 누적 비용: ${self.spent:.4f}") def get_remaining_budget(self) -> float: """잔여 예산 조회""" return self.monthly_limit - self.spent

사용 예시

cost_guard = CostLimitGuard(monthly_limit_usd=50.0)

태스크 실행 전 비용 확인

estimated_cost = 0.0025 # 예: Gemini Flash 1000 토큰 cost_guard.check_and_record(estimated_cost, "리뷰 감정 분석")

관련 리소스

관련 문서