<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel> <title>Python Friday</title><link>https://pythonfriday.dev/</link><atom:link href="https://pythonfriday.dev/feed_rss_created.xml" rel="self" type="application/rss+xml" /> <managingEditor>info@PythonFriday.dev (Johnny Graber)</managingEditor><docs>https://github.com/jgraber/PythonFriday</docs><language>en</language> <pubDate>Fri, 17 Jul 2026 21:24:15 -0000</pubDate> <lastBuildDate>Fri, 17 Jul 2026 21:24:15 -0000</lastBuildDate> <ttl>1440</ttl> <generator>MkDocs RSS plugin - v1.17.7</generator> <image> <url>None</url> <title>Python Friday</title> <link>https://pythonfriday.dev/</link> </image> <item> <title>#340: Running Scripts With uv run</title> <description>&lt;p&gt;If we dive into Python scripting or need to share a small utility with a colleague, we quickly run into a familiar problem: Incompatible or missing package versions. We can solve that problem with virtual environments, but that brings us right to the next one. Managing multiple environments for small, standalone scripts is tedious and breaks the workflow.&lt;/p&gt;</description> <link>https://pythonfriday.dev/2026/07/340-running-scripts-with-uv-run/?utm_source=PythonFriday&amp;utm_medium=RSS&amp;utm_campaign=feed-syndication</link> <pubDate>Fri, 17 Jul 2026 20:00:00 +0200</pubDate> <source url="https://pythonfriday.dev/feed_rss_created.xml">Python Friday</source><guid isPermaLink="true">https://pythonfriday.dev/2026/07/340-running-scripts-with-uv-run/</guid> <enclosure url="https://pythonfriday.dev/assets/images/social/posts\2026\340-running-scripts-with-uv-run\340-running-scripts-with-uv-run.png" type="image/png" length="34479" /> </item> <item> <title>#339: Parse Markdown Metadata With Frontmatter</title> <description>&lt;p&gt;&lt;a href=&#34;https://docs.github.com/en/contributing/writing-for-github-docs/using-yaml-frontmatter&#34;&gt;Frontmatter&lt;/a&gt; is the metadata format for Markdown and YAML that we can use in &lt;a href=&#34;.https://pythonfriday.dev/2021/02/57-introduction-to-mkdocs/&#34;&gt;MkDocs&lt;/a&gt; and many other tools. While we could parse the metadata on our own, tools like Python Frontmatter are a much simpler way to do it. Let us see how this works.&lt;/p&gt;</description> <link>https://pythonfriday.dev/2026/07/339-parse-markdown-metadata-with-frontmatter/?utm_source=PythonFriday&amp;utm_medium=RSS&amp;utm_campaign=feed-syndication</link> <pubDate>Fri, 10 Jul 2026 20:00:00 +0200</pubDate> <source url="https://pythonfriday.dev/feed_rss_created.xml">Python Friday</source><guid isPermaLink="true">https://pythonfriday.dev/2026/07/339-parse-markdown-metadata-with-frontmatter/</guid> <enclosure url="https://pythonfriday.dev/assets/images/social/posts\2026\339-parse-markdown-metadata-with-frontmatter\339-parse-markdown-metadata-with-frontmatter.png" type="image/png" length="43059" /> </item> <item> <title>#338: Multi-Agents in LangGraph</title> <description>&lt;p&gt;A multi-agent system is an architecture style where we split a larger task across several specialised agents instead of relying on one LLM call to do everything. Each agent can have its own role, such as planning, researching, validating, or writing the final answer. That way we can build workflows that are easier to control and to extend.&lt;/p&gt; &lt;p&gt;In LangGraph we can build this kind of applications with nodes that represent the agents and let the workflow guide the communication between them. This approach let us reuse most of what we already know about LangGraph while the multi-agents are in control of their subject.&lt;/p&gt;</description> <link>https://pythonfriday.dev/2026/07/338-multi-agents-in-langgraph/?utm_source=PythonFriday&amp;utm_medium=RSS&amp;utm_campaign=feed-syndication</link> <pubDate>Fri, 03 Jul 2026 20:00:00 +0200</pubDate> <source url="https://pythonfriday.dev/feed_rss_created.xml">Python Friday</source><guid isPermaLink="true">https://pythonfriday.dev/2026/07/338-multi-agents-in-langgraph/</guid> <enclosure url="https://pythonfriday.dev/assets/images/social/posts\2026\338-multi-agents-in-langgraph\338-multi-agents-in-langgraph.png" type="image/png" length="35314" /> </item> <item> <title>#337: Add a MCP Server to LangGraph</title> <description>&lt;p&gt;Last week we saw how &lt;a href=&#34;.https://pythonfriday.dev/2026/06/336-build-a-mcp-server-with-fastmcp/&#34;&gt;FastMCP can help us to create a MCP server&lt;/a&gt;. In this post we see how we can connect our LangGraph application to an MCP server.&lt;/p&gt;</description> <link>https://pythonfriday.dev/2026/06/337-add-a-mcp-server-to-langgraph/?utm_source=PythonFriday&amp;utm_medium=RSS&amp;utm_campaign=feed-syndication</link> <pubDate>Fri, 26 Jun 2026 20:00:00 +0200</pubDate> <source url="https://pythonfriday.dev/feed_rss_created.xml">Python Friday</source><guid isPermaLink="true">https://pythonfriday.dev/2026/06/337-add-a-mcp-server-to-langgraph/</guid> <enclosure url="https://pythonfriday.dev/assets/images/social/posts\2026\337-add-a-mcp-server-to-langgraph\337-add-a-mcp-server-to-langgraph.png" type="image/png" length="38341" /> </item> <item> <title>#336: Build a MCP Server With FastMCP</title> <description>&lt;p&gt;An MCP (Model Context Protocol) server is an open-standard integration that acts as a bridge between Large Language Models and external data sources or tools. That way we can get more specific answers about our data or let the LLM act on our behalf.&lt;/p&gt; &lt;p&gt;We can build our own MCP server with various tools. One of the simplest one for Python is &lt;strong&gt;&lt;a href=&#34;https://gofastmcp.com/&#34;&gt;FastMCP&lt;/a&gt;&lt;/strong&gt;, that feels a lot like &lt;a href=&#34;.https://pythonfriday.dev/2024/02/214-first-steps-with-fastapi/&#34;&gt;FastAPI&lt;/a&gt;. Let us see what we need to do to run our own tools through a MCP server.&lt;/p&gt;</description> <link>https://pythonfriday.dev/2026/06/336-build-a-mcp-server-with-fastmcp/?utm_source=PythonFriday&amp;utm_medium=RSS&amp;utm_campaign=feed-syndication</link> <pubDate>Fri, 19 Jun 2026 20:00:00 +0200</pubDate> <source url="https://pythonfriday.dev/feed_rss_created.xml">Python Friday</source><guid isPermaLink="true">https://pythonfriday.dev/2026/06/336-build-a-mcp-server-with-fastmcp/</guid> <enclosure url="https://pythonfriday.dev/assets/images/social/posts\2026\336-build-a-mcp-server-with-fastmcp\336-build-a-mcp-server-with-fastmcp.png" type="image/png" length="41294" /> </item> <item> <title>#335: Handle the Raspberry-Test in LangGraph</title> <description>&lt;p&gt;A common way to test the &#34;quality&#34; of an AI solution is to ask for how many r’s are in the word raspberry. LLMs are notoriously bad in such questions, but that does not mean we have to accept defeat with our AI application. Let us figure out how we can handle these types of tests.&lt;/p&gt;</description> <link>https://pythonfriday.dev/2026/06/335-handle-the-raspberry-test-in-langgraph/?utm_source=PythonFriday&amp;utm_medium=RSS&amp;utm_campaign=feed-syndication</link> <pubDate>Fri, 12 Jun 2026 20:00:00 +0200</pubDate> <source url="https://pythonfriday.dev/feed_rss_created.xml">Python Friday</source><guid isPermaLink="true">https://pythonfriday.dev/2026/06/335-handle-the-raspberry-test-in-langgraph/</guid> <enclosure url="https://pythonfriday.dev/assets/images/social/posts\2026\335-handle-the-raspberry-test-in-langgraph\335-handle-the-raspberry-test-in-langgraph.png" type="image/png" length="40662" /> </item> <item> <title>#334: Create Subgraphs in LangGraph</title> <description>&lt;p&gt;The more complex our applications get, the harder it is to follow along our graph. Luckily for us, there is the concept of subgraphs that let us split our graph into parts that we can reuse. &lt;/p&gt; &lt;p&gt;For this post we create a minimalistic text writing pipeline that puts the quality checks into a subgraph. Let us see how we can do that.&lt;/p&gt;</description> <link>https://pythonfriday.dev/2026/06/334-create-subgraphs-in-langgraph/?utm_source=PythonFriday&amp;utm_medium=RSS&amp;utm_campaign=feed-syndication</link> <pubDate>Fri, 05 Jun 2026 20:00:00 +0200</pubDate> <source url="https://pythonfriday.dev/feed_rss_created.xml">Python Friday</source><guid isPermaLink="true">https://pythonfriday.dev/2026/06/334-create-subgraphs-in-langgraph/</guid> <enclosure url="https://pythonfriday.dev/assets/images/social/posts\2026\334-create-subgraphs-in-langgraph\334-create-subgraphs-in-langgraph.png" type="image/png" length="39970" /> </item> <item> <title>#333: Inspect and Rerun Workflows in LangGraph</title> <description>&lt;p&gt;When we switch from our &lt;a href=&#34;.https://pythonfriday.dev/2026/05/332-long-term-memory-in-langgraph/&#34;&gt;hand-written long-term memory solution&lt;/a&gt; in last week&#39;s post to a pre-build &lt;code&gt;SqliteSaver&lt;/code&gt;, we not only need less code, but we gain new options. One of the benefits of saving the whole state to a database is that we can inspect the current workflow and rerun them after we fixed a problem. Let us see how that works.&lt;/p&gt;</description> <link>https://pythonfriday.dev/2026/05/333-inspect-and-rerun-workflows-in-langgraph/?utm_source=PythonFriday&amp;utm_medium=RSS&amp;utm_campaign=feed-syndication</link> <pubDate>Fri, 29 May 2026 20:00:00 +0200</pubDate> <source url="https://pythonfriday.dev/feed_rss_created.xml">Python Friday</source><guid isPermaLink="true">https://pythonfriday.dev/2026/05/333-inspect-and-rerun-workflows-in-langgraph/</guid> <enclosure url="https://pythonfriday.dev/assets/images/social/posts\2026\333-inspect-and-rerun-workflows-in-langgraph\333-inspect-and-rerun-workflows-in-langgraph.png" type="image/png" length="43466" /> </item> <item> <title>#332: Long-Term Memory in LangGraph</title> <description>&lt;p&gt;Last week we added &lt;a href=&#34;.https://pythonfriday.dev/2026/05/331-short-term-memory-in-langgraph/&#34;&gt;short-term memory&lt;/a&gt; to our LangGraph application. That works great as long as we stay in the same session. But when we want to keep the memory around between sessions, we need a different approach.&lt;/p&gt; &lt;p&gt;In this post we create our hand-written approach for a long-term memory solution. Do this only to understand what is going on and not to use it in production. For that purpose, we can use pre-build solutions that we explore next week.&lt;/p&gt;</description> <link>https://pythonfriday.dev/2026/05/332-long-term-memory-in-langgraph/?utm_source=PythonFriday&amp;utm_medium=RSS&amp;utm_campaign=feed-syndication</link> <pubDate>Fri, 22 May 2026 20:00:00 +0200</pubDate> <source url="https://pythonfriday.dev/feed_rss_created.xml">Python Friday</source><guid isPermaLink="true">https://pythonfriday.dev/2026/05/332-long-term-memory-in-langgraph/</guid> <enclosure url="https://pythonfriday.dev/assets/images/social/posts\2026\332-long-term-memory-in-langgraph\332-long-term-memory-in-langgraph.png" type="image/png" length="38785" /> </item> <item> <title>#331: Short-Term Memory in LangGraph</title> <description>&lt;p&gt;A while back we added a &lt;a href=&#34;.https://pythonfriday.dev/2025/10/302-create-a-llm-client-with-chat-history/&#34;&gt;chat history to our LLM client&lt;/a&gt; so that we did not need to constantly repeat ourselves. This problem is now back in our LangGraph workflows. Luckily for us, LangGraph has a simple way to add memory to our workflows. Let us see how we can do that.&lt;/p&gt;</description> <link>https://pythonfriday.dev/2026/05/331-short-term-memory-in-langgraph/?utm_source=PythonFriday&amp;utm_medium=RSS&amp;utm_campaign=feed-syndication</link> <pubDate>Fri, 15 May 2026 20:00:00 +0200</pubDate> <source url="https://pythonfriday.dev/feed_rss_created.xml">Python Friday</source><guid isPermaLink="true">https://pythonfriday.dev/2026/05/331-short-term-memory-in-langgraph/</guid> <enclosure url="https://pythonfriday.dev/assets/images/social/posts\2026\331-short-term-memory-in-langgraph\331-short-term-memory-in-langgraph.png" type="image/png" length="38646" /> </item> <item> <title>#330: Selective Approval With LangGraph</title> <description>&lt;p&gt;Last week we created a basic LangGraph example for the &lt;a href=&#34;&#34;&gt;human-in-the-loop pattern&lt;/a&gt;. We ended up with a solution that run our tools but only after we approved the run. While this works, it gets cumbersome in no time. Especially when we have many tools and most of them are safe to use.&lt;/p&gt; &lt;p&gt;In this post we use a policy-based approach that allows us to create a list of safe tools for that we do not need a manual intervention. Let us see how we can build that.&lt;/p&gt;</description> <link>https://pythonfriday.dev/2026/05/330-selective-approval-with-langgraph/?utm_source=PythonFriday&amp;utm_medium=RSS&amp;utm_campaign=feed-syndication</link> <pubDate>Fri, 08 May 2026 20:00:00 +0200</pubDate> <source url="https://pythonfriday.dev/feed_rss_created.xml">Python Friday</source><guid isPermaLink="true">https://pythonfriday.dev/2026/05/330-selective-approval-with-langgraph/</guid> <enclosure url="https://pythonfriday.dev/assets/images/social/posts\2026\330-selective-approval-with-langgraph\330-selective-approval-with-langgraph.png" type="image/png" length="41054" /> </item> <item> <title>#329: Human in the Loop With LangGraph</title> <description>&lt;p&gt;Last week we learned &lt;a href=&#34;.https://pythonfriday.dev/2026/04/328-create-tools-for-langgraph/&#34;&gt;how to build our own tools&lt;/a&gt; to use in LangGraph. Sometimes those tools could be dangerous, and we want to approve their usage before they run. For that we can use the &lt;strong&gt;Human-in-the-Loop (HITL)&lt;/strong&gt; pattern.&lt;/p&gt;</description> <link>https://pythonfriday.dev/2026/05/329-human-in-the-loop-with-langgraph/?utm_source=PythonFriday&amp;utm_medium=RSS&amp;utm_campaign=feed-syndication</link> <pubDate>Fri, 01 May 2026 20:00:00 +0200</pubDate> <source url="https://pythonfriday.dev/feed_rss_created.xml">Python Friday</source><guid isPermaLink="true">https://pythonfriday.dev/2026/05/329-human-in-the-loop-with-langgraph/</guid> <enclosure url="https://pythonfriday.dev/assets/images/social/posts\2026\329-human-in-the-loop-with-langgraph\329-human-in-the-loop-with-langgraph.png" type="image/png" length="38292" /> </item> <item> <title>#328: Create Tools for LangGraph</title> <description>&lt;p&gt;LangGraph gets interesting as soon as we start to integrate it with our tasks. For that we need custom tools so that the LLM can interact with our data. Let us see how we can create our own tools and use them in LangGraph.&lt;/p&gt;</description> <link>https://pythonfriday.dev/2026/04/328-create-tools-for-langgraph/?utm_source=PythonFriday&amp;utm_medium=RSS&amp;utm_campaign=feed-syndication</link> <pubDate>Fri, 24 Apr 2026 20:00:00 +0200</pubDate> <source url="https://pythonfriday.dev/feed_rss_created.xml">Python Friday</source><guid isPermaLink="true">https://pythonfriday.dev/2026/04/328-create-tools-for-langgraph/</guid> <enclosure url="https://pythonfriday.dev/assets/images/social/posts\2026\328-create-tools-for-langgraph\328-create-tools-for-langgraph.png" type="image/png" length="36893" /> </item> <item> <title>#327: Visualise the Graph in LangGraph</title> <description>&lt;p&gt;The more complex our control flow in our LangGraph application, the harder it is to understand what is going on. Luckily for us, we have multiple ways to visualise our graphs. Let us find out how we can do that.&lt;/p&gt;</description> <link>https://pythonfriday.dev/2026/04/327-visualise-the-graph-in-langgraph/?utm_source=PythonFriday&amp;utm_medium=RSS&amp;utm_campaign=feed-syndication</link> <pubDate>Fri, 17 Apr 2026 20:00:00 +0200</pubDate> <source url="https://pythonfriday.dev/feed_rss_created.xml">Python Friday</source><guid isPermaLink="true">https://pythonfriday.dev/2026/04/327-visualise-the-graph-in-langgraph/</guid> <enclosure url="https://pythonfriday.dev/assets/images/social/posts\2026\327-visualise-the-graph-in-langgraph\327-visualise-the-graph-in-langgraph.png" type="image/png" length="34389" /> </item> <item> <title>#326: Control Flow in LangGraph</title> <description>&lt;p&gt;Last week, we &lt;a href=&#34;.https://pythonfriday.dev/2026/04/325-first-steps-with-langgraph/&#34;&gt;created a simple LangGraph application&lt;/a&gt; as our starting point. In this post, we will look at different ways to manage control flow and how nodes can interact with each other. While this sounds even more boring than our last post, here is where things start to get interesting. &lt;/p&gt;</description> <link>https://pythonfriday.dev/2026/04/326-control-flow-in-langgraph/?utm_source=PythonFriday&amp;utm_medium=RSS&amp;utm_campaign=feed-syndication</link> <pubDate>Fri, 10 Apr 2026 20:00:00 +0200</pubDate> <source url="https://pythonfriday.dev/feed_rss_created.xml">Python Friday</source><guid isPermaLink="true">https://pythonfriday.dev/2026/04/326-control-flow-in-langgraph/</guid> <enclosure url="https://pythonfriday.dev/assets/images/social/posts\2026\326-control-flow-in-langgraph\326-control-flow-in-langgraph.png" type="image/png" length="34413" /> </item> <item> <title>#325: First Steps With LangGraph</title> <description>&lt;p&gt;Agents in LangChain allow us to use the LLM as a reasoning engine and take actions based on their abilities. We used them successfully with our &lt;a href=&#34;.https://pythonfriday.dev/2025/11/304-chat-with-csv-files-in-langchain/&#34;&gt;CSV files&lt;/a&gt; or when we &lt;a href=&#34;.https://pythonfriday.dev/2025/11/305-chat-with-a-database-in-langchain/&#34;&gt;queried a database&lt;/a&gt;. However, while we get a lot of flexibility, we often wish for a middle ground that gives us not only flexibility, but a bit more control on what is going on. &lt;/p&gt; &lt;p&gt;We can use &lt;strong&gt;&lt;a href=&#34;https://www.langchain.com/langgraph&#34;&gt;LangGraph&lt;/a&gt;&lt;/strong&gt; for this purpose. This low-level orchestration framework allows us to build simple agents or direct a large network of independent agents to solve problems for us. Let us get started with the most basic part and add from there.&lt;/p&gt;</description> <link>https://pythonfriday.dev/2026/04/325-first-steps-with-langgraph/?utm_source=PythonFriday&amp;utm_medium=RSS&amp;utm_campaign=feed-syndication</link> <pubDate>Fri, 03 Apr 2026 20:00:00 +0200</pubDate> <source url="https://pythonfriday.dev/feed_rss_created.xml">Python Friday</source><guid isPermaLink="true">https://pythonfriday.dev/2026/04/325-first-steps-with-langgraph/</guid> <enclosure url="https://pythonfriday.dev/assets/images/social/posts\2026\325-first-steps-with-langgraph\325-first-steps-with-langgraph.png" type="image/png" length="36385" /> </item> <item> <title>#324: Add a UI to the Python Friday RAG</title> <description>&lt;p&gt;While the command line Python Friday RAG is nice, a user interface that looks more like other chatbots would be a nice enhancement. Luckily for us, there are a few tools we can use that do not need much code. Let us see how that can look like.&lt;/p&gt;</description> <link>https://pythonfriday.dev/2026/03/324-add-a-ui-to-the-python-friday-rag/?utm_source=PythonFriday&amp;utm_medium=RSS&amp;utm_campaign=feed-syndication</link> <pubDate>Fri, 27 Mar 2026 20:00:00 +0100</pubDate> <source url="https://pythonfriday.dev/feed_rss_created.xml">Python Friday</source><guid isPermaLink="true">https://pythonfriday.dev/2026/03/324-add-a-ui-to-the-python-friday-rag/</guid> <enclosure url="https://pythonfriday.dev/assets/images/social/posts\2026\324-add-a-ui-to-the-python-friday-rag\324-add-a-ui-to-the-python-friday-rag.png" type="image/png" length="38747" /> </item> <item> <title>#323: Add the LLM to the Python Friday RAG</title> <description>&lt;p&gt;Last week we turned blog posts written in &lt;a href=&#34;.https://pythonfriday.dev/2026/03/322-embed-markdown-for-a-python-friday-rag/&#34;&gt;Markdown into embeddings in Chroma&lt;/a&gt;. That gives us the data that we need for our Python Friday RAG (Retrieval Augmented Generation). In this post we reuse the &lt;a href=&#34;.https://pythonfriday.dev/2025/10/301-introducing-langchain-for-ai-applications/&#34;&gt;LangChain configuration&lt;/a&gt; that helped us in various posts to connect our script to a local LLM running inside LM Studio. &lt;/p&gt;</description> <link>https://pythonfriday.dev/2026/03/323-add-the-llm-to-the-python-friday-rag/?utm_source=PythonFriday&amp;utm_medium=RSS&amp;utm_campaign=feed-syndication</link> <pubDate>Fri, 20 Mar 2026 20:00:00 +0100</pubDate> <source url="https://pythonfriday.dev/feed_rss_created.xml">Python Friday</source><guid isPermaLink="true">https://pythonfriday.dev/2026/03/323-add-the-llm-to-the-python-friday-rag/</guid> <enclosure url="https://pythonfriday.dev/assets/images/social/posts\2026\323-add-the-llm-to-the-python-friday-rag\323-add-the-llm-to-the-python-friday-rag.png" type="image/png" length="38505" /> </item> <item> <title>#322: Embed Markdown for a Python Friday RAG</title> <description>&lt;p&gt;After we found with &lt;a href=&#34;.https://pythonfriday.dev/2026/02/320-store-embeddings-in-chromadb/&#34;&gt;Chroma&lt;/a&gt; a flexible vector store, we have everything together to build a RAG (Retrieval Augmented Generation) for the Python Friday blog that uses LangChain and a local LM Studio.&lt;/p&gt; &lt;p&gt;In this post we focus on extracting metadata from the Markdown files I use in this &lt;a href=&#34;.https://pythonfriday.dev/2024/10/248-mkdocs-for-a-blog/&#34;&gt;MkDocs Material powered blog&lt;/a&gt;. We split the Markdown into useful chunks and turn the metadata for the blog post into a metadata dictionary to use with Chroma. Let us explore how we can do this first part.&lt;/p&gt;</description> <link>https://pythonfriday.dev/2026/03/322-embed-markdown-for-a-python-friday-rag/?utm_source=PythonFriday&amp;utm_medium=RSS&amp;utm_campaign=feed-syndication</link> <pubDate>Fri, 13 Mar 2026 20:00:00 +0100</pubDate> <source url="https://pythonfriday.dev/feed_rss_created.xml">Python Friday</source><guid isPermaLink="true">https://pythonfriday.dev/2026/03/322-embed-markdown-for-a-python-friday-rag/</guid> <enclosure url="https://pythonfriday.dev/assets/images/social/posts\2026\322-embed-markdown-for-a-python-friday-rag\322-embed-markdown-for-a-python-friday-rag.png" type="image/png" length="42885" /> </item> <item> <title>#321: Working With Metadata in Chroma</title> <description>&lt;p&gt;When we use the search function of Chroma, we can ask for cats and find documents related to felines. While this is great to get all cat related content, it may match on too many documents. This &#34;fuzzy&#34; search is a feature made possible by the embedding of our search term and how vectors relate to each other. But that also means we cannot simply get a stricter mode if we need one. &lt;/p&gt; &lt;p&gt;Chroma offers us an addition to the query method that allows us to filter based on the metadata of a document. That way we can combine the &#34;fuzzy&#34; vector search with a strict search based on metadata. Let us see how we can use it with our data.&lt;/p&gt;</description> <link>https://pythonfriday.dev/2026/03/321-working-with-metadata-in-chroma/?utm_source=PythonFriday&amp;utm_medium=RSS&amp;utm_campaign=feed-syndication</link> <pubDate>Fri, 06 Mar 2026 20:00:00 +0100</pubDate> <source url="https://pythonfriday.dev/feed_rss_created.xml">Python Friday</source><guid isPermaLink="true">https://pythonfriday.dev/2026/03/321-working-with-metadata-in-chroma/</guid> <enclosure url="https://pythonfriday.dev/assets/images/social/posts\2026\321-working-with-metadata-in-chroma\321-working-with-metadata-in-chroma.png" type="image/png" length="37517" /> </item> </channel> </rss>