Hello and welcome to my channel. I am a german software engineer who works in the AI Space. I love to learn new stuff and teach it to people :-). I already have got a german channel with a lot of videos and full courses on Python, JavaScript, React and much more.
German channel: studio.kzread.info/dron/ikLKUS0DZWMkukbkYDG49Q.html
Пікірлер
Good stuff, loved it
I agree with you, thanks for showing us the light :D
These videos are really very helpful , one request please put all the recently added videos into a proper playlist for quick references like the one you did for langchain projects and other playlists..
I will do that
hi! I like your videos and I learned a lot from it. Your approach is realy production-ready and I am implementing some of your ideas in my PoC for one of my customers.There will be more stuff in the PoC - MS Sharepoint On-Premise integration, AD and LDAP authorization, Neo4J, Multivectorstore ret., etc. But your ideas was the fundation for my project. Thank you very much and keep going! :-)
Thanks! Great video!
please make a video about chatbot using fastapi with memory .
Already have that: kzread.info/dash/bejne/c6aambewh82tqcY.html
Cool, because of your videos I also switched to Langgraph and it is so much nicer in my opinion. However when i tested CRAG I realized that especially the document grade takes very long, which is not suitable for a production environment. What would you do to make this faster? Could also be slow for me because i am using mixtral 8x7b from Groq and not an OpenAi model
You can also try to classify multiple documents at once and ask the llm to write the index ([0:2] for example to then filter the correct docs. Less accurate probably, but faster
As far as I understand, this does not work with Ollama at the moment, does it?
Not sure to be honest.
I use LangGraph almost exclusively and on a daily basis, it makes the code more readable. Debugging also works much better. But sometimes I use LCEL as a one-liner for simple things (prompt template | llm | output parser). This can also make the code more readable, because otherwise you have some kind of subgraph again instead of a one-liner. Conclusion: Your opinion is tried and tested 👍
did they stop with the developer mode toggle on the signup page? cant seem to get a developer account
@@Nonya-xv7hq yes i Pointed it out in a comment. You now have to Apply for that :/
One can no longer apply for developer mode. From their official discord (January 2024): "we’ve decided to stop accepting new requests for 'developer mode' until further notice (this will not be anytime soon). the team is now fully focused on the upcoming release of Space OS/Horizon which will include major improvements that require our full attention. thanks for understanding & stay tuned! 🙏"
@@BadToxic wow, how bad :(
Awesome video! Would you consider adding a module to discuss how to do tool calling with other LLMs (such as Llama3 70B via Groq or Mistral)?
Question upfront? Does it not work with other models? LangChain normally provides a standardized interface for all models
@@codingcrashcourses8533 - Thanks for the reply. Perhaps I was doing something incorrectly because it is working with Groq now. FYI your videos are probably the best I've found. Seriously great work. Thanks so much for creating this channel!
@@b18181 No worries, that questions are totally fine. But it´s just the biggest benefit of using Langchain, that you dont have to worry about APIs, but you can just switch Classes and it will (should) work ;-). Thank you for your kind comment
thanks a lot for the great video! I especially like the Design Patterns part. Just a feedback: I wish you first explained what you want to achieve with each example and then implemented the code and briefly went over why each element is necessary. For example why the super class Observer is needed. Coming from a C programming background, every problem I encounter during coding, seems like it will be solvable by functions. I never understood the real need of making classes. It would be nice to make another video going a bit deeper in design patterns part, explaining the chain of thought of "why" you choose classes for specific problems. Thanks a lot!
Thank you for your feedback. Maybe I can create a Design Patterns video in the future, where I cover this and also show "functional" alternatives with Python :)
@@codingcrashcourses8533 A more in-depth video on design patterns and best practices will definitely be appreciated! :) With some more concrete examples of when you choose each design pattern or if it's a personal choice etc.
Excellent demo - only thing I would say is show at the beginning what the outcome/you are trying to build so you can see how it all ties together.
Thanks for the Feedback
That is a really interesting implementation! I wonder if this could help reducing time on the retriever.add_documents operation, as I'm trying to do a RAG with around 100 pdfs and when testing ParentDocument retriever this is delaying too much. Do you know any solution for this?
Hm, how do you preprocess your pdfs? How many chunks do you have at the end?
@@codingcrashcourses8533 On my vectorstore they are splitted on 800 chunk size. On my store im loading them using PyPDF loaders and a kv docstore
@@codingcrashcourses8533 im using PyPDF loader and then storing them on a LocalFileStore using create_kv_docstore. At the end my docstore has around 350 chunks
Using astream, the response from the LLM has words that are split for example the word "hippopotamus" comes as 2 chunks "hippo" and "potamus". When creating an app, how to recognize and combine the 2 split parts into a single word for front-end?
does not matter as long as there is no "space" Token in between :). The word will just be concatenated
I think you make excellent videos. My only request for future content would be for you to make a quick recap on your agent related projects to point out the changes that have to be made to make them work locally without OpenAI. Thank you for all of the content you produce. I have learned a lot from you.
Well that´s actually the beauty of langchain. Just replace the OpenAI classes with classes you like. They all share the same Runnable Interface. So instead of using ChatOpenAI, you can just use OLlama. from langchain_community.llms import Ollama Pretty easy with Langchain to switch models :)
@@codingcrashcourses8533 I do that now with my applications and you are right it works extremely well. I am still navigating through ollamafunctions and what I think might be some payload adjustments I need to make on my end in some of the applications I have in development. Thank you again for consistently putting out great content.
Is this subject to loss in the middle problem?
Yes, like any other ingestion step. You got methods like reranking to fight problems like this :)
Hi, is line 157 in the code meant to come before the iteration summaries loop or after in line 165? i.e. are we updating the all_summaries field with the previous cluster texts or does it not matter? Otherwise we would be updating "iteration summaries["texts"]" with the same value as "iteration summaries["summaries"]"
Great Video, Thanks for sharing!
Great video !
Great video! I would like to see a video about a customer support chatbot(with Q&A and RAG)
I got a very similar Video about that
@@codingcrashcourses8533 thank you very much. I think i saw it, it was developed in langchain. However, I would like to see it using langgraph. Thank you very much for making this kind of content
hi, could you help me out with the errors in this code: drive.google.com/file/d/1qlzGwMjaewy0Ni32Cpo7pZ_nz5x-AgTq/view?usp=drivesdk I have been struggling with integrating guardrails in my code since a long time. your help would be much appreciated
Nice video! Is there some way to retrieve the metadata as well with the multivector retriever? Such as page number or file name?
Yes sure, you have got access to the metadata attribute of the documents and can just use them whatever you want for. If you struggle with that, maybe watch my LCEL Crashcourse on this channel :)
@@codingcrashcourses8533 Sorry, I was being unprecise. I mean retrieving metadata from the docstore! Is that also possible?
i really want to see a langgraph fastapi version from you ser
Will we done. I will do a human-in-the-loop version
@@codingcrashcourses8533 Yes please :)
is there a github repo for us to see this code and walk through it?
All of my projects i made videos about are available on github. Everything ;)
This is a good video. Thank you.
Thanks for the video! Is there a way to evaluate the performance of the Guardrails? Basically I got dataset of Jailbreak prompts and want to look how many of those prompts jailbreak the model before and after the implementation of guardrails? Thank you for your help!
You could evaluate that with RAGAS. I have a Video on that topic on my channel
@@codingcrashcourses8533 Just watched it! In the video, you explained how to evaluate the actual "information retrieval and delivery" capabilities of a RAG. I need to evaluate how well the guardrails work. I have a labeled dataset with prompts that the model shouldn't process, and I want to evaluate how many of those prompts the model processes before and after implementing NeMo. Any ideas how that can be done? My first guess was some type of ROC graph. Any idea would be helpful :)
@@niklasfischer3146 You can use custom datasets in Ragas and set ground_truth and expected values there. At the end you will compare these and then count how often guardrails prevents a prompt that should not be processed (you can identify that by a response like "sorry, I will not answer to that due to xyz".
This is great, but will the source code be made public?
It is public. I will update the repo, sorry
@@codingcrashcourses8533 Can you tell me where the repo is?
@@codingcrashcourses8533 Can you tell me where the repo is?
@@codingcrashcourses8533 Can you tell me where the repo is?
@@codingcrashcourses8533 Can you tell me where the repo is?
in 24:11 why self.arrows == self.arrows?? for the rest you did self.(variablename) == other.(variablename)
ups, i made an error there. Thanks for pointing it out. other.arrows is correct of course.
@@codingcrashcourses8533 also just wanted to say thank you so much for this course! really helpful and i understood alot of the concepts you covered! I subscribed and liked!
Thank you for such great video, as always! How can I find your Udemy courses?
www.udemy.com/course/langchain-on-azure-building-scalable-llm-applications/?couponCode=3CC86F0FBFF12BE2E8E3 www.udemy.com/course/langchain-in-action-develop-llm-powered-applications/?couponCode=73267520F1E98047E188 here are promocodes where u can get them for the cheapest price available (and I get 95% of the money instead of 30% ;-) ). Thanks for your support
Im sure this is production ready with some changes in identifying current logged in user. But I’m curious how we gonna make it work if want to integrate in WhatsApp or other social handles. You always unlock endless possibilities with your videos 🦾🫶🏻
Great tutorial! I've got one question, though: in 6:02 respectively 6:54: Does the model decide which tool to use on basis of the doc string?
Yes, that docstring is the explanation for the llm :)
Wait what, I thought FAISS didnt support metadata filters ? Weird that TimeWaited works with it no ?
I am not too familiar with each change, FAISS is also work in progress, maybe they added it in some version :)
@@codingcrashcourses8533 In any case, your video is amazing and you are greatly helping me for my internship project. Many thanks, keep up the great work 💪👍
I don't know the umap library, its very interesting. Good explanation about RAG advanced techniques, sucess for you!
thank you :)
A god among men
First comment I have also purchased your Udemy course , found it really useful
Which one? Thank you very much for your Support:)
@@codingcrashcourses8533 RAG Deployment with micro services and PgVector
I tried this code, and everytime got exception "OpenAI function call failed: You exceeded your current quota, please check your plan and billing details". my credit remaining is $0.00 but in Usage Project's Monthly Bill is $0.00/$5.00 limit does anyone know how to solve it?
It seems like u used all credits or you did not buy any yet
@@codingcrashcourses8533 I did not buy any because I think there is a free limit, right?
Which would you recommend for creating complex, production-ready agents with more than 30 nodes, with cycling and branching capabilities: Haystack, LangGraph, or a custom-built framework? I haven't seen a comparison between Haystack and LangGraph for real product development. What is your opinion?
I am not that familiar with Haystack I have to admit and since I am pretty familar with LangChain my opinion would be pretty biased
why dont you make project videos like chatbot etc?
I have multiple projects on my channel :)
@@codingcrashcourses8533 coupon?
route conversation is giving error "401 Unauthorised". How to debug the same.
You probably just did not use the token for the tokenpoint
If possible I would give 1k likes! that solved hours of studying!
Thank you for that comment. Really appreciate that :)
nice video. I can echo the sentiment of others. Most videos miss out on important things or basics for a non experienced beginner. Do you think you could add a video in actual production (live production). Second thing just a feedback , the data flow and handshake of services if it is shown in numbers and different colors ( the flow basically ) would be great.
I have a full udemy course ok that :)
@@codingcrashcourses8533 i have to look for that. Have you also experimented with claude (from anthropic)
On your Github Site, there is a repository for an "Advanced RAG with Langchain" Course - I cannot find it on Udemy. Is it already live? When can I expect it online?
3 weeks and it will be finished
@@codingcrashcourses8533 ❤️
Excellent tutorial. But what do you need the `from langchain_openai import ChatOpenAI` for in the first cycles example?
the package langchain-openai :)
But you don't use the ChatOpenAI package on that example, do you? I mean - you define a model, but where is it used? The decision to stop the cycle comes from the the algorithm, does it? I don't see any AI model involved into that cycle example. Edit: Ah, ok, the decision on the cycle is made by the model!
This is just great!
Thank you :)
LLMChain() is deprecated and the output_parser in the examples also cause json output error. Would be nice, if you could update the github code. Thank you If anyone having issue with json output, here is a fix: from langchain_core.output_parsers import BaseOutputParser class LineList(BaseModel): lines: list[str] = Field(description="Lines of text") class LineListOutputParser(BaseOutputParser[LineList]): def __init__(self) -> None: super().__init__(pydantic_object=LineList) def parse(self, text: str) -> list[str]: lines = text.strip().split(" ") return lines