메인 콘텐츠로 건너뛰기

개요

에이전트가 Google Slides 프레젠테이션을 생성, 편집 및 관리할 수 있도록 합니다. AI 기반 자동화로 프레젠테이션 생성을 자동화하고, 콘텐츠를 업데이트하고, Google Sheets에서 데이터를 가져오며, 프레젠테이션 워크플로를 간소화합니다.

전제 조건

Google Slides 통합을 사용하기 전에 다음 사항을 확인하세요:
  • 활성 구독이 있는 CrewAI AMP 계정
  • Google Slides 액세스 권한이 있는 Google 계정
  • 통합 페이지를 통해 Google 계정 연결

Google Slides 통합 설정

1. Google 계정 연결

  1. CrewAI AMP 통합으로 이동
  2. 인증 통합 섹션에서 Google Slides 찾기
  3. 연결을 클릭하고 OAuth 플로우 완료
  4. 프레젠테이션, 스프레드시트 및 드라이브 액세스에 필요한 권한 부여
  5. 통합 설정에서 Enterprise Token 복사

2. 필요한 패키지 설치

uv add crewai-tools

3. 환경 변수 설정

Agent(apps=[])와 함께 통합을 사용하려면 Enterprise Token으로 CREWAI_PLATFORM_INTEGRATION_TOKEN 환경 변수를 설정해야 합니다.
export CREWAI_PLATFORM_INTEGRATION_TOKEN="your_enterprise_token"
또는 .env 파일에 추가하세요:
CREWAI_PLATFORM_INTEGRATION_TOKEN=your_enterprise_token

사용 가능한 작업

설명: 내용이 없는 빈 프레젠테이션을 만듭니다.매개변수:
  • title (string, 필수): 프레젠테이션의 제목.
설명: 프레젠테이션에 대한 가벼운 메타데이터(제목, 슬라이드 수, 슬라이드 ID)를 가져옵니다. 전체 콘텐츠를 가져오기 전에 먼저 사용하세요.매개변수:
  • presentationId (string, 필수): 검색할 프레젠테이션의 ID.
설명: 프레젠테이션에서 모든 텍스트 콘텐츠를 추출합니다. 슬라이드 ID와 도형 및 테이블의 텍스트만 반환합니다 (포맷팅 없음).매개변수:
  • presentationId (string, 필수): 프레젠테이션의 ID.
설명: ID로 프레젠테이션을 검색합니다.매개변수:
  • presentationId (string, 필수): 검색할 프레젠테이션의 ID.
  • fields (string, 선택사항): 응답에 포함할 필드. 성능 향상을 위해 필요한 데이터만 반환하는 데 사용.
설명: 프레젠테이션에 업데이트를 적용하거나 콘텐츠를 추가하거나 제거합니다.매개변수:
  • presentationId (string, 필수): 업데이트할 프레젠테이션의 ID.
  • requests (array, 필수): 프레젠테이션에 적용할 업데이트 목록. 각 항목은 요청을 나타내는 객체.
  • writeControl (object, 선택사항): 쓰기 요청이 실행되는 방식을 제어합니다. requiredRevisionId (string)를 포함.
설명: 단일 슬라이드에서 텍스트 콘텐츠를 추출합니다. 도형 및 테이블의 텍스트만 반환합니다 (포맷팅 또는 스타일 없음).매개변수:
  • presentationId (string, 필수): 프레젠테이션의 ID.
  • pageObjectId (string, 필수): 텍스트를 가져올 슬라이드/페이지의 ID.
설명: ID로 특정 페이지를 검색합니다.매개변수:
  • presentationId (string, 필수): 프레젠테이션의 ID.
  • pageObjectId (string, 필수): 검색할 페이지의 ID.
설명: 페이지 썸네일을 생성합니다.매개변수:
  • presentationId (string, 필수): 프레젠테이션의 ID.
  • pageObjectId (string, 필수): 썸네일 생성을 위한 페이지의 ID.
설명: 프레젠테이션에 추가 빈 슬라이드를 추가합니다. 새 프레젠테이션에는 이미 빈 슬라이드가 하나 있습니다. 먼저 get_presentation_metadata를 확인하세요. 제목/본문 영역이 있는 슬라이드는 create_slide_with_layout을 사용하세요.매개변수:
  • presentationId (string, 필수): 프레젠테이션의 ID.
  • insertionIndex (integer, 선택사항): 슬라이드를 삽입할 위치 (0 기반). 생략하면 맨 끝에 추가됩니다.
설명: 제목, 본문 등의 플레이스홀더 영역이 있는 미리 정의된 레이아웃으로 슬라이드를 만듭니다. 구조화된 콘텐츠에는 create_slide보다 적합합니다. 생성 후 get_page로 플레이스홀더 ID를 찾고, 그 안에 텍스트를 삽입하세요.매개변수:
  • presentationId (string, 필수): 프레젠테이션의 ID.
  • layout (string, 필수): 레이아웃 유형. 옵션: BLANK, TITLE, TITLE_AND_BODY, TITLE_AND_TWO_COLUMNS, TITLE_ONLY, SECTION_HEADER, ONE_COLUMN_TEXT, MAIN_POINT, BIG_NUMBER. 제목+설명은 TITLE_AND_BODY, 제목만은 TITLE, 섹션 구분은 SECTION_HEADER가 적합합니다.
  • insertionIndex (integer, 선택사항): 삽입할 위치 (0 기반). 생략하면 맨 끝에 추가됩니다.
설명: 콘텐츠가 있는 텍스트 상자를 슬라이드에 만듭니다. 제목, 설명, 단락에 사용합니다. 테이블에는 사용하지 마세요. 선택적으로 EMU 단위로 위치(x, y)와 크기(width, height)를 지정할 수 있습니다 (914400 EMU = 1 인치).매개변수:
  • presentationId (string, 필수): 프레젠테이션의 ID.
  • slideId (string, 필수): 텍스트 상자를 추가할 슬라이드의 ID.
  • text (string, 필수): 텍스트 상자의 텍스트 내용.
  • x (integer, 선택사항): EMU 단위 X 위치 (914400 = 1 인치). 기본값: 914400 (왼쪽에서 1 인치).
  • y (integer, 선택사항): EMU 단위 Y 위치 (914400 = 1 인치). 기본값: 914400 (위에서 1 인치).
  • width (integer, 선택사항): EMU 단위 너비. 기본값: 7315200 (약 8 인치).
  • height (integer, 선택사항): EMU 단위 높이. 기본값: 914400 (약 1 인치).
설명: 프레젠테이션에서 슬라이드를 제거합니다. 슬라이드 ID를 찾으려면 먼저 get_presentation을 사용하세요.매개변수:
  • presentationId (string, 필수): 프레젠테이션의 ID.
  • slideId (string, 필수): 삭제할 슬라이드의 객체 ID. get_presentation에서 가져옵니다.
설명: 기존 슬라이드의 복사본을 만듭니다. 복사본은 원본 바로 다음에 삽입됩니다.매개변수:
  • presentationId (string, 필수): 프레젠테이션의 ID.
  • slideId (string, 필수): 복제할 슬라이드의 객체 ID. get_presentation에서 가져옵니다.
설명: 슬라이드를 새 위치로 이동하여 순서를 변경합니다. 슬라이드 ID는 현재 프레젠테이션 순서대로 있어야 합니다 (중복 없음).매개변수:
  • presentationId (string, 필수): 프레젠테이션의 ID.
  • slideIds (string 배열, 필수): 이동할 슬라이드 ID 배열. 현재 프레젠테이션 순서대로 있어야 합니다.
  • insertionIndex (integer, 필수): 대상 위치 (0 기반). 0 = 맨 앞, 슬라이드 수 = 맨 끝.
설명: 슬라이드에 YouTube 동영상을 삽입합니다. 동영상 ID는 YouTube URL의 “v=” 다음 값입니다 (예: youtube.com/watch?v=abc123의 경우 “abc123” 사용).매개변수:
  • presentationId (string, 필수): 프레젠테이션의 ID.
  • slideId (string, 필수): 동영상을 추가할 슬라이드의 ID. get_presentation에서 가져옵니다.
  • videoId (string, 필수): YouTube 동영상 ID (URL의 v= 다음 값).
설명: 슬라이드에 Google Drive의 동영상을 삽입합니다. 파일 ID는 Drive 파일 URL에서 찾을 수 있습니다.매개변수:
  • presentationId (string, 필수): 프레젠테이션의 ID.
  • slideId (string, 필수): 동영상을 추가할 슬라이드의 ID. get_presentation에서 가져옵니다.
  • fileId (string, 필수): 동영상의 Google Drive 파일 ID.
설명: 슬라이드의 배경 이미지를 설정합니다. 이미지 URL은 공개적으로 액세스 가능해야 합니다.매개변수:
  • presentationId (string, 필수): 프레젠테이션의 ID.
  • slideId (string, 필수): 배경을 설정할 슬라이드의 ID. get_presentation에서 가져옵니다.
  • imageUrl (string, 필수): 배경으로 사용할 이미지의 공개적으로 액세스 가능한 URL.
설명: 슬라이드에 빈 테이블을 만듭니다. 콘텐츠가 있는 테이블을 만들려면 create_table_with_content를 사용하세요.매개변수:
  • presentationId (string, 필수): 프레젠테이션의 ID.
  • slideId (string, 필수): 테이블을 추가할 슬라이드의 ID. get_presentation에서 가져옵니다.
  • rows (integer, 필수): 테이블의 행 수.
  • columns (integer, 필수): 테이블의 열 수.
설명: 한 번의 작업으로 콘텐츠가 있는 테이블을 만듭니다. 콘텐츠는 2D 배열로 제공하며, 각 내부 배열은 행을 나타냅니다. 예: [[“Header1”, “Header2”], [“Row1Col1”, “Row1Col2”]].매개변수:
  • presentationId (string, 필수): 프레젠테이션의 ID.
  • slideId (string, 필수): 테이블을 추가할 슬라이드의 ID. get_presentation에서 가져옵니다.
  • rows (integer, 필수): 테이블의 행 수.
  • columns (integer, 필수): 테이블의 열 수.
  • content (array, 필수): 2D 배열 형태의 테이블 콘텐츠. 각 내부 배열은 행입니다. 예: [[“Year”, “Revenue”], [“2023”, “$10M”]].
설명: Google 시트에서 프레젠테이션으로 데이터를 가져옵니다.매개변수:
  • presentationId (string, 필수): 프레젠테이션의 ID.
  • sheetId (string, 필수): 가져올 Google 시트의 ID.
  • dataRange (string, 필수): 시트에서 가져올 데이터 범위.
설명: 프레젠테이션과 연결된 Google 드라이브에 파일을 업로드합니다.매개변수:
  • file (string, 필수): 업로드할 파일 데이터.
  • presentationId (string, 필수): 업로드된 파일을 연결할 프레젠테이션의 ID.
설명: 사용자가 액세스할 수 있는 모든 프레젠테이션을 나열합니다.매개변수:
  • pageSize (integer, 선택사항): 페이지당 반환할 프레젠테이션 수.
  • pageToken (string, 선택사항): 페이지네이션을 위한 토큰.
설명: ID로 프레젠테이션을 삭제합니다.매개변수:
  • presentationId (string, 필수): 삭제할 프레젠테이션의 ID.

사용 예제

기본 Google Slides 에이전트 설정

from crewai import Agent, Task, Crew

# Google Slides 기능을 가진 에이전트 생성
slides_agent = Agent(
    role="프레젠테이션 작성자",
    goal="Google Slides 프레젠테이션을 효율적으로 생성하고 관리",
    backstory="프레젠테이션 디자인 및 콘텐츠 관리 전문 AI 어시스턴트.",
    apps=['google_slides']  # 모든 Google Slides 작업을 사용할 수 있습니다
)

# 새 프레젠테이션 생성 작업
create_presentation_task = Task(
    description="'분기별 매출 보고서'라는 제목으로 새 빈 프레젠테이션을 만드세요",
    agent=slides_agent,
    expected_output="새 프레젠테이션 '분기별 매출 보고서'가 성공적으로 생성됨"
)

# 작업 실행
crew = Crew(
    agents=[slides_agent],
    tasks=[create_presentation_task]
)

crew.kickoff()

문제 해결

일반적인 문제

인증 오류
  • Google 계정이 Google Slides 및 Google Drive 액세스에 필요한 권한을 가지고 있는지 확인하세요.
  • OAuth 연결이 필요한 모든 범위를 포함하는지 확인하세요.
프레젠테이션/페이지 ID 문제
  • 프레젠테이션 ID와 페이지 객체 ID가 올바른지 다시 확인하세요.
  • 프레젠테이션이나 페이지가 존재하고 액세스할 수 있는지 확인하세요.

도움 받기

도움이 필요하신가요?

Google Slides 통합 설정 또는 문제 해결에 대한 지원이 필요하시면 지원팀에 문의하세요.