Episode Transcript
Available transcripts are automatically generated. Complete accuracy is not guaranteed.
(00:05):
You are listening to the BreaktimeTech Talks podcast, a bite-sized tech
podcast for busy developers where we'llbriefly cover technical topics, new
snippets, and more in short time blocks.
I'm your host, Jennifer Reif, anavid developer and problem solver
with special interest in datalearning and all things technology.
(00:25):
My voice is gone this week,so if it sounds a bit off out
there, that's because it is.
It's also episode 50 ofBreaktime Tech Talks.
I can't believe we're50 episodes in already.
Thank you for sticking with me so far.
I started this podcast last summerand I've really enjoyed sharing
my learnings on this platform.
(00:46):
I hope you've enjoyed the journey as well.
This week I started digging into someother ways to tackle GraphRAG and Spring
AI, starting with Spring AI's advisors.
It's looking pretty cool so far,though, I'm currently stuck.
I'll talk a little bit about that.
I also updated a repository tothe 1.0 release of Spring AI.
(01:06):
More will be coming, and I hosted alive stream to help users prepare for
the Neo4j developer certification.
To top it off, I'll recap afantastic content and piece I
came across in a hidden place.
Documentation.
To start us all off, I wanna celebratebreak time tech talks, episode
50 with a podcast feedback form.
(01:27):
I know that doesn't sound all thatexciting maybe, but I'm really excited
to open this forum up and let peopletoss in suggestions or just get a
check on how you're feeling for thecontent length and some other things
that I've set up in the podcast.
So if you want to provide yourfeedback, it's completely anonymous.
Please feel free to do that.
(01:48):
I will include a link to theform in the podcast description.
Then I also updated the SpringAI starter kit, which I will link
the GitHub repository to as well,to the Spring AI 1.0 GA release.
This and other language versions of thisproject were created early last year,
if I remember correctly, and it's beena while since I did an update to this.
(02:13):
I went in and updated the Spring AI to 1.0and then did some fixes and had to change
some package and library names and so on.
There were a couple of changes tothe dependencies and then also the
prompt template and the way thatyou construct it changed a bit.
The methods and the way you put togetherthe final prompt by injecting some of the
(02:36):
variables that I'm using to do the manualGraphRAG right now that has changed a bit.
You can check out the differences inthe repository to see where those are.
And I plan to update my otherrepositories using Spring AI as well.
Those will be coming shortly.
And then also the Langchain4j is now1.0, so I'll need to update those two.
So lots of updates will hopefullybe coming to lots of repositories,
(02:58):
but this at least started offthe domino effect of them.
The big topic I dug into thisweek was exploring alternate
ways to do Spring AI GraphRAG.
I've talked a little bit previouslyin several episodes about different
ways to do GraphRAG using SpringAI and Langchain4j, but currently
(03:20):
I'm doing GraphRAG very manually.
I'm running a vector search.
And then passing in the results of thatvector search to a graph retrieval query,
and then taking the results of thatgraph retrieval query and stuffing the
prompt, and then sending that stuffedprompt to the LLM to get a response back.
And that's working really well.
I don't really have complaints aboutthat, but I wanted a way to streamline
(03:42):
that and using more abstracted orefficient chaining process, if you will.
There's a couple of differentways to do that in Spring AI.
One is through advisors, andthe other way is through tools.
Trying to do GraphRAGusing Spring AI advisors.
I wanted to start there andthen I plan to explore tools.
They have a Spring AI advisorfor question answer that does
(04:05):
a vector search out of the box.
And then I created a custom advisorfor the graph retrieval piece.
According to the documentation, you canpass context from one advisor to the
next, so you could chain several advisorsin several steps onto your LLM call
before you actually send it to the LLM.
I thought this sounded like a reallygood way to approach it, but I'm
(04:27):
having trouble parsing the contextfrom one request to the next.
That's currently a roadblock.
The vector search results are coming backas a single object, but the actual value
of that object is a list of documents.
I. I'm trying to convert that object intoa list of documents in order to pass IDs
(04:47):
of those documents into my graph retrievalquery, and that's where I'm kind of stuck.
I'm having trouble parsing that andconverting it into something that
my graph retrieval query can take.
But I am able to pass the context and I'mable to read that object of documents, but
I'm unable to parse it and pull out theindividual components that I need there.
(05:07):
So I'm still working on it.
I'm gonna tackle some more over thenext several hours, couple of days,
and just see where things end up.
I did also as an intermediary step, haveto figure out how to auto log the request
response and the prompt to the consult.
There is a nice way to do that.
I just had to play with a couple ofthe configuration properties in the
(05:29):
application, but that really looks nicenow and provides a much nicer insight
than manually printing each stage tothe console, which is what I was doing
in the manual GraphRAG rendition.
I can't really do that with the advisors,but you can log the request by just
changing a configuration property.
And again, that's looking really nice,is super helpful, and it's helping
(05:50):
me debug and move along that process.
If I could get the advisors to work,then I'll explore using the Spring
AI tools for the retrieval querypiece, so possibly using the advisor
for the vector search and then usinga tool for the retrieval query.
I will try to sleep on the problem thatI'm having right now and see if there's a
(06:13):
way that missing puzzle piece comes to me.
otherwise I may try to see if Ijust need to jump into tools or if
there's an alternate way to do it.
I'll continue doing research.
Either way, I will keep you posted.
Okay, once I complete this exercise withSpring AI, exploring the advisors and the
tools, I'll try to do a similar exercisein Langchain4j to see if there's an
(06:33):
alternate way to do GraphRAG without themanual steps that I have done previously.
I also, this week, ran a Neo4jcertified developer livestream.
Thanks for my colleagues for hosting this.
I put together some content andupdated some previous documentation
and presentation materialsthat I had done in years past.
(06:53):
If you're not familiar with theNeo4j developer certification, it
is a certification that showcasesthe concepts and how to use Neo4j.
Shows that you have hands-onexperience with Neo4j.
It is a really nice bulletto add to your resume or CV.
And in this live stream, I walkthrough what to expect on the exam,
(07:16):
the topics, the types of questionsthat are there, and some tips and
tricks that I would recommend foryou to study and pass the exam.
If you're interested and you haven'tbeen Neo4j certified yet, I would
encourage you to check that outif you want to become certified.
The content piece I wanna look atthis week is in an unusual place, and
that's the Spring AI documentation.
(07:38):
It's their AI concepts page.
It might seem odd that I'm linkingdocumentation as a really fun and
interesting and helpful piece of content,but I wanted to call out how impressed
I was that this docs page includedexcellent explanations of concepts
and reinforced certain concepts usingdiagrams, in just the right places.
(07:59):
It wasn't overly diagram heavy.
It had a really nice mix of textexplanations and diagram explanations.
But I found this a really nice read.
I went through it the other daybefore digging into the Spring, AI
advisors stuff that I talked aboutearlier, and I picked up a few extra
tidbits that I didn't know before.
The content piece explains models,prompts, embeddings, tokens, and output.
(08:25):
Then it digs into integrating AI intoapplications with a couple of different
approaches, plus discussions on retrievalaugmented generation, tool calling, and
evaluation, all the while looking athow Spring AI approaches these different
components and how they fit together.
I find it is a little bit rare to finddocumentation content that doesn't
(08:47):
focus on just reference information,and I really appreciated that Spring
AI included this foundational page.
By all means, it makes sensethat documentation is reference
focused or reference based.
But having this to set thestage was really a nice touch.
So kudos to the SpringAI team on adding this.
This week Breaktime Tech Talksis celebrating 50 episodes.
(09:11):
What a huge milestone.
I've added a feedback form for you tosend me your thoughts and suggestions.
Then I talked through my currentjourney with doing GraphRAG,
updating my manual implementationby trying to use Spring AI advisors.
I'm currently stuck on that.
But I'll keep after it and see ifI can break through those barriers.
Finally, the Spring AI concepts page inthe documentation was a really helpful
(09:33):
explanation of general AI concepts, aswell as how Spring AI approaches them.
As always, thanks forlistening and happy coding.