Skip to content

INarrator is free to use tool which can summarize and narrate your EMAILs through Power of LLMs.

License

Notifications You must be signed in to change notification settings

keenborder786/INarrator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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}"}
  3. 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
  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.    

About

INarrator is free to use tool which can summarize and narrate your EMAILs through Power of LLMs.

Resources

License

Stars

Watchers

Forks

Packages

No packages published