Google Drive는 Google에서 개발한 파일 저장 및 동기화 서비스입니다.이 노트북은
Google Drive에서 문서를 로드하는 방법을 다룹니다. 현재는 Google Docs만 지원됩니다.
사전 요구사항
- Google Cloud 프로젝트를 생성하거나 기존 프로젝트를 사용합니다
- Google Drive API를 활성화합니다
- 데스크톱 앱용 자격 증명 승인
pip install -U google-api-python-client google-auth-httplib2 google-auth-oauthlib
🧑 Google Docs 데이터 수집 지침
환경 변수GOOGLE_APPLICATION_CREDENTIALS를 빈 문자열("")로 설정합니다.
기본적으로 GoogleDriveLoader는 credentials.json 파일이 ~/.credentials/credentials.json에 위치할 것으로 예상하지만, credentials_path 키워드 인자를 사용하여 구성할 수 있습니다. token.json도 마찬가지입니다 - 기본 경로: ~/.credentials/token.json, 생성자 매개변수: token_path.
GoogleDriveLoader를 처음 사용할 때 사용자 인증을 위해 브라우저에 동의 화면이 표시됩니다. 인증 후 token.json이 제공된 경로 또는 기본 경로에 자동으로 생성됩니다. 또한 해당 경로에 이미 token.json이 있는 경우 인증을 요청하지 않습니다.
GoogleDriveLoader는 Google Docs 문서 ID 목록 또는 폴더 ID에서 로드할 수 있습니다. URL에서 폴더 및 문서 ID를 얻을 수 있습니다:
- 폴더: drive.google.com/drive/u/0/folders/1yucgL9WGgWZdM1TOuKkeghlPizuzMYb5 -> 폴더 ID는
"1yucgL9WGgWZdM1TOuKkeghlPizuzMYb5" - 문서: docs.google.com/document/d/1bfaMQ18_i56204VaQDVeAFpqEijJTgvurupdEDiaUQw/edit -> 문서 ID는
"1bfaMQ18_i56204VaQDVeAFpqEijJTgvurupdEDiaUQw"
folder_id를 전달하면 기본적으로 document, sheet 및 pdf 타입의 모든 파일이 로드됩니다. file_types 인자를 전달하여 이 동작을 수정할 수 있습니다
선택적 File Loader 전달하기
Google Docs 및 Google Sheets 이외의 파일을 처리할 때GoogleDriveLoader에 선택적 file loader를 전달하는 것이 유용할 수 있습니다. file loader를 전달하면 Google Docs 또는 Google Sheets MIME 타입이 없는 문서에 해당 file loader가 사용됩니다. 다음은 file loader를 사용하여 Google Drive에서 Excel 문서를 로드하는 예제입니다.
확장 사용법
외부(비공식) 컴포넌트가 Google Drive의 복잡성을 관리할 수 있습니다:langchain-googledrive
이것은 langchain_community.document_loaders.GoogleDriveLoader와 호환되며 대신 사용할 수 있습니다.
컨테이너와 호환되도록 인증은 환경 변수 GOOGLE_ACCOUNT_FILE을 사용하여 자격 증명 파일(사용자 또는 서비스용)을 지정합니다.
Document로 변환할 수 있습니다.
- text/text
- text/plain
- text/html
- text/csv
- text/markdown
- image/png
- image/jpeg
- application/epub+zip
- application/pdf
- application/rtf
- application/vnd.google-apps.document (GDoc)
- application/vnd.google-apps.presentation (GSlide)
- application/vnd.google-apps.spreadsheet (GSheet)
- application/vnd.google.colaboratory (Notebook colab)
- application/vnd.openxmlformats-officedocument.presentationml.presentation (PPTX)
- application/vnd.openxmlformats-officedocument.wordprocessingml.document (DOCX)
GDriveLoader의 문서를 참조하세요.
단, 해당 패키지가 설치되어 있어야 합니다.
인증 Identity 로드하기
Google Drive Loader에서 수집한 각 파일에 대한 승인된 identity를 Document별 metadata와 함께 로드할 수 있습니다.확장 metadata 로드하기
각 Document의 metadata 내에서 다음 추가 필드도 가져올 수 있습니다:- full_path - Google Drive에서 파일의 전체 경로
- owner - 파일의 소유자
- size - 파일의 크기
검색 패턴 사용자 정의하기
Googlelist()
API와 호환되는 모든 매개변수를 설정할 수 있습니다.
Google 요청의 새로운 패턴을 지정하려면 PromptTemplate()을 사용할 수 있습니다.
프롬프트의 변수는 생성자에서 kwargs로 설정할 수 있습니다.
일부 사전 형식화된 요청이 제안됩니다({query}, {folder_id} 및/또는 {mime_type} 사용):
파일을 선택하는 기준을 사용자 정의할 수 있습니다. 미리 정의된 필터 세트가 제안됩니다:
| template | description |
|---|---|
| gdrive-all-in-folder | folder_id에서 모든 호환 파일 반환 |
| gdrive-query | 모든 드라이브에서 query 검색 |
| gdrive-by-name | 이름이 query인 파일 검색 |
| gdrive-query-in-folder | folder_id에서 query 검색 (recursive=true인 경우 하위 폴더 포함) |
| gdrive-mime-type | 특정 mime_type 검색 |
| gdrive-mime-type-in-folder | folder_id에서 특정 mime_type 검색 |
| gdrive-query-with-mime-type | 특정 mime_type으로 query 검색 |
| gdrive-query-with-mime-type-and-folder | 특정 mime_type과 folder_id에서 query 검색 |
- bullet
- link
- table
- titles
return_link 속성을 True로 설정하세요.
GSlide 및 GSheet의 모드
매개변수 mode는 다양한 값을 허용합니다:- “document”: 각 문서의 본문 반환
- “snippets”: 각 파일의 설명 반환 (Google Drive 파일의 metadata에 설정됨)
gslide_mode는 다양한 값을 허용합니다:
- “single” : <PAGE BREAK>가 있는 하나의 문서
- “slide” : 슬라이드당 하나의 문서
- “elements” : 각 요소에 대해 하나의 문서
gsheet_mode는 다양한 값을 허용합니다:
"single": 행당 하나의 문서 생성"elements": markdown 배열과 <PAGE BREAK> 태그가 있는 하나의 문서
고급 사용법
모든 Google File은 metadata에 ‘description’이 있습니다. 이 필드는 문서의 요약이나 다른 인덱싱된 태그를 저장하는 데 사용할 수 있습니다 (lazy_update_description_with_summary() 메서드 참조).
mode="snippet"을 사용하면 본문에 설명만 사용됩니다. 그렇지 않으면 metadata['summary']에 해당 필드가 있습니다.
때때로 파일 이름에서 일부 정보를 추출하거나 특정 기준으로 일부 파일을 선택하기 위해 특정 필터를 사용할 수 있습니다. 필터를 사용할 수 있습니다.
때때로 많은 문서가 반환됩니다. 모든 문서를 동시에 메모리에 보관할 필요는 없습니다. 메서드의 lazy 버전을 사용하여 한 번에 하나의 문서를 가져올 수 있습니다. 재귀 검색 대신 복잡한 쿼리를 사용하는 것이 좋습니다. recursive=True를 활성화하면 각 폴더에 대해 쿼리를 적용해야 합니다.
Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.