멀티모달 에이전트 사용하기

CrewAI는 텍스트와 이미지 같은 비텍스트 콘텐츠를 모두 처리할 수 있는 멀티모달 에이전트를 지원한다. 이 가이드에서는 에이전트에서 멀티모달 기능을 활성화하고 사용하는 방법을 설명한다.

멀티모달 기능 활성화

멀티모달 에이전트를 생성하려면, 에이전트를 초기화할 때 multimodal 매개변수를 True로 설정한다:

from crewai import Agent

agent = Agent(
    role="Image Analyst",
    goal="Analyze and extract insights from images",
    backstory="An expert in visual content interpretation with years of experience in image analysis",
    multimodal=True  # 멀티모달 기능 활성화
)

multimodal=True로 설정하면, 에이전트는 자동으로 비텍스트 콘텐츠를 처리하는 데 필요한 도구들(예: AddImageTool)과 함께 구성된다.

이미지 작업하기

멀티모달 어시스턴트는 AddImageTool을 기본으로 포함하고 있다. 이 도구는 이미지를 처리할 수 있게 해준다. 여러분이 직접 이 도구를 추가할 필요는 없다. 멀티모달 기능을 활성화하면 자동으로 포함된다.

멀티모달 어시스턴트를 사용해 이미지를 분석하는 완전한 예제는 다음과 같다:

from crewai import Agent, Task, Crew

# 멀티모달 어시스턴트 생성
image_analyst = Agent(
    role="Product Analyst",
    goal="Analyze product images and provide detailed descriptions",
    backstory="Expert in visual product analysis with deep knowledge of design and features",
    multimodal=True
)

# 이미지 분석을 위한 태스크 생성
task = Task(
    description="Analyze the product image at https://example.com/product.jpg and provide a detailed description",
    expected_output="A detailed description of the product image",
    agent=image_analyst
)

# 크루 생성 및 실행
crew = Crew(
    agents=[image_analyst],
    tasks=[task]
)

result = crew.kickoff()

고급 사용법: 컨텍스트 활용

멀티모달 에이전트를 위한 작업을 생성할 때, 이미지에 대한 추가 컨텍스트나 특정 질문을 제공할 수 있다. 작업 설명에는 에이전트가 집중해야 할 특정 측면을 포함할 수 있다:

from crewai import Agent, Task, Crew

# 상세 분석을 위한 멀티모달 에이전트 생성
expert_analyst = Agent(
    role="시각 품질 검사관",
    goal="제품 이미지에 대한 상세 품질 분석 수행",
    backstory="시각 검사 전문성을 가진 시니어 품질 관리 전문가",
    multimodal=True  # AddImageTool이 자동으로 포함됨
)

# 특정 분석 요구사항을 포함한 작업 생성
inspection_task = Task(
    description="""
    https://example.com/product.jpg의 제품 이미지를 분석하고 다음 사항에 초점을 맞춰라:
    1. 재질 품질
    2. 제조 결함
    3. 표준 준수 여부
    발견된 문제점을 강조한 상세 보고서를 제공해라.
    """,
    expected_output="발견된 문제점을 강조한 상세 보고서",
    agent=expert_analyst
)

# 크루 생성 및 실행
crew = Crew(
    agents=[expert_analyst],
    tasks=[inspection_task]
)

result = crew.kickoff()

도구 상세 정보

멀티모달 에이전트를 사용할 때 AddImageTool은 자동으로 다음 스키마로 구성된다:

class AddImageToolSchema:
    image_url: str  # 필수: 처리할 이미지의 URL 또는 경로
    action: Optional[str] = None  # 선택: 이미지에 대한 추가 컨텍스트 또는 특정 질문

멀티모달 에이전트는 내장된 도구를 통해 이미지 처리를 자동으로 수행하며, 이를 통해 다음 작업이 가능하다:

  • URL 또는 로컬 파일 경로를 통해 이미지에 접근
  • 선택적 컨텍스트 또는 특정 질문을 통해 이미지 내용 처리
  • 시각 정보와 작업 요구 사항을 기반으로 분석 및 인사이트 제공

모범 사례

멀티모달 에이전트 작업 시 다음 모범 사례를 참고한다:

  1. 이미지 접근

    • 에이전트가 접근 가능한 URL로 이미지를 제공한다.
    • 로컬 이미지의 경우 임시 호스팅이나 절대 파일 경로를 사용한다.
    • 작업 실행 전 이미지 URL이 유효하고 접근 가능한지 확인한다.
  2. 작업 설명

    • 에이전트가 분석해야 할 이미지의 특정 부분을 명확히 지정한다.
    • 작업 설명에 명확한 질문이나 요구사항을 포함한다.
    • 집중 분석을 위해 action 매개변수를 활용한다.
  3. 리소스 관리

    • 이미지 처리는 텍스트 전용 작업보다 더 많은 계산 리소스를 필요로 한다.
    • 일부 언어 모델은 이미지 데이터에 base64 인코딩을 요구할 수 있다.
    • 여러 이미지를 한 번에 처리해 성능을 최적화한다.
  4. 환경 설정

    • 이미지 처리에 필요한 의존성이 환경에 설치되어 있는지 확인한다.
    • 사용하는 언어 모델이 멀티모달 기능을 지원하는지 점검한다.
    • 설정을 검증하기 위해 작은 이미지로 먼저 테스트한다.
  5. 에러 처리

    • 이미지 로드 실패 시 적절한 에러 처리를 구현한다.
    • 이미지 처리 실패를 대비해 대체 전략을 마련한다.
    • 디버깅을 위해 이미지 처리 작업을 모니터링하고 기록한다.