Git Product home page Git Product logo

slides-app's Introduction

Slides app - intelligent querying of Google Slides presentations. After granting access to drive and slides through Google's OAuth API, you can query and submit questions to your Presentation notes and content without specifying which documents contain the information.

Screenshot 2023-12-20 at 6 01 07 PM

Getting Started

First, run the development server:

npm run dev

Open http://localhost:3000 with your browser to see the result

Firebase authentication required for access to slides page

Deploy on Firebase static hosting

  • firebase deploy --only hosting

Backend

Pine cone

  • Get pinecone api key
  • Using with npm or pip package
    • Create Index

serverless functions

in the /functions dir

  • getAuthentication - Get custom google OAuth URL with user profile, drive, slides scopes
  • oauthRedirect - Handle redirect from Google OAuth, create firebase token for webApp authentication
  • getSlides - Hit the Drive/Slides api and extract notes and slide content, save to Firestore
  • questionDocument - Ask a question to the AI about your slides
  • onPresentationWritten - When a slide is saved from getSlides to firestore, automatically create vector and store in Pinecone

Function ENV variables /functions.env

CLIENT_ID= Google OAuth Client ID

CLIENT_SECRET= Google OAuth Client Secret

REDIRECT_PAGE= The webapp landing page

HANDLER= OAuth Redirect Handler function

OPENAI_KEY=OpenAI Api Key

VECTOR_MODEL= Embedding vector model (OpenAI)

PINECONE_KEY= Pinecone API key

PINECONE_DOCUMENT_INDEX= Pinecone Vector Index

PINECONE_ENVIRONMENT= Pinecone cloud environment

Deploy backend

  • firebase deploy --only functions

Services to enable in GCP

  • Google Drive API
  • Google Slides API
  • IAM Service Account Credentials API
  • Google Functions
  • Firebase Auth
  • Firestore
    • Semantic Search API

GCP Configuration and Permissions

  • App Engine Service Account - Service Account Token Creator to create custom tokens
  • OAuth 2.0 Client ID
    • Configure origins and redirects from WebApp
Function Permissions and Settings
  • GetAuthenticaion (Retrieve Login) - Invocable by anonymous
  • OauthRedirect (Handle Redirect) - callable by https
  • GetSlides (Retrieve Slides) - Invocable by authenticated user
    • May need more than base 256MB to process slides
  • QuestionDocument - Invocable by authenticated user
  • onPresentationWritten - Invocable on document written to firestore Presentations collection
Firestore Collections
  • Users - contains user OAuth token and refresh token
  • Slides - contains users slide presentation content
  • Embeddings - contains presentation content embeddings

Architecture

Architecture

slides-app's People

Contributors

ricardolx avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.