Nope. Quite the opposite. In my env, a large financial org, people are combining multiple Spring projects to form a complex monolithic stack, difficult to debug. Pile on Spring Integration AWS on top of Spring Cloud AWS on top of Spring Session JDBC on top of Spring Security.
Hello Josh, Great job in explaining in detail. This really helps and gives a glimpse of Spring in the AI world. The world really needs Spring AI. Btw, could you please share the pdf file you have used in this demo or uploading to GitHub would be really helpful to try the same on our own? Thanks a bunk in advance
Thanks for the tutorial! I managed to run this "on my machine". What I discovered is that the pdf document is just split into pages and fed into pgVector. Similarity search then returns top4 results (the 4 best pages) by default which are then sent to chatGpt. It is possible to configure similarity search to return more/less results (pages). Similarity search is quite slow on my computer, it takes a couple of seconds (I have a "normal" consumer laptop with i5). I suppose if there were 100 or 1000 pages not 10 then the similarity search would really get slow. Too bad the call to openAi was performed with blocking .call()🤭 Spring AI and openAI support reactive calls (returning streams/Flux) so why not use them?
Any idea why I'm getting this err even before developing the application discussed here. I did not make atleast 10 requests to open ai, but openai says my quota over? Should I upgrade for learning phase too? Err Received: 429 - ResponseError[error=Error[message=You exceeded your current quota, please check your plan and billing details. For more information on this error, read the docs:
Why we need to make OpenAI request for every time for any questions that we ask in the pdf? Would be great if that's explained or the right resources attached. We read the PDF and store in the vector and ask question from the vector_store. What is the role openAI rest call plays here? Why we need subscription? Any response must help.
The LMM behind the OpenAI API is the one that actually answers the question. The Vector Store just converts the corpus of all documents (pages of documents in this case) into 1536-dimension vectors of numbers and stores them in the database, along with the textual page content. When a question (user message) comes in, the similaritySearch method will convert it into a vector of same size and use some similarity function (like dot product) to compare it to the vectors in the database. The text content corresponding to the most similar vectors is then retrieved and injected in the template of the prompt. The result (system message) along with the question (user message) are used to call the OpenAPI model to get the response to the question. So Vector Store is just used here to find out the relevent contextual text to add to the question in order to give the model additionnal information it must take into account when generating its response. Vector Store by itself can not answer the question. The API calls require a subscription with OpenAI. It's not free.
Thanks a lot for your time. Do you say the user message get converted to a dimension number to the question in the pdf already and then the numbers are compared to get the answer? Dimension means here the dimension of pages in the pdf? And those dimensions are stored and compared by AI to respond to the user? Is my understanding right?
How can I use where i have 10K transactions I want to build AI-based recommendations by feeding these transactions so our system can give personalized recommendations how can i achieve it with spring
The code would not change much because the Spring AI interface is almost the same for both ollama and openai. ollama can be a bit difficult to set up (at least on windows, if you want to enable ollama to use graphics card). Whitout half-decent graphics card only with cpu ollama is quite slow. On my i5 one prompt takes 2-3 minutes to generate.
Your Java app is not smart enough to understand the response from AI. It just printed out that response for a human being to parse. How do you unit test it? Given: a particular pdf file When: I feed that file to AI and ask AI this question "blah blah blah" Then: AI will response this "another blah blah" Are you sure that AI will response with that "another blah blah" every time you ask it "blah blah blah"?
This is cool. However I still have mixed feelings about using a strongly typed language for AI. AI is on the opposite end of the spectrum. All that strong typing looks pointless when your inputs and outputs are blunt strings and borderline non-deterministic. Doing AI in Java feels like going the beach in a tuxedo. That aside I do see that Java can still be useful in the sense that all the bluntness / non-determinism in your application is a function of the external AI model and rest of your application is completely robust and deterministic.
Gradle is better if only you need to put some custom logic with tasks into projects. Otherwise (especially for tutorials) maven is way better and stable - once declare then it's needed only to update libs/plugins versions. And btw maven also consumes less resources. IMO
Hello, please reply to my message. How can I access the samples made on this channel? I need the examples made in this channel. Is there a GitHub link? Please.
If all RUclips content was as informative and to the point as this... Job well done, and much appreciated!
Spring is becoming the most advanced backend framework of all kinds of backend frameworks of all languages.
absolutely!!! it's getting better and joyful to work with
java is shit. fucking old, slow, high resource consuming, heavy.
@@Lykkos-321 you prolly havent seen other framework.
@@ihandle24 axum from rust, not even close to surpass spring 😎
Nope. Quite the opposite. In my env, a large financial org, people are combining multiple Spring projects to form a complex monolithic stack, difficult to debug. Pile on Spring Integration AWS on top of Spring Cloud AWS on top of Spring Session JDBC on top of Spring Security.
I was testing the integration with Pinecone vector database and is amazing. I built the frontend with nextjs and backend with spring boot. Thanks ✌️
Awesome. Indeed a great time to be a java developer
Very fun and informative demo Josh! Thanks. I'll definitely use this soon on few personal projects
Thank you for all your professional job
It was an awesome and very impressive demo of the new feature.
Very good and simple explanations. i tried and it works great, changed to my samples, also worked very good and very fast.
This will be revolutionary!
Josh Long thinks and types code so fast that his videos are the only ones I need to slow down on youtube instead of speed up
Was thinking the same thing: finally a video you do not have to speed up!
Thanks Josh! You should be a speaker at JFocus in Stockholm next year.
Where is the Open AI API configuration done?
the ocean of knowledge.
Great Job
Always great man !
Hello Josh,
Great job in explaining in detail. This really helps and gives a glimpse of Spring in the AI world. The world really needs Spring AI.
Btw, could you please share the pdf file you have used in this demo or uploading to GitHub would be really helpful to try the same on our own?
Thanks a bunk in advance
It's awesome!
world need spring AI
Thanks for the tutorial!
I managed to run this "on my machine". What I discovered is that the pdf document is just split into pages and fed into pgVector. Similarity search then returns top4 results (the 4 best pages) by default which are then sent to chatGpt. It is possible to configure similarity search to return more/less results (pages). Similarity search is quite slow on my computer, it takes a couple of seconds (I have a "normal" consumer laptop with i5). I suppose if there were 100 or 1000 pages not 10 then the similarity search would really get slow.
Too bad the call to openAi was performed with blocking .call()🤭 Spring AI and openAI support reactive calls (returning streams/Flux) so why not use them?
Listen carefully at 18:44 and 21:50
Hi! Could you kindly provide a link to github project or something? Thanks!
Any idea why I'm getting this err even before developing the application discussed here. I did not make atleast 10 requests to open ai, but openai says my quota over? Should I upgrade for learning phase too?
Err Received: 429 - ResponseError[error=Error[message=You exceeded your current quota, please check your plan and billing details. For more information on this error, read the docs:
Hi, that happened to me too. If it's not a new account, you don't have 5$ free trial, so you have to buy tokens.
Dude, where can I get that Spring t-shirt?
where can i find the git hub project for this example
Fantastic!
Why we need to make OpenAI request for every time for any questions that we ask in the pdf? Would be great if that's explained or the right resources attached. We read the PDF and store in the vector and ask question from the vector_store. What is the role openAI rest call plays here? Why we need subscription? Any response must help.
The LMM behind the OpenAI API is the one that actually answers the question. The Vector Store just converts the corpus of all documents (pages of documents in this case) into 1536-dimension vectors of numbers and stores them in the database, along with the textual page content.
When a question (user message) comes in, the similaritySearch method will convert it into a vector of same size and use some similarity function (like dot product) to compare it to the vectors in the database. The text content corresponding to the most similar vectors is then retrieved and injected in the template of the prompt. The result (system message) along with the question (user message) are used to call the OpenAPI model to get the response to the question.
So Vector Store is just used here to find out the relevent contextual text to add to the question in order to give the model additionnal information it must take into account when generating its response.
Vector Store by itself can not answer the question.
The API calls require a subscription with OpenAI. It's not free.
Thanks a lot for your time. Do you say the user message get converted to a dimension number to the question in the pdf already and then the numbers are compared to get the answer? Dimension means here the dimension of pages in the pdf? And those dimensions are stored and compared by AI to respond to the user? Is my understanding right?
Spring OS when?
could you pl. share github url of the code used..
How can I use where i have 10K transactions I want to build AI-based recommendations by feeding these transactions so our system can give personalized recommendations how can i achieve it with spring
Are you going to support the openai assistant API?
I think you should probably have explained the configuration a bit more, I couldn't grasp anything in one watch.
Anyone get this to work? The spring documentation examples don’t work.
Nice ❤
There's nothing easy with spring.
Documentations are meant for robot.
The code is super verbose.
Even the example in documentation isn't working.
has anyone tried spring AI coin springboot 3.0.0? i have tried and the application won't launch.
Why Postgres? Can we use some other DB?
09:05 There are many vector stores you can choose from.
can you share the repo ?
would have been better to use it with ollama that can be run locally
The code would not change much because the Spring AI interface is almost the same for both ollama and openai. ollama can be a bit difficult to set up (at least on windows, if you want to enable ollama to use graphics card). Whitout half-decent graphics card only with cpu ollama is quite slow. On my i5 one prompt takes 2-3 minutes to generate.
Which IDE is that?
which ide used in the video?
IntelliJ Idea, I think Ultimate version.
Your Java app is not smart enough to understand the response from AI. It just printed out that response for a human being to parse.
How do you unit test it?
Given: a particular pdf file
When: I feed that file to AI and ask AI this question "blah blah blah"
Then: AI will response this "another blah blah"
Are you sure that AI will response with that "another blah blah" every time you ask it "blah blah blah"?
What you want to do is integration test. Not unit test.
You are trying to test OpenAI, not your App.
@@lbognini Yes, integration test is a more correct word. How to write that kind of test when we don't know what the output is for a given input?
This is cool. However I still have mixed feelings about using a strongly typed language for AI. AI is on the opposite end of the spectrum. All that strong typing looks pointless when your inputs and outputs are blunt strings and borderline non-deterministic. Doing AI in Java feels like going the beach in a tuxedo. That aside I do see that Java can still be useful in the sense that all the bluntness / non-determinism in your application is a function of the external AI model and rest of your application is completely robust and deterministic.
Maven? Why the regression... thought Spring is fully in the Gradle world.
Gradle sucks. Maven all the way
Gradle is better if only you need to put some custom logic with tasks into projects. Otherwise (especially for tutorials) maven is way better and stable - once declare then it's needed only to update libs/plugins versions. And btw maven also consumes less resources.
IMO
The things gradle allows you to do, you should probably not be doing them.Stopped using gradle 5 years ago.
@@CheeseStickzZ reason for stating such a strong opinion?
@@lhxperimental could you share some of those things?
dude make something with your audio in all videos you sound like echo, not pleasure to ears listen, its pity
Meanwhile Dmitri after finding about Spring AI : ruclips.net/video/WuL4NKDkc8M/видео.html&ab_channel=ShandilyaCodes
Marketing crab .. basic API calls to open AI nothing special about it ..
Java DEAD
Since when
@@mqtrade5743 since overpriced language
@@andrews4379 overpriced language? How can language be overpriced?
When did this happen?😂
Spring sucks...
Hello, please reply to my message. How can I access the samples made on this channel? I need the examples made in this channel. Is there a GitHub link? Please.
this information is showed at 07:15
Thank you brother. ❤ 😂@@hamiltonmbrito
world need spring AI
world need spring AI