Summarize and Narrate your emails through power of LLMs.
Project description
INarrator
Install the Package
pip install inarrator
Use the Package
Gmail
-
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.readonlyscope
-
Create "gmail_credentials.json" file:
- Go to Credentials
- Click
+ CREATE CREDENTIALS > OAuth client ID - SELECT
Desktop appas 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.
Outlook
-
Create a New App Registration
-
Request API permissions (Only Mail.Read)
-
Configure the Platform
- Add a Mobile and Desktop Application
- Choose the Following Configuration
- Add a Mobile and Desktop Application
-
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) IDfrom overview of your App.
{"application_id":"Application (client) ID", "authority_url":"https://login.microsoftonline.com/{Directory (tenant) ID}", "outlook_scope":["Mail.Read"]}
- Click on
-
Since OAuth only work https but our redirect URI is localhost, we would 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file inarrator-0.0.3.tar.gz.
File metadata
- Download URL: inarrator-0.0.3.tar.gz
- Upload date:
- Size: 10.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.5.1 CPython/3.10.6 Linux/6.2.0-33-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0becc069be95d2d32edb3a61c62d954f5cdf08f1ae83b397db84cfd31ab103d5
|
|
| MD5 |
a5be64ee2ef6d286f0ce3254ac54b39e
|
|
| BLAKE2b-256 |
3d8ff8890d3cb6f2c568ab5035b5f3863df55c03ca719bb61341361113afbd52
|
File details
Details for the file inarrator-0.0.3-py3-none-any.whl.
File metadata
- Download URL: inarrator-0.0.3-py3-none-any.whl
- Upload date:
- Size: 12.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.5.1 CPython/3.10.6 Linux/6.2.0-33-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b3a5e36aa1dd0f16df62830d0a46dd2b7cd6104935937d43ab95393dd17019e
|
|
| MD5 |
7f4d460956971b4674e5c1eb06655e37
|
|
| BLAKE2b-256 |
523f5cf2e88fb5b85d30bf6da92e7b84c8e062a3bd3e6e19d92f31211323ca05
|