Skip to content

Latest commit

 

History

History
159 lines (117 loc) · 5.5 KB

README.md

File metadata and controls

159 lines (117 loc) · 5.5 KB

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.