Skip to content

Commit

Permalink
Merge branch 'master' of github.com:georgia-tech-db/eva
Browse files Browse the repository at this point in the history
  • Loading branch information
gaurav274 committed Jun 26, 2023
2 parents 9bd67d2 + 3e95be8 commit 8b830b3
Show file tree
Hide file tree
Showing 61 changed files with 2,408 additions and 1,709 deletions.
98 changes: 77 additions & 21 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,64 +7,114 @@ orbs:
workflows:
main:
jobs:
################################
#### PIP
################################
################################
- Pip-PyPI
- Pip-Local
- Docker-Local
- AWS
################################
#### UNIT TESTS
################################
################################
- Linux:
name: "Test | v3.8 | Linux"
v: "3.8"
mode: "COV"
mode: "TEST"
ray: "DISABLED"
- Linux:
name: "Test | v3.9 | Linux"
v: "3.9"
mode: "COV"
mode: "TEST"
ray: "DISABLED"
- Linux:
name: "Test | v3.10 | Linux"
v: "3.10"
mode: "COV"
mode: "TEST"
ray: "DISABLED"
- Linux:
name: "Test | Ray | v3.8 | Linux"
v: "3.8"
mode: "TEST"
ray: "ENABLED"
- Linux:
name: "Test | Ray | v3.9 | Linux"
v: "3.9"
mode: "TEST"
ray: "ENABLED"
- Linux:
name: "Test | Ray | v3.10 | Linux"
v: "3.10"
mode: "TEST"
ray: "ENABLED"
# Ray does not work on 3.11
# https://github.com/ray-project/ray/issues/33232
# - Linux:
# name: "Test | v3.11 | Linux"
# v: "3.11"
# mode: "TEST"
# ray: "DISABLED"
################################
### NOTEBOOKS
################################
################################
- Linux:
name: "Notebook | v3.8 | Linux"
v: "3.8"
mode: "NOTEBOOK"
ray: "DISABLED"
- Linux:
name: "Notebook | v3.9 | Linux"
v: "3.9"
mode: "NOTEBOOK"
ray: "DISABLED"
- Linux:
name: "Notebook | v3.10 | Linux"
v: "3.10"
mode: "NOTEBOOK"
ray: "DISABLED"
- Linux:
name: "Notebook | Ray | v3.8 | Linux"
v: "3.8"
mode: "NOTEBOOK"
ray: "ENABLED"
- Linux:
name: "Notebook | Ray | v3.9 | Linux"
v: "3.9"
mode: "NOTEBOOK"
ray: "ENABLED"
- Linux:
name: "Notebook | Ray | v3.10 | Linux"
v: "3.10"
mode: "NOTEBOOK"
ray: "ENABLED"
# - Linux:
# name: "Notebook | v3.11 | Linux"
# v: "3.11"
# mode: "NOTEBOOK"
################################
## LINTER
################################
################################
- Linux:
name: "Linter | Linux"
v: "3.10"
mode: "LINTER"
### RAY
- Linux:
name: "Test | Ray | v3.10 | Linux"
v: "3.10"
mode: "RAY"
- Windows:
name: "Windows | v3.10"
- MacOS:
name: "MacOS | v3.10"
# missing Torchvision
#- Linux:
# name: "Linux - v3.11"
# v: "3.11"
ray: "DISABLED"
################################
# OTHER OPERATING SYSTEMS
################################
################################
#- Windows:
# name: "Windows | v3.10"
# - MacOS:
# name: "MacOS | v3.10"
################################
# DOCKER AND CLOUD
################################
################################
- Docker-Local
- AWS

jobs:
Linux:
Expand All @@ -75,6 +125,9 @@ jobs:
mode:
type: string
default: "ALL"
ray:
type: string
default: "DISABLED"
resource_class: large
docker:
# https://circleci.com/docs/circleci-images#language-image-variants
Expand All @@ -88,23 +141,25 @@ jobs:
- v1-model_cache-{{ checksum "setup.py" }}

- run:
name: Install EVA package from GitHub repo with all dependencies
name: Install EvaDB package from GitHub repo with all dependencies
command: |
"python<< parameters.v >>" -m venv test_evadb
pip install --upgrade pip
source test_evadb/bin/activate
pip install ".[dev]"
pip uninstall -y ray
# Enable Ray
# Enable Ray (update evadb.yml file and install Ray package)
- when:
condition:
equal: [ RAY, << parameters.mode >> ]
equal: [ ENABLED, << parameters.ray >> ]
steps:
- run:
name: Enable Ray setting in the config.yml file
command: |
source test_evadb/bin/activate
python -c "import yaml;f = open('evadb/evadb.yml', 'r+');config_obj = yaml.load(f, Loader=yaml.FullLoader);config_obj['experimental']['ray'] = True;f.seek(0);f.write(yaml.dump(config_obj));f.truncate();"
pip install ".[dev]"
- run:
name: Test and upload coverage report to coveralls
Expand Down Expand Up @@ -191,6 +246,7 @@ jobs:
name: Install EVA package locally and start server
command: |
pip install --upgrade pip
pip cache purge
pip install "."
bash script/test/package.sh
Expand Down
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### [Deprecated]
### [Removed]

## [0.2.14] - 2023-06-24

* PR #887: fix: Notebooks fix
* PR #889: fix: ocr donut model
* PR #886: doc: improve youtube qa app doc
* PR #878: feat: make ray optional
* PR #884: test: disable reuse tests
* PR #883: test: update tests
* PR #880: feat: pandas qa
* PR #882: feat: adding more functions to Python API
* PR #881: docs: minor updates
* PR #863: feat: youtube qa app support analyzing a local video
* PR #877: notebooks: updates
* PR #875: Bump v0.2.14+dev
* PR #873: notebooks: update notebooks

## [0.2.13] - 2023-06-17

* PR #873: notebooks: update notebooks
Expand Down
33 changes: 33 additions & 0 deletions apps/youtube_channel_qa/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# YouTube Channel Question Answering

## Overview
This app enables you to ask questions about any number of YouTube videos effortlessly. Whether you want to inquire about a specific YouTube channel or manually select video IDs, this app has got you covered. It utilizes the power of OpenAI's Language Model to provide insightful responses.

## Setting up the necessary files

yt_video_ids: In case you dont want to ask questions on a particular YouTube Channel, manually list the Video IDs of the YouTube videos you want to ask questions about in this file.

questions: Specify the questions you want to ask. If this file is empty or doesn't exist, the app enters a Question-Answer (QA) loop where you can manually input your questions.

The default video ids correspond to a random selection of videos from the HowTo100M dataset which contains instructional videos spanning a wide range of categories including motorcycles, fashion, gardening, cooking, arts, fitness, etc. The questions specified in the file pertain to these videos.

The default YouTube Channel that the app downloads from is LinusTechTips. This can be altered by changing the
'DEFAULT_CHANNEL_NAME' variable.

## Dependencies

This app is powered by EvaDB's Python API and ChatGPT UDF.

## Setup
Ensure that the local Python version is >= 3.8. Install the required libraries:

```bat
pip install -r requirements.txt
```

## Usage
Run script:
```bat
python multi_youtube_video_qa.py
```

41 changes: 41 additions & 0 deletions apps/youtube_channel_qa/questions.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
"What are the steps for custom painting a motorcycle?",
"What is the process for Plasti Dipping motorcycle rims?",
"How do you paint a motorcycle gas tank?",
"What are the steps for painting a motorcycle?",
"How do you perform a basecoat prep for painting a motorcycle?",
"What is the recipe for Canh Rau Muong (Vietnamese Water Spinach Soup)?",
"Who was Howard Thurston?",
"How does the Aero Garden Seed Pod Kit work?",
"What are the ingredients for making Blueberry Muffins with Crumb Topping?",
"How do you make a DIY Homemade Exfoliating Peppermint Sugar Body Scrub?",
"What is the process for creating a DIY Mesh Water Ring Sling?",
"What are the instructions for using the EASY Sleepy Wrap (baby wrap)?",
"How do you make Ravioli Soup with Zucchini and Spinach?",
"What are the instructions for using the Eco Cub Baby Wrap Carrier for newborns?",
"How do you make Fresh Peach Muffins?",
"What are the steps to seed start German Chamomile indoors for garden flowers?",
"How do you perform the Card from Thin Air trick in coin and card magic?",
"What are the tips for growing Basil?",
"How do you make an origami balloon?",
"How do you make an origami balloon frog? (Part 2)",
"What is the process for making an origami glass?",
"How do you build an outdoor jungle gym?",
"How do you produce a Half Dollar from a napkin in coin tricks?",
"How do you recharge the AC system on an AUDI A4 B6?",
"What are the steps for setting up a primitive slackline?",
"How do you tie a moby wrap?",
"How do you wear your baby using a baby wrap or Moby?",
"What is the tutorial for the Incredible Coin Through Table magic trick?",
"How do you position a newborn in the JJ Cole Agility Baby Carrier?",
"What is the technique for maintaining balance in slacklining?",
"How can you protect a motorcycle tank bag with paint?",
"How do you create a window herb garden with Burpee Seeds?",
"What are the folding instructions for an Origami Balloon?",
"How do you make an Origami Iris (Lily version 2)?",
"How do you make an Origami Mikan and Kotatsu for display?",
"What are the beginner tips for setting up a Play Line in slacklining?",
"How can you create a pop-up poster presentation?",
"What is the process for recharging a car air conditioner in a Ford Taurus?",
"How does the Shaffali Pineapple + Peppermint Exfoliant detoxify the skin and spirit?",
"What are the tips for slacklining in a room?",
"How do you set up a slackline and what are some helpful tips?"
9 changes: 9 additions & 0 deletions apps/youtube_channel_qa/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
evadb>=0.2.14
torch
transformers
opencv-python
eva-decord
openai
youtube_transcript_api>=0.6.0
pytube>=15.0.0
scrapetube
Loading

0 comments on commit 8b830b3

Please sign in to comment.