Skip to main content

LlamaIndex Integration: Google Readers

Effortlessly incorporate Google-based data loaders into your Python workflow using LlamaIndex. It now supports more advanced operations through the implementation of ResourcesReaderMixin and FileSystemReaderMixin. Unlock the potential of various readers to enhance your data loading capabilities, including:

  • Google Calendar
  • Google Chat
  • Google Docs
  • Google Drive
  • Gmail
  • Google Keep
  • Google Maps
  • Google Sheets

Installation

pip install llama-index-readers-google

Authentication

You will need a credentials.json file from Google Cloud to interact with Google Services. To get this file, follow these steps:

  • Create a new project in the Google Cloud Console
  • Go to APIs & Services -> Library and search for the API you want, e.g. Gmail
  • Go to APIs & Services -> Credentials and create a new OAuth client ID
    • Application type: Web application
    • Authorized redirect URIs: http://localhost:8080/ (the last slash seems important)
  • Go to APIs & Services -> OAuth consent screen and make the app external, which allows you to connect your personal Google data once you explicitly add yourself as an allowed test user
  • Download the credentials JSON file from this screen and save it as credentials.json in the root of your project

See this example for a sample of code that successfully authenticates with Gmail once you have the credentials.json file.

Examples

Google Drive Reader

from llama_index.readers.google import GoogleDriveReader

# Initialize the reader
reader = GoogleDriveReader(
    folder_id="folder_id",
    service_account_key="[SERVICE_ACCOUNT_KEY_JSON]",
)

# Load data
documents = reader.load_data()

# List resources in the drive
resources = reader.list_resources()

# Get information about a specific resource
resource_info = reader.get_resource_info("file.txt")

# Load a specific resource
specific_doc = reader.load_resource("file.txt")

# Read file content directly
file_content = reader.read_file_content("path/to/file.txt")

print(f"Loaded {len(documents)} documents")
print(f"Found {len(resources)} resources")
print(f"Resource info: {resource_info}")
print(f"Specific document: {specific_doc}")
print(f"File content length: {len(file_content)} bytes")

Google Docs Reader

from llama_index.readers.google import GoogleDocsReader

# Specify the document IDs you want to load
document_ids = ["<document_id>"]

# Load data from Google Docs
documents = GoogleDocsReader().load_data(document_ids=document_ids)

Google Sheets Reader (Documents and Dataframes)

from llama_index.readers.google import GoogleSheetsReader

# Specify the list of sheet IDs you want to load
list_of_sheets = ["spreadsheet_id"]

# Create a Google Sheets Reader instance
sheets_reader = GoogleSheetsReader()

# Load data into Pandas in Data Classes of choice (Documents or Dataframes)
documents = sheets.load_data(list_of_sheets)
dataframes = sheets_reader.load_data_in_pandas(list_of_sheets)

Integrate these readers seamlessly to efficiently manage and process your data within your Python environment, providing a robust foundation for your data-driven workflows with LlamaIndex.

Google Maps Text Search Reader

from llama_index.readers.google import GoogleMapsTextSearchReader
from llama_index.core import VectorStoreIndex

loader = GoogleMapsTextSearchReader()
documents = loader.load_data(
    text="I want to eat quality Turkish food in Istanbul",
    number_of_results=160,
)


index = VectorStoreIndex.from_documents(documents)
index.query("Which Turkish restaurant has the best reviews?")

Google Chat Reader

from llama_index.readers.google import GoogleChatReader
from llama_index.core import VectorStoreIndex

space_names = ["<CHAT_ID>"]
chatReader = GoogleChatReader()
docs = chatReader.load_data(space_names=space_names)
index = VectorStoreIndex.from_documents(docs)
query_eng = index.as_query_engine()
print(query_eng.query("What was this conversation about?"))

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

llama_index_readers_google-0.7.3.tar.gz (23.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

llama_index_readers_google-0.7.3-py3-none-any.whl (34.5 kB view details)

Uploaded Python 3

File details

Details for the file llama_index_readers_google-0.7.3.tar.gz.

File metadata

  • Download URL: llama_index_readers_google-0.7.3.tar.gz
  • Upload date:
  • Size: 23.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for llama_index_readers_google-0.7.3.tar.gz
Algorithm Hash digest
SHA256 91b2813ff75a5b62d3dbe76898b15c46d14a14dde112f102c03cba3047280f1f
MD5 c09390d48d4e3607d4d6ed26cd6b3ff9
BLAKE2b-256 c014bbd4afe6e5f17140c21170fe1965f9c7187543ca1c333c62b9179e1b7c0e

See more details on using hashes here.

File details

Details for the file llama_index_readers_google-0.7.3-py3-none-any.whl.

File metadata

  • Download URL: llama_index_readers_google-0.7.3-py3-none-any.whl
  • Upload date:
  • Size: 34.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for llama_index_readers_google-0.7.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b6aa94dee961148fb7d8f8d6f03ddda6b0b0d443ed5a405d203ff0fe136e2376
MD5 918bcb37ea762cc2979eadf28a0ffdb3
BLAKE2b-256 ed48fcea5952307ec1560055766cdc0221b3ab9a0094e9ca592d0b7b2736f8ae

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page