Metadata-Version: 2.1
Name: evadb
Version: 0.3.6
Summary: EvaDB AI-Relational Database System
Home-page: https://github.com/georgia-tech-db/eva
Author: Georgia Tech Database Group
Author-email: arulraj@gatech.edu
License: Apache License 2.0
Download-URL: https://github.com/georgia-tech-db/eva
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: aenum >=2.2.0
Requires-Dist: diskcache >=5.4.0
Requires-Dist: lark >=1.0.0
Requires-Dist: numpy >=1.19.5
Requires-Dist: pandas >=1.1.5
Requires-Dist: psutil
Requires-Dist: pydantic <2
Requires-Dist: pyyaml >=5.1
Requires-Dist: retry >=0.9.2
Requires-Dist: sqlalchemy-utils >=0.36.6
Requires-Dist: sqlalchemy >=2.0.0
Requires-Dist: thefuzz
Provides-Extra: dev
Requires-Dist: Pillow >=8.4.0 ; extra == 'dev'
Requires-Dist: PyDriller ; extra == 'dev'
Requires-Dist: PyGithub ; extra == 'dev'
Requires-Dist: black >=23.1.0 ; extra == 'dev'
Requires-Dist: boto3 ; extra == 'dev'
Requires-Dist: bs4 ; extra == 'dev'
Requires-Dist: codespell ; extra == 'dev'
Requires-Dist: coveralls >=3.0.1 ; extra == 'dev'
Requires-Dist: eva-decord >=0.6.1 ; extra == 'dev'
Requires-Dist: facenet-pytorch >=2.5.2 ; extra == 'dev'
Requires-Dist: faiss-cpu ; extra == 'dev'
Requires-Dist: flake8 >=3.9.1 ; extra == 'dev'
Requires-Dist: gpt4all ; extra == 'dev'
Requires-Dist: ipython <8.13.0 ; extra == 'dev'
Requires-Dist: ipywidgets >=7.7.2 ; extra == 'dev'
Requires-Dist: isort >=5.10.1 ; extra == 'dev'
Requires-Dist: kornia ; extra == 'dev'
Requires-Dist: langchain ; extra == 'dev'
Requires-Dist: matplotlib >=3.3.4 ; extra == 'dev'
Requires-Dist: mock ; extra == 'dev'
Requires-Dist: moto[s3] >=4.1.1 ; extra == 'dev'
Requires-Dist: nbmake >=1.2.1 ; extra == 'dev'
Requires-Dist: nest-asyncio >=1.5.6 ; extra == 'dev'
Requires-Dist: norfair >=2.2.0 ; extra == 'dev'
Requires-Dist: openai >=0.27.4 ; extra == 'dev'
Requires-Dist: opencv-python-headless >=4.6.0.66 ; extra == 'dev'
Requires-Dist: pdfminer.six ; extra == 'dev'
Requires-Dist: protobuf ; extra == 'dev'
Requires-Dist: pylint ; extra == 'dev'
Requires-Dist: pymupdf <1.23.0 ; extra == 'dev'
Requires-Dist: pytest-benchmark ; extra == 'dev'
Requires-Dist: pytest-cov >=2.11.1 ; extra == 'dev'
Requires-Dist: pytest >=6.1.2 ; extra == 'dev'
Requires-Dist: pytube ; extra == 'dev'
Requires-Dist: semantic-version ; extra == 'dev'
Requires-Dist: sentence-transformers ; extra == 'dev'
Requires-Dist: sentencepiece ; extra == 'dev'
Requires-Dist: statsforecast ; extra == 'dev'
Requires-Dist: timm >=0.6.13 ; extra == 'dev'
Requires-Dist: torch >=1.10.0 ; extra == 'dev'
Requires-Dist: torchvision >=0.11.1 ; extra == 'dev'
Requires-Dist: transformers ; extra == 'dev'
Requires-Dist: twine ; extra == 'dev'
Requires-Dist: ultralytics >=8.0.93 ; extra == 'dev'
Requires-Dist: wheel >=0.37.1 ; extra == 'dev'
Requires-Dist: youtube-transcript-api ; extra == 'dev'
Provides-Extra: document
Requires-Dist: bs4 ; extra == 'document'
Requires-Dist: faiss-cpu ; extra == 'document'
Requires-Dist: gpt4all ; extra == 'document'
Requires-Dist: langchain ; extra == 'document'
Requires-Dist: openai >=0.27.4 ; extra == 'document'
Requires-Dist: pdfminer.six ; extra == 'document'
Requires-Dist: protobuf ; extra == 'document'
Requires-Dist: pymupdf <1.23.0 ; extra == 'document'
Requires-Dist: sentence-transformers ; extra == 'document'
Requires-Dist: sentencepiece ; extra == 'document'
Requires-Dist: transformers ; extra == 'document'
Provides-Extra: forecasting
Requires-Dist: statsforecast ; extra == 'forecasting'
Provides-Extra: function
Requires-Dist: boto3 ; extra == 'function'
Requires-Dist: facenet-pytorch >=2.5.2 ; extra == 'function'
Requires-Dist: kornia ; extra == 'function'
Requires-Dist: norfair >=2.2.0 ; extra == 'function'
Requires-Dist: pytube ; extra == 'function'
Requires-Dist: youtube-transcript-api ; extra == 'function'
Provides-Extra: ludwig
Requires-Dist: ludwig[distributed,hyperopt] ; extra == 'ludwig'
Provides-Extra: notebook
Requires-Dist: ipython <8.13.0 ; extra == 'notebook'
Requires-Dist: ipywidgets >=7.7.2 ; extra == 'notebook'
Requires-Dist: matplotlib >=3.3.4 ; extra == 'notebook'
Requires-Dist: nbmake >=1.2.1 ; extra == 'notebook'
Requires-Dist: nest-asyncio >=1.5.6 ; extra == 'notebook'
Provides-Extra: postgres
Requires-Dist: psycopg2 ; extra == 'postgres'
Provides-Extra: qdrant
Requires-Dist: qdrant-client ; extra == 'qdrant'
Provides-Extra: ray
Requires-Dist: ray <2.5.0,>=1.13.0 ; extra == 'ray'
Provides-Extra: vision
Requires-Dist: Pillow >=8.4.0 ; extra == 'vision'
Requires-Dist: eva-decord >=0.6.1 ; extra == 'vision'
Requires-Dist: faiss-cpu ; extra == 'vision'
Requires-Dist: opencv-python-headless >=4.6.0.66 ; extra == 'vision'
Requires-Dist: sentencepiece ; extra == 'vision'
Requires-Dist: timm >=0.6.13 ; extra == 'vision'
Requires-Dist: torch >=1.10.0 ; extra == 'vision'
Requires-Dist: torchvision >=0.11.1 ; extra == 'vision'
Requires-Dist: transformers ; extra == 'vision'
Requires-Dist: ultralytics >=8.0.93 ; extra == 'vision'

<p align="center">
  <a href="https://evadb.readthedocs.io">
    <img src="https://raw.githubusercontent.com/georgia-tech-db/evadb/master/docs/images/evadb/evadb-full-logo.svg" width="40%" alt="EvaDB">
  </a>
</p>

<p align="center"><i><b>Bring AI inside your database system and build AI-powered apps</b></i></p>

<p align="center">
<a href="https://github.com/georgia-tech-db/evadb/fork" target="blank">
<img src="https://img.shields.io/github/forks/georgia-tech-db/evadb?style=for-the-badge" alt="EvaDB forks"/>
</a>

<a href="https://github.com/georgia-tech-db/evadb/stargazers" target="blank">
<img src="https://img.shields.io/github/stars/georgia-tech-db/evadb?style=for-the-badge" alt="EvaDB stars"/>
</a>
<a href="https://github.com/georgia-tech-db/evadb/pulls" target="blank">
<img src="https://img.shields.io/github/issues-pr/georgia-tech-db/evadb?style=for-the-badge" alt="EvaDB pull-requests"/>
</a>
<a href='https://github.com/georgia-tech-db/evadb/releases'>
<img src='https://img.shields.io/github/release/georgia-tech-db/evadb?&label=Latest&style=for-the-badge'>
</a>

<a href="https://github.com/georgia-tech-db/evadb/commits" target="blank">
<img src="https://img.shields.io/github/commits-since/georgia-tech-db/evadb/v0.1.0.svg?style=for-the-badge" alt="EvaDB Commits"/>
</a>
</p>

<p align="center"><b>Follow EvaDB</b></p>

<p align="center">
<a href="https://evadb.ai/community" target="blank">
<img src="https://img.shields.io/badge/slack-evadb-orange.svg?logo=slack" alt="Join EvaDB Slack Community"/>
</a>
<a href="https://twitter.com/evadb_ai" target="blank">
<img src="https://img.shields.io/twitter/follow/evadb_ai?label=Follow: evadb_ai&style=social" alt="Follow evadb_ai"/>
</a>
<a href="https://medium.com/evadb-blog/" target="blank">
<img src="https://img.shields.io/badge/EvaDB_Blog-Medium-8A2BE2" alt="EvaDB on Medium"/>
<a href="https://evadb.ai/" target="blank">
<img src="https://img.shields.io/website/http/www.evadb.ai" alt="EvaDB Website"/>
</a>
</p>

<p align="center"><b>Share EvaDB</b></p>

<p align="center">

<a href="https://twitter.com/intent/tweet?text=Check%20out%20EvaDB!%20Bring%20AI%20inside%20your%20database%20system%20and%20build%20AI-powered%20apps.%20&url=https://github.com/georgia-tech-db/evadb&hashtags=EvaDB,AI,Database" target="blank">
<img src="https://img.shields.io/twitter/follow/_superAGI?label=Twitter&style=social" alt="Follow _superAGI"/></a> 
<a href="https://t.me/share/url?text=Check%20out%20EvaDB!%20Bring%20AI%20inside%20your%20database%20and%20build%20AI-powered%20apps.%20&url=https://github.com/georgia-tech-db/evadb" target="_blank"><img src="https://img.shields.io/twitter/url?label=Telegram&logo=Telegram&style=social&url=https://github.com/georgia-tech-db/evadb" alt="Share on Telegram"/></a>
<a href="https://api.whatsapp.com/send?text=Check%20out%20EvaDB!%20Bring%20AI%20inside%20your%20database%20and%20build%20AI-powered%20apps.%20https://github.com/georgia-tech-db/evadb"><img src="https://img.shields.io/twitter/url?label=whatsapp&logo=whatsapp&style=social&url=https://github.com/georgia-tech-db/evadb" /></a> <a href="https://www.reddit.com/submit?url=https://github.com/georgia-tech-db/evadb&title=Check%20out%20EvaDB!%20Bring%20AI%20inside%20your%20database%20and%20build%20AI-powered%20apps." target="blank">
<img src="https://img.shields.io/twitter/url?label=Reddit&logo=Reddit&style=social&url=https://github.com/georgia-tech-db/evadb" alt="Share on Reddit"/>
</p>

<p align="center">
  <a href="https://colab.research.google.com/github/georgia-tech-db/evadb/blob/master/tutorials/03-emotion-analysis.ipynb">
      <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Launch EvaDB on Colab"/>
  </a>  	
  <a href="https://github.com/orgs/georgia-tech-db/projects/3">
      <img src="https://img.shields.io/badge/evadb-roadmap-a6c096" alt="Roadmap"/>
  </a>
  <img alt="Python Versions Supported" src="https://img.shields.io/badge/Python--versions-3.8~3.11-brightgreen"/>
  <img alt="License" src="https://img.shields.io/badge/license-Apache%202-brightgreen.svg?logo=apache"/>
  <img alt="Coverage Status" src="https://coveralls.io/repos/github/georgia-tech-db/eva/badge.svg?branch=master"/>  
<!-- <a href="https://pepy.tech/project/evadb">
          <img alt="Downloads" src="https://static.pepy.tech/badge/evadb"/>
        </a> -->  
  <br />
  <a href="https://gitpod.io/#https://github.com/georgia-tech-db/evadb" target="_blank"><img src="https://gitpod.io/button/open-in-gitpod.svg" alt="Open in Gitpod"></a>
</p>

EvaDB enables software developers to build AI apps in a few lines of code. Its powerful SQL API simplifies AI app development for both structured and unstructured data. EvaDB's benefits include:
- 🔮 Easy to connect EvaDB with your SQL database system and build AI-powered apps with SQL queries
- 🤝 Query your data with a pre-trained AI model from Hugging Face, OpenAI, YOLO, PyTorch, and other AI frameworks
- ⚡️ Faster queries thanks to AI-centric query optimization
- 💰 Save money spent on running models by efficient CPU/GPU use
- 🔧 Fine-tune your AI models to achieve better results

👋 Hey! If you're excited about our vision of bringing AI inside database systems, show some ❤️ by: 
<ul>
  <li> 🐙 giving a ⭐ on our <a href="https://github.com/georgia-tech-db/evadb">EvaDB repo on Github</a>
  <li> 📟 joining our <a href="https://evadb.ai/community">Slack Community</a>
  <li> 🐦 following us on <a href="https://twitter.com/evadb_ai">Twitter</a>
  <li> 📝 following us on <a href="https://medium.com/evadb-blog">Medium</a>
</ul>

## Quick Links

- [Quick Links](#quick-links)
- [Documentation](#documentation)
- [Why EvaDB](#why-evadb)
- [How does EvaDB work](#how-does-evadb-work)
- [Illustrative Queries](#illustrative-queries)
- [Illustrative Apps](#illustrative-apps)
- [More Illustrative Queries](#more-illustrative-queries)
- [Architecture of EvaDB](#architecture-of-evadb)
- [Community and Support](#community-and-support)
- [Contributing](#contributing)
- [Star History](#star-history)
- [License](#license)

## Documentation

You can find the complete documentation of EvaDB at [evadb.ai/docs](https://evadb.ai/docs/) 📚✨🚀

## Why EvaDB
 
In the world of AI, we've reached a stage where many AI tasks that were traditionally handled by AI or ML engineers can now be automated. EvaDB enables software developers with the ability to perform advanced AI tasks without needing to delve into the intricate details.

EvaDB covers many AI applications, including regression, classification, image recognition, question answering, and many other generative AI applications. EvaDB targets 99% of AI problems that are often repetitive and can be automated with a simple function call in an SQL query. Until now, there is no comprehensive open-source framework for bringing AI into an existing SQL database system with a principled AI optimization framework, and that's where EvaDB comes in.

Our target audience is software developers who may not necessarily have a background in AI but require AI capabilities to solve specific problems. We target programmers who write simple SQL queries inside their CRUD apps. With EvaDB, it is possible to easily add AI features to these apps by calling built-in AI functions in the queries.

## How does EvaDB work

<details>
<ul>
<li>Connect EvaDB to your database system with the `CREATE DATABASE` statement.</li>
<li>Write SQL queries with AI functions to get inference results:</li>
   <ul>
   <li>Pick a pre-trained AI model from Hugging Face, Open AI, Ultralytics, PyTorch, and built-in AI frameworks for generative AI, NLP, and vision applications;</li>  
   <li>or pick from a variety of state-of-the-art ML engines for classic ML use-cases (classification, regression, etc.);</li>
   <li>or bring your custom model built with any AI/ML framework using `CREATE FUNCTION`.</li>
   </ul>
</ul> 
  
Follow the [getting started](https://evadb.readthedocs.io/en/stable/source/overview/getting-started.html) guide to get on-boarded as fast as possible.
</details>

## Illustrative Queries

* Run the MNIST Image Classification model to obtain digit labels for each frame in the video.

```sql
SELECT MnistImageClassifier(data).label FROM mnist_video;
```

* Build a vector index on the feature embeddings returned by the SIFT Feature Extractor on a collection of Reddit images.

```sql
CREATE INDEX reddit_sift_image_index
    ON reddit_dataset (SiftFeatureExtractor(data))
    USING FAISS
```

* Retrieve the top-5 most similar images for the given image using the index.

```sql
SELECT name FROM reddit_dataset ORDER BY
    Similarity(
        SiftFeatureExtractor(Open('reddit-images/g1074_d4mxztt.jpg')),
        SiftFeatureExtractor(data)
    )
    LIMIT 5
```

## Illustrative Apps

Here are some illustrative AI apps built using EvaDB (each notebook can be opened on Google Colab):

 * 🔮 <a href="https://evadb.readthedocs.io/en/stable/source/usecases/sentiment-analysis.html">Sentiment Analysis using LLM within PostgreSQL</a>
 * 🔮 <a href="https://evadb.readthedocs.io/en/stable/source/usecases/question-answering.html">ChatGPT-based Video Question Answering</a>
 * 🔮 <a href="https://evadb.readthedocs.io/en/stable/source/usecases/text-summarization.html">Text Summarization on PDF Documents</a>
 * 🔮 <a href="https://evadb.readthedocs.io/en/stable/source/usecases/object-detection.html">Analysing Traffic Flow with YOLO</a>
 * 🔮 <a href="https://evadb.readthedocs.io/en/stable/source/usecases/emotion-analysis.html">Examining Emotions of Movie</a>
 * 🔮 <a href="https://evadb.readthedocs.io/en/stable/source/usecases/image-search.html">Image Similarity Search</a>


## More Illustrative Queries

<details>

* Store the text returned by a Speech Recognition model on the audio component of a video in a table.

```sql
CREATE TABLE text_summary AS
    SELECT SpeechRecognizer(audio) FROM ukraine_video;
```

* Run ChatGPT on the `text` column in a table.

```sql
SELECT ChatGPT('Is this video summary related to Ukraine russia war', text)
    FROM text_summary;
```

* Train an ML model using the <a href="https://ludwig.ai/latest/">Ludwig AI</a> engine to predict a column in a table.

```sql
CREATE FUNCTION IF NOT EXISTS PredictHouseRent FROM
( SELECT * FROM HomeRentals )
TYPE Ludwig
PREDICT 'rental_price'
TIME_LIMIT 120;
```

</details>

## Architecture of EvaDB

<details>	
EvaDB's AI-centric query optimizer takes a query as input and generates a query plan. The query engine takes the query plan and hits the relevant backends to efficiently process the query:
1. SQL Database Systems (Structured Data)
2. AI Frameworks (Transform Unstructured Data to Structured Data, Unstructured data includes PDFs, images, podcasts, etc. stored on cloud buckets or local filesystem)
3. Vector Database Systems (Feature Embeddings)

<p align="center">
  <img width="70%" alt="Architecture Diagram" src="https://raw.githubusercontent.com/georgia-tech-db/evadb/staging/docs/images/evadb/eva-arch-for-user.png">
</p>
</details>

## Community and Support

<!--<p>
  <a href="https://evadb.ai/community">
      <img width="70%" src="https://raw.githubusercontent.com/georgia-tech-db/evadb/master/docs/images/evadb/evadb-slack.png" alt="EvaDB Slack Channel">
  </a>
</p>-->

If you run into any bugs or have any comments, you can reach us on our <a href="https://evadb.ai/community">Slack Community 📟</a>  or create a [Github Issue :bug:](https://github.com/georgia-tech-db/evadb/issues). 

Here is EvaDB's public [roadmap 🛤️](https://github.com/orgs/georgia-tech-db/projects/3). We prioritize features based on user feedback, so we'd love to hear from you!

## Contributing

We are a lean team on a mission to bring AI inside database systems! All kinds of contributions to EvaDB are appreciated 🙌 If you'd like to get involved, here's information on where we could use your help: [contribution guide](https://evadb.readthedocs.io/en/latest/source/dev-guide/contribute.html) 🤗

<p align="center">
  <a href="https://github.com/georgia-tech-db/evadb/graphs/contributors">
    <img width="70%" src="https://contrib.rocks/image?repo=georgia-tech-db/evadb" />
  </a>
</p>

<details>
<b> CI Status: </b> 

[![CI Status](https://circleci.com/gh/georgia-tech-db/evadb.svg?style=svg)](https://circleci.com/gh/georgia-tech-db/evadb)
[![Documentation Status](https://readthedocs.org/projects/evadb/badge/?version=latest)](https://evadb.readthedocs.io/en/latest/index.html)
</details>

## Star History

<p align="center">
  <a href="https://star-history.com/#georgia-tech-db/evadb&Date">
      <img width="90%" src="https://api.star-history.com/svg?repos=georgia-tech-db/evadb&type=Date" alt="EvaDB Star History Chart">
  </a>
</p>

## License
Copyright (c) [Georgia Tech Database Group](http://db.cc.gatech.edu/).
Licensed under an [Apache License](LICENSE.txt).


