Evadb
Database system for AI-powered apps
Install / Use
/learn @georgia-tech-db/EvadbREADME
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:
<details> <summary> 🔮 Easy to <a href="https://evadb.readthedocs.io/en/latest/source/overview/connect-to-data-sources.html">connect the EvaDB query engine with your data sources</a>, such as PostgreSQL or S3 buckets, and build AI-powered apps with SQL queries. </summary> <br/> <table> <tr> <th>Structured Data Sources</th> <th>Unstructured Data Sources</th> <th>Application Data Sources</th> </tr> <tr> <td>- PostgreSQL
- SQLite
- MySQL
- MariaDB
- Clickhouse
- Snowflake
- Local filesystem
- AWS S3 bucket
- Github
More details on the supported data sources is available here.
</details> <details> <summary> 🤝 <a href="https://evadb.readthedocs.io/en/latest/source/overview/ai-queries.html">Query your connected data with a pre-trained AI model</a> from Hugging Face, OpenAI, YOLO, Stable Diffusion, etc. </summary> <br/> <table> <tr> <th>Hugging Face</th> <th>OpenAI</th> <th>YOLO</th> </tr> <tr> <td>- Audio Classification
- Automatic Speech Recognition
- Text Classification
- Summarization
- Text2Text Generation
- Text Generation
- Image Classification
- Image Segmentation
- Image-to-Text
- Object Detection
- Depth Estimation
- gpt-4
- gpt-4-0314
- gpt-4-32k
- gpt-4-32k-0314
- gpt-3.5-turbo
- gpt-3.5-turbo-0301
- yolov8n.pt
- yolov8s.pt
- yolov8m.pt
- yolov8l.pt
- yolov8x.pt
More details on the supported AI models is available here
</details> <details> <summary> 🔧 Create or fine-tune AI models for regression, classification, and time series forecasting.</summary> <br/> <table> <tr> <th>Regression</th> <th>Classification</th> <th>Time Series Forecasting</th> </tr> <tr> <td>- Ludwig
- Sklearn
- Xgboost
- Ludwig
- Xboost
- Statsforecast
- Neuralforecast
More details on the supported AutoML frameworks is available here.
</details> <details> <summary> 💰 Faster AI queries thanks to AI-centric query optimizations such as caching, batching, and parallel processing. </summary> <br/>- Function result caching helps reuse results of expensive AI function calls.
- LLM batching reduces token usage and dollars spent on LLM calls.
- Parallel query processing saves money and time spent on running AI models by better utilizing CPUs and/or GPUs.
- Query predicate re-ordering and predicate push-down accelerates queries over both structured and unstructured data.
More details on the optimizations in EvaDB is available here.
</details> <br/>👋 Hey! If you're excited about our vision of bringing AI inside database systems, show some ❤️ by:
<ul> <li> ⭐ starring our <a href="https://github.com/georgia-tech-db/evadb">GitHub 🐙 Repo</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>We would love to learn about your AI app. Please complete this 1-minute form: https://v0fbgcue0cm.typeform.com/to/BZHZWeZm
Quick Links
- Quick Links
- Documentation
- Why EvaDB
- How does EvaDB work
- Illustrative Queries
- Illustrative Apps
- More Illustrative Queries
- Architecture of EvaDB
- Community and Support
- Contributing
- Star History
- License
Documentation
You can find the complete documentation of EvaDB at 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 SQL and vector database systems with the <a href="https://evadb.readthedocs.io/en/stable/source/reference/databases/postgres.html">`CREATE DATABASE`</a> and <a href="https://evadb.readthedocs.io/en/stable/source/reference/evaql/create_index.html">`CREATE INDEX`</a> statements.</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 guide to get on-boarded as fast as possible.
</details>Illustrative Queries
- Get insights about Github stargazers using GPT4.
SELECT name, country, email, programming_languages, social_media, GPT4(prompt,topics_of_interest)
FROM gpt4all_StargazerInsights;
--- Prompt to GPT-4
You are given 10 rows of input, each row is separated by two new line characters.
Categorize the topics listed in each row into one or more of the following 3 technical areas - Machine Learning, Databases, and Web development. If the topics listed are not related to any of these 3 areas, output a single N/A. Do not miss any input row. Do not add any additional text or numbers to your output.
The output rows must be separated by two new line characters. Each input row must generate exactly one output row. For example, the input row [Recommendation systems, Deep neural networks, Postgres] must generate only t
