pip install inarrator
-
In the Google Cloud console, enable the Gmail API.
-
Register your App
- In the Google Cloud console, go to OAuth Consent screen
- Once on OAuth Consent Screen, select User Type External and then click create:
- Now complete the registration of your app which is fairly simple. Just remember two things:
- Since this is a Testing App, you will have to add some test users (ideally make it the same email through which you are registering the app)
- Add
.../auth/gmail.readonly
scope
-
Create "gmail_credentials.json" file:
- Go to Credentials
- Click
+ CREATE CREDENTIALS > OAuth client ID
- SELECT
Desktop app
as application type - After this a pop up will appear which will have a option to DOWNLOAD OAuth Client JSON file.
- Save the JSON and rename it to
gmail_credentials.json
-
Use the inarrator
-
Chat-GPT Example
from inarrator.email import Gmail from inarrator.summarizer.gpt import GPTModel gmail = Gmail() gmail.authenticate( credentials_path="gmail_credentials.json", gmail_scope=["https://www.googleapis.com/auth/gmail.readonly"], ) # https://support.google.com/mail/answer/7190 (You can read more about Gmail Filters) emails = gmail.get_latest_emails( gmail_filters="from:(-noreply -no-reply) is:unread -category:social -category:promotions -unsubscribe", # gmail_max_emails="30", ) model = GPTModel(model_name = 'gpt-3.5-turbo-16k',api_token = "") # OPENAI_API_KEY documents = [] for email in emails: documents.append(email) print(model.summarize(documents))
-
Hugging Face Hub Example
from inarrator.email import Gmail from inarrator.summarizer import HuggingFaceModel gmail = Gmail() gmail.authenticate( credentials_path="gmail_credentials.json", gmail_scope=["https://www.googleapis.com/auth/gmail.readonly"], ) emails = gmail.get_latest_emails( gmail_filters="from:(-noreply -no-reply) is:unread -category:social -category:promotions -unsubscribe", gmail_max_emails="30", ) model = HuggingFaceModel(model_name="tuner007/pegasus_summarizer", api_token="") # HF_HUB_TOKEN print(model.summarize(emails[0])) # Hugging Face Hub Models currently can summarize one email at a time.
-
Create a New App Registration
-
Request API permissions (Only Mail.Read)
-
Configure the Platform
-
Create a new client secret
- Click on
+ New client secret
. - Now create the following JSON and name it
outlook_credentials.json
. You can getApplication (client) ID
&Directory (tenant) ID
from overview of your App.
{"application_id":"Application (client) ID", "authority_url":"https://login.microsoftonline.com/{Directory (tenant) ID}"}
- Click on
-
Since OAuth only works on https but our redirect URI is localhost, we have to make the following environment variable
export OAUTHLIB_INSECURE_TRANSPORT=1
- Use the inarrator
-
Chat-GPT Example
from inarrator.email import OutLook from inarrator.summarizer.gpt import GPTModel outlook = OutLook() outlook.authenticate( credentials_path="outlook_credentials.json", outlook_scope=["Mail.Read"], ) emails = outlook.get_latest_emails( outlook_max_emails=5, ) model = GPTModel(model_name = 'gpt-3.5-turbo-16k',api_token = "") # OPENAI_API_KEY documents = [] for email in emails: documents.append(email) print(model.summarize(documents))
-
Hugging Face Hub Example
from inarrator.email import OutLook from inarrator.summarizer.huggingface import HuggingFaceModel outlook = OutLook() outlook.authenticate( credentials_path="outlook_credentials.json", outlook_scope=["Mail.Read"], ) emails = outlook.get_latest_emails( outlook_max_emails=5, ) model = HuggingFaceModel(model_name="tuner007/pegasus_summarizer", api_token="") # HF_HUB_TOKEN print(model.summarize(emails[0])) # Hugging Face Hub Models currently can summarize one email at a time.