The missing pieces to your AI app (pgvector + RAG in prod)

  Рет қаралды 26,178

Supabase

Supabase

Күн бұрын

A step-by-step guide to going from pgvector to prod using Supabase. We'll discuss best practices across the board so that you can be confident deploying your application in the real world. Learn more about pgvector: supabase.com/docs/guides/data...
Workshop GitHub repo:
github.com/supabase-community...
It's easy to build an AI proof-of-concept (POC), but how do you turn that into a real production-ready application?
What are the best practices when implementing:
- Retrieval augmented generation (RAG)
- Authorization (row level security)
- Embedding generation (open source models)
- pgvector indexes
- Similarity calculations
- REST APIs
- File storage
00:00 Intro
01:06 Demo & setup
05:28 Step 1 (File storage)
31:40 Step 2 (Documents & splitting)
1:19:02 Step 3 (Embeddings)
1:36:32 Step 4 (Chat & RAG)
2:10:11 Demo & next steps

Пікірлер: 92
@shinchima
@shinchima 6 ай бұрын
Give this man a raise. Good speed and complete. 9.99/10 - nobody gets a 10
@Supabase
@Supabase 6 ай бұрын
@HashimWarren
@HashimWarren 2 ай бұрын
so the scale is from 0 - 9.99 🙂
@shinchima
@shinchima 2 ай бұрын
@@HashimWarren absolutely!😉
@rembautimes8808
@rembautimes8808 12 күн бұрын
Excellent tutorial, so well explained. Thanks so much
@dheerajs2838
@dheerajs2838 7 ай бұрын
this is one of the best video came out of Supabase. Please do more such detailed videos. thanks
@gregnr
@gregnr 7 ай бұрын
Good to know this style is helpful - thanks for watching!
@sgruhier
@sgruhier 15 сағат бұрын
I had this in my todo, it's mind blowing. Well detailed, great speed, tis is amazing. My only regret is not have watched it before. Thank you so much
@brucewayne2480
@brucewayne2480 6 ай бұрын
One of the best tutorials I've seen in my entire life. Everything is clear, no shortcuts, no analogies, no abtractions. we learn a lot of things from different fields along with production best practices. This is how tutorials should be. Thank you so much ! Looking forward to learn more from you
@Mburdo511
@Mburdo511 4 ай бұрын
This is truly an unbelievable tutorial. College professors could learn a lot from you. The fact that this quality is free is mind blowing
@JohnBucy-rz8qo
@JohnBucy-rz8qo Ай бұрын
Joining the crowd - this is one of the best tutorials I have ever seen (and I have seen many). Great Job!
@JohnBucy-rz8qo
@JohnBucy-rz8qo Ай бұрын
And the first one I have ever commented on
@sumodd
@sumodd 6 ай бұрын
Please do more videos like this, truly amazing work. This helps me prevent a whole lot of headaches. I love Supabase 💚
@Supabase
@Supabase 6 ай бұрын
We love you too 💚
@TheStabacco
@TheStabacco 6 ай бұрын
Incredible clarity! More like these please.
@mtin79
@mtin79 5 ай бұрын
Fantastic in depth walkthrough with code examples and reasoning behind implementation decision. Helped me understand supabase, its services and architecture and how things fit together much more. Thank you!
@MrArbitraryNumber
@MrArbitraryNumber 6 ай бұрын
Man you are consistently saving me when I hit a wall on my projects. Thank you!!!!!!
@benjaminw9624
@benjaminw9624 7 ай бұрын
This an amazing guide. Like absolutely amazing, bravo.
@gregnr
@gregnr 7 ай бұрын
Thanks! Don't hesitate to give me a shout if you have any questions/issues
@hawarhekmat1174
@hawarhekmat1174 7 ай бұрын
Next time a recommendation system.
@gregnr
@gregnr 7 ай бұрын
Great idea!
@BaileySimrell
@BaileySimrell 6 ай бұрын
Yes please
@zzej
@zzej 5 ай бұрын
This is the best video tutorial I have ever seen.
@ferrychandra8585
@ferrychandra8585 21 күн бұрын
Thank you for the great video!! Would like to see more videos on implementing Supabase using Python (not sure about the demand actually) if possible. :)
@2an_sound
@2an_sound 5 ай бұрын
Thank you so much for this tutorial! You are an amazing teacher
@MachineLearningZuu
@MachineLearningZuu 6 ай бұрын
Superbase. I freaking love you. Long live the king
@shaharnechmad2586
@shaharnechmad2586 6 ай бұрын
This is one amazing video. Thanks so much! One suggestion, will be super cool to have aversion if this video using langchain as well. There are a lot of great benefits using it instead of going directly to Open AI (like the ability to easily switch or use multiple model providers)
@swissturtel
@swissturtel 5 ай бұрын
Thank you very much - you are such a great teacher 🧑‍🏫
@ipranay
@ipranay 7 ай бұрын
Vaults looks cool! More more more!
@gregnr
@gregnr 7 ай бұрын
Comes in very handy in some situations 👍 thanks for watching!
@rembautimes8808
@rembautimes8808 12 күн бұрын
There were so many parts to like in this video, my favourite was how to extract the authorisation headers in making the call to a REST endpoint. Will probably implement the endpoint in python with Fast API rather than Deno. 😂
@funkdefied1
@funkdefied1 9 күн бұрын
This video is PERFECT
@NixBiks
@NixBiks 6 ай бұрын
What an excellent video! Amazing work - I love all the "rabbitholes" which are all very important. I have two questions though; instead of using Supabase functions, one could use NextJS Route Handlers, right? Also; are there some open source alternatives to OpenAI LLM that could easily be integrated instead? Thanks for this video!
@samanderson4881
@samanderson4881 6 ай бұрын
Good tip. I think it could be done, seems like the edge functions on the free tier time out when doing the calculations.
@theitaliandev
@theitaliandev 6 ай бұрын
Amazing video! Thank you. I have a question: best way to set up multiple supabase projects locally using docker?
@Supabase
@Supabase 6 ай бұрын
That would be through using Supabase CLI. supabase.com/docs/guides/cli/local-development
@nikitastriuk
@nikitastriuk 4 ай бұрын
Great stuff, thanks a lot! One question. What's the point of deploying Deno edge functions (and calling them with pg_net inside postgres) instead of simply using Next.js actions for processing files after upload? It adds a lot of complexity imo. Any real benefits?
@nishanthg5532
@nishanthg5532 18 күн бұрын
Brilliant 🥂
@jeffshatton
@jeffshatton 4 ай бұрын
Great tutorial! Do you start running into problems with chat conversations as time goes on ... given you are including all previous messages and the limited window that OpenAI provides? How do you handle that? Just truncate it?
@PavelLang
@PavelLang 7 ай бұрын
It's brilliant. Just keep me breath outhht between important pieces of code! …next time! Dynamic of video is really good - but pieces where I need to learn something new, wish to look for references, sources… I cannot ever hit space… tracking back 🙂 BTW Thank you for so great tutorial! 🙂
@DouglasHewitt
@DouglasHewitt 22 күн бұрын
I followed the entire tutorial, very good, thank you for this. I am a beginner with nextjs and supabase, two things that I can't get working at the end: my supabase does not create the sections and therefore embeddings when a file is uploaded, I guess I missed something with either the migration or edge function? also, the chat doesn't work because CORS blocks it when its coming from the supabase cloud, how do I configure CORS on the cloud dashboard?
@jonathanma4206
@jonathanma4206 4 ай бұрын
This is great. What changes would need to be made to use this with an open source model like Mistral or Llama 2? Is it just whatever model library is used and the embedding model that goes with it?
@maryamashraf6370
@maryamashraf6370 3 ай бұрын
Hey did you get any further with this? I'm building a similar model using Mistral 7B - would really like to hear how you went about with using a local llm
@davidho2901
@davidho2901 4 ай бұрын
Without this video, how could we possibly learn to do this? 😢
@Lamevire
@Lamevire 5 ай бұрын
interesting video!. so the whole reason for using RAG here is to minimize the token inputs when eventually passing it to GPT? (also maybe getting more accurate results because of using a specific embedding model that's better than GPT)
@OviDB
@OviDB 3 ай бұрын
First, thank you! One question, how does one go about debugging the functions defined as database functions?
@yorgohoebeke
@yorgohoebeke 29 күн бұрын
Amazing tutorial! Could you make a similar tutorial but for using supabase with AI agenst (+ RAG) that use function calling. For example, how to create a chatbot that can add tasks to our to do list or complete tasks on our todo list.
@tamsssss6765
@tamsssss6765 7 ай бұрын
Would love a video on how to easily migrate supabase ssr w/ this! =D
@tamsssss6765
@tamsssss6765 7 ай бұрын
This is exactly what Im looking for! Thank you! Now only if I could get it to work locally =(
@gregnr
@gregnr 7 ай бұрын
Glad it resonates! What issues are you having locally?
@tamsssss6765
@tamsssss6765 7 ай бұрын
@@gregnr I think it's the Deno? I keep getting errors like these "Type error: Cannot find module 'common-tags' or its corresponding type declarations." even if I've installed them. =/
@tamsssss6765
@tamsssss6765 7 ай бұрын
nvm I got it!@@gregnr
@gregnr
@gregnr 7 ай бұрын
@@tamsssss6765 got it - just to confirm, are you getting those errors at runtime, or just in your editor (ie. VS Code)? If it's in VS Code, can you double check you have the Deno extension installed? Without that extension, VS Code doesn't handle Deno dependency management correctly.
@saminamanat
@saminamanat 6 күн бұрын
ctrl shift i just blew my mind
@samanderson4881
@samanderson4881 6 ай бұрын
Very good tutorial. Only problem I have is that I don't get embeddings generated for every item in the documents_sections. I followed the code to the letter and it only generates the first 5 embeddings.
@eleah2665
@eleah2665 7 ай бұрын
Hi not-Jon, this looks good. Thanks.
@gregnr
@gregnr 7 ай бұрын
Thanks for watching! Let me know if you hit any road blocks.
@JonMeyers
@JonMeyers 7 ай бұрын
I agree! Non-Jon is killing it! 💯
@learn-with-dr-sajjad
@learn-with-dr-sajjad 5 ай бұрын
Thanks for making this video for my favorite platform. I have followed it along and ported this method to use Google gemini api but I am having a weird problem. In chat function in the part where we add injectedDocuments to the system prompt. It runs fine for the first time, i checked by console.logging the completionMessages and all injected Documents and system prompt is added to the first prompt by the user but for all later messages neither the system prompt nor the injected documents are added and are not added to the user messages. However strangely enough the output from the gemini pro clearly indicates that it is getting the context and gives spot on replies. (I compared with the output from gemini pro without any context and answers were way different). Can somebody guide me if this is default behavior of vercel's ai sdk or there is problem with my code?
@stonedizzleful
@stonedizzleful 7 ай бұрын
How would you handle this if you actually wanted to reference the document/location where the RAG has pulled the info from (ie. like a references list on the front end)?
@gregnr
@gregnr 7 ай бұрын
Yep this is a great question. We are actually in the process of bringing this type of functionality to the Supabase docs via Supabase AI assistant. The strategy more or less comes down to: 1. During the RAG prompt injection step, prefix each section with a heading (or id, link, storage path, etc) that references the document it came from 2. As part of the initial prompt, ask the LLM to insert references to these respective section headings throughout its response 3. On the frontend, parse the response coming back to extract these references, replace with a [1], [2], [3], etc, and add them as footnotes
@stonedizzleful
@stonedizzleful 7 ай бұрын
Sweet that makes a lot of sense. I pulled something similar together using pinecone but found I was double handling a lot of the prompt injection and then parsing the references. The way you have described it within the Supabase framework makes a lot of sense.@@gregnr
@GilbertZhuo-uv1ux
@GilbertZhuo-uv1ux 11 күн бұрын
can i check for the generate embeddings part why we need to remove the javascript elements from markdown thanks!
@adamtesla284
@adamtesla284 3 ай бұрын
I want to integrate supabase with my flutterflow app but the problem I'm facing is that I dose not allow to present user dispaly name . Any solution ?
@cjpettigrew
@cjpettigrew 5 ай бұрын
I think something has broken with the repo. The Chat function for example no longer deploys (i have pinpointed it to the AI library import from Vercel) Can you or anyone else reproduce this?
@user-xd6ut8vm4d
@user-xd6ut8vm4d 4 ай бұрын
Thank you so much one of the Best Tutorial. Query - when we are using cloud based option means files uploaded to supabase server and embeddings as well. Just want to confirm how secured our documents will be and can we use for financial and health care files as same application. Really interested to signup with Supabase if this query is solved.
@Supabase
@Supabase 4 ай бұрын
Supabase can be HIIPA compliant with certain plans, so it is safe to store those types of information. supabase.com/blog/supabase-soc2-hipaa
@user-xd6ut8vm4d
@user-xd6ut8vm4d 4 ай бұрын
Thank you so much for your response. Request to please share direct link or email id where I can ask more queries for any further doubts@@Supabase
@kirso
@kirso 6 ай бұрын
One thing when reseting the DB because of Todos, there is a directive how to do it locally but not via the cloud. `pnpx supabase db reset` doesn't work unfortunately and I can't find it in the docs.
@sumodd
@sumodd 6 ай бұрын
Getting this as well... did you figure it out? Edit: actually, here is what I did: 1. npx supabase db reset --linked 2. Deleted 'files' from storage in cloud. 3. npx supabase db push. Both of my migrations (the files and documents) were applied.
@kirso
@kirso 6 ай бұрын
@@sumodd sorry I accidently replied to a wrong video on another issue 🤦🏻Actually the wrong was on my side, since db reset is for the docker, I think you just need to do db push
@laggy9764
@laggy9764 Ай бұрын
if my data is confidentiel will i have t use gpt even so
@JJ-sz8wf
@JJ-sz8wf Ай бұрын
In the embbeding column 7 - 10 rows are empty, but the rest is filled. Why is this? Has nothing to do with the code, since the nummer of blank space is different each time.
@nikhilsingh4329
@nikhilsingh4329 Ай бұрын
Hey, i am beginner i received api key and base url generated by my organization , this tutorial just include API key only directly by open ai , I need tutorial which can help me to create the chat bot with my API key and base URL can anyone suggest me tutorial or code base ?
@rydonahue1
@rydonahue1 Ай бұрын
Couldn't a lot of these edge functions just be handled by API routes since you're using Next?
@hatimmoaiyadi8388
@hatimmoaiyadi8388 2 ай бұрын
Please guide me to create a logic to upload excel and pdf files
@marksughnenter526
@marksughnenter526 2 ай бұрын
can you do this in python?
@JT-oh6th
@JT-oh6th 2 ай бұрын
Great tutorial but if you actually deploy this to supabase the CPU time is SO restrictive the embedding pipeline doesn't work. 🤦‍♂
@hussienhassin7334
@hussienhassin7334 3 ай бұрын
anyone facing could not Auth user when trying to sign up?
@Mavesound
@Mavesound 7 ай бұрын
Looking for a tool to get text from my pdf. Is this possible aswell?
@gregnr
@gregnr 7 ай бұрын
PDFs have notoriously been difficult to pull text from in a sane way (because there's lots of variance between PDFs, and some PDFs embed text while others are just images). One solution we're working on is using GPT's new vision model to extract the text - still WIP right now, but stay tuned!
@Mavesound
@Mavesound 7 ай бұрын
@@gregnr thought about that aswell. All libraries I tried worked so bad
@moritz8618
@moritz8618 3 ай бұрын
hiawd
@moritz8618
@moritz8618 3 ай бұрын
hallo
@namesare4fools
@namesare4fools 6 ай бұрын
its good & detailed, but why can't you make this more straightforward to setup
@gregnr
@gregnr 6 ай бұрын
hey, which parts did you find were slow to setup?
@namesare4fools
@namesare4fools 6 ай бұрын
@gregnr why cant i just run git clone, then run npm install and insert my env vars and run.. also do you have to use deno ?
@gregnr
@gregnr 6 ай бұрын
@@namesare4fools if you don’t care about the details, you can 100% just clone the repo and run it. Yes, Supabase’s edge runtime is built on Deno - you wouldn’t run this in vanilla Deno yourself though, instead use the supabase CLI to serve the edge function as shown in the video/readme.
@user-lu5wm7vu1x
@user-lu5wm7vu1x Ай бұрын
worst ever tutorial. so unclear, it cannot be more confusing
@sidhuk3128
@sidhuk3128 6 ай бұрын
Thanks for a detailed video. but why did you use @supabase/auth-helpers instead of @supabase/ssr as the docs recommends.
Don’t Build AI Products The Way Everyone Else Is Doing It
12:52
Steve (Builder.io)
Рет қаралды 339 М.
8 things you should NEVER do in a Database!
22:56
Supabase
Рет қаралды 9 М.
Каха ограбил банк
01:00
К-Media
Рет қаралды 8 МЛН
Increíble final 😱
00:37
Juan De Dios Pantoja 2
Рет қаралды 90 МЛН
ROCK PAPER SCISSOR! (55 MLN SUBS!) feat @PANDAGIRLOFFICIAL #shorts
00:31
Hot Ball ASMR #asmr #asmrsounds #satisfying #relaxing #satisfyingvideo
00:19
Oddly Satisfying
Рет қаралды 51 МЛН
Why are vector databases so FAST?
44:59
Underfitted
Рет қаралды 10 М.
Supabase Vector: The Postgres Vector database: Paul Copplestone
16:05
3 reasons you should use Postgres Functions and Transactions
16:58
Vector databases are so hot right now. WTF are they?
3:22
Fireship
Рет қаралды 945 М.
Hands on with the Vercel AI SDK 3.1
13:04
Vercel
Рет қаралды 25 М.
Fetching Data Doesn't Get Better Than This
6:58
Josh tried coding
Рет қаралды 78 М.
#9 - Dax Raad: Local-First SaaS
1:02:55
Local First Podcast
Рет қаралды 4,7 М.
Jerry Liu - What is LlamaIndex, Agents & Advice for AI Engineers
1:16:07
Alejandro AO - Software & Ai
Рет қаралды 2,5 М.
Usage-based restrictions for SaaS subscription tiers
35:28
Supabase
Рет қаралды 6 М.
ВЫ ЧЕ СДЕЛАЛИ С iOS 18?
22:40
Overtake lab
Рет қаралды 131 М.
Дени против умной колонки😁
0:40
Deni & Mani
Рет қаралды 13 МЛН
Мечта Каждого Геймера
0:59
ЖЕЛЕЗНЫЙ КОРОЛЬ
Рет қаралды 1,6 МЛН