![James Briggs](/img/default-banner.jpg)
- 202
- 3 836 620
James Briggs
United Kingdom
Registrace 27. 07. 2016
Founder at Aurelio AI, startup advisor, and dev advocate @ Pinecone.
NLP + LLM Consulting:
aurelio.ai
NLP + LLM Consulting:
aurelio.ai
LangGraph Deep Dive: Build Better Agents
LangGraph is an agent framework from LangChain that allows us to develop agents via graphs. By building agents using graphs we have much more control and flexibility in our AI agent execution path.
In this video, we will build an AI research agent using LangGraph. Research agents are multi-step LLM agents that can produce in-depth research reports on a topic of our choosing through multiple steps.
We will see how we can build our own AI research agent using gpt-4o, Pinecone, LangGraph, arXiv, and Google via the SerpAPI.
📌 Code:
colab.research.google.com/github/pinecone-io/examples/blob/master/learn/generation/langchain/langgraph/01-gpt-4o-research-agent.ipynb
📖 Article:
www.pinecone.io/learn/langgraph-research-agent/
🌲 Subscribe for Latest Articles and Videos:
www.pinecone.io/newsletter-signup/
👋🏼 AI Consulting:
aurelio.ai
👾 Discord:
discord.gg/c5QtDB9RAP
Twitter: jamescalam
LinkedIn: www.linkedin.com/in/jamescalam/
#artificialintelligence #langchain #llm #python #rag
00:00 LangGraph Agents
02:04 LangGraph Agent Overview
04:46 Short History of Agents and ReAct
07:58 Agents as Graphs
10:18 LangGraph
12:41 Research Agent Components
14:30 Building the RAG Pipeline
17:28 LangGraph Graph State
18:56 Custom Agent Tools
19:10 ArXiv Paper Fetch Tool
21:22 Web Search Tool
22:42 RAG Tools
23:57 Final Answer Tool
25:10 Agent Decision Making
30:16 LangGraph Router and Nodes
33:00 Building the LangGraph Graph
36:52 Building the Research Agent Report
39:39 Testing the Research Agent
43:42 Final Notes on Agentic Graphs
In this video, we will build an AI research agent using LangGraph. Research agents are multi-step LLM agents that can produce in-depth research reports on a topic of our choosing through multiple steps.
We will see how we can build our own AI research agent using gpt-4o, Pinecone, LangGraph, arXiv, and Google via the SerpAPI.
📌 Code:
colab.research.google.com/github/pinecone-io/examples/blob/master/learn/generation/langchain/langgraph/01-gpt-4o-research-agent.ipynb
📖 Article:
www.pinecone.io/learn/langgraph-research-agent/
🌲 Subscribe for Latest Articles and Videos:
www.pinecone.io/newsletter-signup/
👋🏼 AI Consulting:
aurelio.ai
👾 Discord:
discord.gg/c5QtDB9RAP
Twitter: jamescalam
LinkedIn: www.linkedin.com/in/jamescalam/
#artificialintelligence #langchain #llm #python #rag
00:00 LangGraph Agents
02:04 LangGraph Agent Overview
04:46 Short History of Agents and ReAct
07:58 Agents as Graphs
10:18 LangGraph
12:41 Research Agent Components
14:30 Building the RAG Pipeline
17:28 LangGraph Graph State
18:56 Custom Agent Tools
19:10 ArXiv Paper Fetch Tool
21:22 Web Search Tool
22:42 RAG Tools
23:57 Final Answer Tool
25:10 Agent Decision Making
30:16 LangGraph Router and Nodes
33:00 Building the LangGraph Graph
36:52 Building the Research Agent Report
39:39 Testing the Research Agent
43:42 Final Notes on Agentic Graphs
zhlédnutí: 12 160
Video
RAG with Mistral AI!
zhlédnutí 2,3KPřed měsícem
We build an RAG pipeline using Mistral AI's mistral-embed and mistral-large, using Pinecone vector DB as our knowledge base. 📌 Code: github.com/pinecone-io/examples/blob/master/integrations/mistralai/mistral-rag.ipynb 🌲 Subscribe for Latest Articles and Videos: www.pinecone.io/newsletter-signup/ 👋🏼 AI Consulting: aurelio.ai 👾 Discord: discord.gg/c5QtDB9RAP Twitter: jamescalam Linked...
Superfast RAG with Llama 3 and Groq
zhlédnutí 7KPřed měsícem
Groq API provides access to Language Processing Units (LPUs) that enable incredibly fast LLM inference. The service offers several LLMs including Meta's Llama 3. In this video, we'll implement a RAG pipeline using Llama 3 70B via Groq, an open source e5 encoder, and the Pinecone vector database. 📌 Code: github.com/pinecone-io/examples/blob/master/integrations/groq/groq-llama-3-rag.ipynb 🌲 Subsc...
NEW Pinecone Assistant
zhlédnutí 2,8KPřed 2 měsíci
Pinecone Assistant is a new AI assistant service from Pinecone, bringing together the best of LLMs and GenAI with advanced Retrieval Augmented Generation (RAG) methods to reduce hallucination and optimize assistant reliability. 🚩 Get Access: www.pinecone.io/product/pinecone-assistant/ 📌 Code: github.com/pinecone-io/examples/blob/master/learn/generation/pinecone-assistant/assistants-ai-demo.ipyn...
Semantic Chunking - 3 Methods for Better RAG
zhlédnutí 10KPřed 2 měsíci
Semantic chunking allows us to build more context-aware chunks of information. We can use this for RAG, splitting video and audio, and much more. In this video, we will use a simple RAG-focused example. We will learn about three different types of chunkers: StatisticalChunker, ConsecutiveChunker, and CumulativeChunker. At the end, we also discuss semantic chunking for video, such as for the new...
Processing Videos for GPT-4o and Search
zhlédnutí 6KPřed 3 měsíci
Recent multi-modal models like OpenAI's gpt-4o and Google's Gemini 1.5 models can comprehend video. When feeding video into these new models, we can push frames at a set frequency (for example, one frame every second) - but this method can be wildly inefficient and expensive. Fortunately, there is a better method called "semantic chunking." Semantic chunking is a common method used in text-base...
NVIDIA's NEW AI Workbench for AI Engineers
zhlédnutí 5KPřed 3 měsíci
NVIDIA AI Workbench (NVWB) is a software toolkit designed to help AI engineers and data scientists build in GPU-enabled environments. Using NVWB, we can set up a local AI project with a prebuilt template with a few clicks. Then, after building out our project locally, we can quickly deploy it to a more powerful remote GPU instance, switch to a different remote, or go back to local. By abstracti...
Semantic Chunking for RAG
zhlédnutí 22KPřed 3 měsíci
Semantic chunking for RAG allows us to build more concise chunks for our RAG pipelines, chatbots, and AI agents. We can pair this with various LLMs and embedding models from OpenAI, Cohere, Anthropic, etc, and libraries like LangChain or CrewAI to build potentially improved Retrieval Augmented Generation (RAG) pipelines. 📌 Code: github.com/pinecone-io/examples/blob/master/learn/generation/bette...
LangGraph 101: it's better than LangChain
zhlédnutí 68KPřed 4 měsíci
LangGraph is a special LangChain-built library that builds intelligent AI Agents using graphs. Ie, agentic state machines. It allows us to build more powerful and flexible AI agents than what we can build using just the core library, LangChain. In this video, we'll see how to build agents with LangGraph and OpenAI. 📌 Code: github.com/pinecone-io/examples/blob/master/learn/generation/langchain/l...
AI Agent Evaluation with RAGAS
zhlédnutí 12KPřed 4 měsíci
RAGAS (RAG ASsessment) is an evaluation framework for RAG pipelines. Here, we see how to use RAGAS for evaluating an AI agent built using LangChain and using Anthropic's Claude 3, Cohere's embedding models, and the Pinecone vector database. 📌 Code: github.com/pinecone-io/examples/blob/master/learn/generation/better-rag/03-ragas-evaluation.ipynb 📕 Article: www.pinecone.io/learn/series/rag/ragas/...
Claude 3 Opus RAG Chatbot (Full Walkthrough)
zhlédnutí 12KPřed 5 měsíci
Claude 3 Opus is a state-of-the-art (SOTA) LLM from Anthropic. In this walkthrough, we'll see how to use Claude 3 Opus as a conversational AI agent with LangChain v1, using a Retrieval Augmented Generation (RAG) tool powered by Voyage AI embeddings and the Pinecone vector database. Putting all of these together, we have an extremely accurate AI RAG conversational agent. 📌 Code: github.com/pinec...
Multi-Modal NSFW Detection with AI
zhlédnutí 2,1KPřed 5 měsíci
Using multi-modal models like OpenAI's CLIP we can use the Semantic Router library for detection of specific images or videos, for example the detection of Not Shrek For Work (NSFW) and Shrek For Work (SFW) images. In this video, we'll see how. ⭐ GitHub Repo: github.com/aurelio-labs/semantic-router/ 📌 Code: github.com/aurelio-labs/semantic-router/blob/main/docs/07-multi-modal.ipynb 🔥 Semantic R...
AI Decision Making - Optimizing Routes
zhlédnutí 5KPřed 5 měsíci
AI decision-making can now be easily trained using the optimization methods available in semantic router. Route score thresholds define whether a route should be chosen. If the score we identify for any given route is higher than the Route.score_threshold, it passes; otherwise, it does not, and either another route is chosen or we return no route. Given that this one score_threshold parameter c...
Steerable AI with Pinecone + Semantic Router
zhlédnutí 5KPřed 6 měsíci
We can make AI steerable and predictable using Semantic Router. How much fine-grained control we need will adjust the scale required by our routes. At very large scales, it can be useful to use a vector database to store and search through your route vector space. In this walkthrough, we will see how to use the new Pinecone integration in Semantic Router. ⭐ GitHub Repo: github.com/aurelio-labs/...
OpenAI's Sora: Incredible AI Generated Video
zhlédnutí 12KPřed 6 měsíci
Taking a look at the new text-to-video diffusion model, Sora, from OpenAI - it is truly incredible. OpenAI Blog Post: openai.com/sora 👋🏼 AI Consulting: aurelio.ai 👾 Discord: discord.gg/c5QtDB9RAP Twitter: jamescalam LinkedIn: www.linkedin.com/in/jamescalam/
OpenAI's NEW 256-d Embeddings vs. Ada 002
zhlédnutí 7KPřed 6 měsíci
OpenAI's NEW 256-d Embeddings vs. Ada 002
Llama.cpp for FULL LOCAL Semantic Router
zhlédnutí 12KPřed 7 měsíci
Llama.cpp for FULL LOCAL Semantic Router
Faster LLM Function Calling - Dynamic Routes
zhlédnutí 10KPřed 7 měsíci
Faster LLM Function Calling - Dynamic Routes
NEW AI Framework - Steerable Chatbots with Semantic Router
zhlédnutí 41KPřed 7 měsíci
NEW AI Framework - Steerable Chatbots with Semantic Router
Mixtral 8X7B - Deploying an *Open* AI Agent
zhlédnutí 39KPřed 8 měsíci
Mixtral 8X7B - Deploying an *Open* AI Agent
LangChain Expression Language (LCEL) Explained!
zhlédnutí 18KPřed 8 měsíci
LangChain Expression Language (LCEL) Explained!
OpenAI Alternatives: Cohere Embed v3 and Open Source
zhlédnutí 13KPřed 9 měsíci
OpenAI Alternatives: Cohere Embed v3 and Open Source
LangChain Multi-Query Retriever for RAG
zhlédnutí 27KPřed 9 měsíci
LangChain Multi-Query Retriever for RAG
RAG But Better: Rerankers with Cohere AI
zhlédnutí 58KPřed 10 měsíci
RAG But Better: Rerankers with Cohere AI
Streaming for LangChain Agents + FastAPI
zhlédnutí 31KPřed 10 měsíci
Streaming for LangChain Agents FastAPI
Chatbots with RAG: LangChain Full Walkthrough
zhlédnutí 139KPřed 11 měsíci
Chatbots with RAG: LangChain Full Walkthrough
Hey James, First of all, thank you for all the content you put out there, it is quite helpful. I am trying to figure out how this would fit into a chatbot pipeline. Upon further thinking, Semantic Router will be a replacement for OpenAI (to put an example) way of defining which tool to use (platform.openai.com/docs/guides/function-calling/understanding-token-usage) i.e. saving some tokens and perhaps more accuracy. However, we will still need to invoke the LLM with one function schema (after the decision of which tool to use was made). In a nutshell, a semantic router is a replacement of the prompt with multiple schemas that OpenAI uses under the hood, right?
I also understand now the speed improvement: 1. The "multiple schema" system prompt is avoided 2. embeddings + distance computation combo is faster than generation (assuming asynchronous embedding of the utterances and also a small-medium list of utterances.)
Unfortunately, the semantic router has removed this feature, or refactored it in some way.
hey yes they were deprecated in favour of this czcams.com/video/7JS0pqXvha8/video.html
Learning this at udemy. Finished one chapter. Saw end to end. Liked langsmith. This is a good foundation of machine meaningful graph.
nice! I agree, I like the graph-based approach
is cohere free?
I think you get a number of credits free before needing to pay
SmythOS facilitates efficient multi-tasking with AI applications, making it ideal for handling complex models and large datasets. Its performance optimization helps in minimizing downtime and improving overall system reliability.
27:17 this is soooo helpful
I'm happy to hear it!
Hey I had a question how could I do this I multiple languages
Awesome, this is the video I need. I'll watch this carefully. I've tried langgraph, and it felt really complex to manage the tools and workflows. Giving the description to trigger the tool is hard if you have similar steps in your workflow. Making the caller to use the exact response from the tool was also really hard. And thinking of scalability, like adding steps in between in the long term in a project with multiple people, feels it's going to be hard. I tried also adding multi agents by passing a workflow as a node, and again, it was a bit hard to make everything work as expected. I was just following a simple flowchart with a few steps and forks. Even though I was able to make it work, it felt like I was doing everything so wrong. Anyway, I hope your video put some lights on my way to understand this better
Even after 3 years I haven't found such an amazing, easy to follow tutorial series on this topic. I really loved it James. Thank you!❤
Thank You. Very timely and useful !
How can I use llama3.1 to achieve this?
Excellent description. I have thousands of images with design objects on a Mac FileMaker server, which can connect to gpt-4o or similar AI-model. I am interested to hear your opinion upon analysing this images according to a JSON file with some few hundreds design taxonomies (category name and description). You are welcome to contact me directly.
Hi James, I love your miniseries on semantic router. I am really looking for usecases for this. Have you been able to collect some common use cases from your users for inspiration? Would be awesome and super helpful if you made a video on this subject. Thank you 🙏
Have you tried to use this approach to build a team of agents that collaborate to solve a specific task from multiple different specific perspectives?
Really nice job! Really wanna have a walk through on how to stream the final answer as well.
noted, will try and do something soon!
Super cool project
Has anyone tried it with cheaper LLM(s)? With which and how did you like the result?
building something similar with 8b llama 3.1 - so far going well, using ollama tool calling
I tried this approach to build agent for my use case with bedrock LLM, instead of Open Ai model i just introduced Bedrock LLM and keep all remaining things same but facing issue as : Error raised by bedrock services : messages : final assistant content can not end up with white trailing space May be this error is due to custom scratchpad can you guide me to resolve this error?
Openai doesnot provide free api keys anymore so what alternative can i use?
How is it different than DSPy ?
Great tutorial as usual James!
.bind_tools is not supported on HuggingFace
Very nice content James ! Just discovering langgraph I have a question : in what which is It different from crew AI ?
Thanks for this James. How do I switch from OPENAI KEY to GROQ KEY? Or even using Ollama?
working on video with langgraph + ollama, you can see some of the progress in this PR github.com/pinecone-io/examples/pull/374
btw, what about using the semantic-router with langGraph ?
great idea, we do that at Aurelio AI for a couple clients - but I'm yet to talk about it on YT, I will
@@jamesbriggs thank you James, another interesting topic is binarification (that a word ? Lol!) embeddings to save costs on embedding storage.
I love LangGraph as well, looking forward solidifying my knowledge. Cheers James. ps . Would you be interested doing video/research on meta-data creation from a hierarchical perspective : Parent <> children ? I think we could greatly enhance RAG quality if we build a hierarchical structure of meta-data. Problem here is how to create and label this data. From my testing with "GliNER" it doesn't nearly capture what id like and needs fine-tuning (but maybe we could train it on our client specific data..). Cheers!!
Can we load a dataset from our private cloud?(This data I don't want to upload to hugging face) I don't find any examples
Thanks for this video, great as usual. One thing I don't understand is what is breaking the "loop"/further gathering of information. Is it when the "Oracle" thinks it has "plenty of information" as stated in the system prompt? Or when does it stop?
yeah exactly, once the oracle has enough information it will "decide" to use the final answer tool, ending the loop
Great Content !!👏👏👏👏
Your presentation is so good, I use it to listen to it in the background when I'm coding or doing other tasks. Then, when I watch the tutorial for good I find that I follow much better than if I would watch and follow right away.
that's cool, I never tried that - will try the same sometime next time I'm watching tutorials :)
Can you please also make a video about human in the loop in depth. Thank you
I always enjoy your video. I have a better understanding of LangGraph. As with your video, all of the demonstrations I have watched are one sentence or requests to the LLM. Here are two examples of Requests. I'm interested in what the best type of dog is for child. My daughter is five years old. We live in Minnesota, which is quite cold, so we need a dog that is good for cold weather. Please provide me with a few suggestions. I am deeply intrigued by the various reasoning approaches to building my report writer research agent. I have discovered two approaches: Tree of Thought and Chain of Thought. I am eager to gain a good understanding of each. Please provide me with a report that defines each strength and weakness for each. Make a recommendation as to which one would be good for building my research agent.
Thanks a lot for sharing. The topic looks complex but you made it as neat as possible! The combination of video, code and article is really helpful. Video is good in the sense that it is more interactive, but I do need the article to get a more straight-forward sense of the whole idea. Some questions: 1) "input": "tell me something interesting about dogs" became 'interesting facts about dogs' in the output. Is this the result of the step langchain_core.tools? 2) in rag_search_filter, top_k=6; in rag_search, top_k=2. Does this mean return the top_k answers? I asked this because one was doing search within one article, the other was searching in indexes (I assume the index was one article one index?) 3) graph.add_node("oracle", run_oracle) graph.add_node("rag_search_filter", run_tool) graph.add_node("rag_search", run_tool) graph.add_node("fetch_arxiv", run_tool) graph.add_node("web_search", run_tool) graph.add_node("final_answer", run_tool) Will all of them be forced to execute? I see from the result rag_search, web_search, final_answer were invoked. Then how does this graph determines which tools to invoke? Order seems to matter too. The subsequent tools will be affected by the previous tools' results, right? Then how is order decided?
1) the rewrite is made by the "oracle" which is an LLM generating the text that decides which tool is to be used, in this case the LLM decided to use the rag tool with that query, so it would have generated something like "{'tool': 'rag_search', 'query': 'interesting facts about dogs'}" 2) yes, it means return the top_k answers, so `rag_search_filter` returns the 6 most relevant records from the arxiv paper search, whereas `rag_search` returns the 2 most relevant records from the arxiv paper search 3) not all are forced to execute, the oracle and it's generations (described in (1) above) are what decides which next step to take - if it decided to, it could go straight to the final answer and not use any tools
In your opinion, what situations would you stick to Langchain VS Langgraph? Or should we now always use Langgraph?
I always just use langgraph now - maybe if langchain gives you exactly what you need out of the box it might be better, but I really prefer building with langgraph nowadays
@@jamesbriggs Do you have a particular scenario where LangChain would give you what you need out of the box compared to LangGraph? It seems as if the LangGraph interface gives us all the power of LangChain but in a more controlled environment (and more).
@sidnath7336 I think I'd always stick with langgraph nowadays
Simple and Efficient
📌 Code: colab.research.google.com/github/pinecone-io/examples/blob/master/learn/generation/langchain/langgraph/01-gpt-4o-research-agent.ipynb 📖 Article: www.pinecone.io/learn/langgraph-research-agent/
Looking forward to this one. Especially with the new features LangChain has been bringing out in the past weeks. Exciting times to be building AI applications, for sure!
langchain have done well with langgraph here -the langgraph I demoed in the first langgraph tutorial was pretty messy, hard to grasp, etc - this version of langgraph + langchain v2 is much better imo
Thanks for this content
is levenshtein similar to dynamic time warping?
thank you yet again !!!!
clear as mud
Hi can you convert end to end project
i am getting this error while calling evaluate function AttributeError: 'DataFrame' object has no attribute 'rename_columns'
those who are getting this error and other errors run the evaluate one by one e.g for index in range(len(eval_df)-1): eval_dataset = Dataset.from_dict(eval_df[index:index+1]) result = evaluate( dataset=eval_dataset,
Super informative. Thank you so much!!!
Nothing new.
This is great - any more resources on recommendations on adding metadata (ie. title) to embeddings? Can't decide if I should put them in the embeddings vs. having a more traditional index using something like hybrid search... Also in addition to title, what about dates, author etc... I could imagine each chunk being 50% of this metadata. Wouldn't that compromise the embedding?
I've been using a tool unstructured to split my documents into known sections (ie. title, abstract, pararaphs) - it can do the splitting. Do you think having these sentences apriori is helpful to chunking or it's better to just feed plaintex to the chunking strat and let it do all the grouping/separations etc...
I want to get answers from a table in the image, how to do that?
You need to define your llm in step 2 of asking the model directly.... llm = HuggingFacePredictor( endpoint_name="flan-t5-demo" # Use the name of your deployed endpoint )
Thanks a ton James!!