Skip to main content

Summarize and Narrate your emails through power of LLMs.

Project description

INarrator

Install the Package

pip install inarrator

Use the Package

Gmail

  1. In the Google Cloud console, enable the Gmail API.

  2. 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
  3. 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
  4. 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

  1. Create a New App Registration

  2. Request API permissions (Only Mail.Read)

  1. Configure the Platform

    • Add a Mobile and Desktop Application
    • Choose the Following Configuration
  2. Create a new client secret

    • Click on + New client secret.
    • Now create the following JSON and name it outlook_credentials.json. You can get Application (client) ID & Directory (tenant) ID from overview of your App.
    {"application_id":"Application (client) ID",
    "authority_url":"https://login.microsoftonline.com/{Directory (tenant) ID}",
    "outlook_scope":["Mail.Read"]}
    
  3. 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
  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


Download files

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

Source Distribution

inarrator-0.0.3.tar.gz (10.8 kB view hashes)

Uploaded Source

Built Distribution

inarrator-0.0.3-py3-none-any.whl (12.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page