<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Langflow on Jamie Ede</title>
    <link>https://www.jamieede.com/tags/langflow/</link>
    <description>Recent content in Langflow on Jamie Ede</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Fri, 22 May 2026 16:00:00 +0000</lastBuildDate>
    <atom:link href="https://www.jamieede.com/tags/langflow/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Self-hosting Langflow behind a public static site</title>
      <link>https://www.jamieede.com/posts/self-hosting-langflow-behind-static-site/</link>
      <pubDate>Fri, 22 May 2026 16:00:00 +0000</pubDate>
      <guid>https://www.jamieede.com/posts/self-hosting-langflow-behind-static-site/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.jamieede.com/astra-chat&#34; &gt;Astra Docs Chat&lt;/a&gt;&#xA; is public on Cloudflare Pages. Langflow runs on a &lt;strong&gt;private&lt;/strong&gt; instance: reachable from the Pages Function proxy, not from browsers directly.&lt;/p&gt;&#xA;&lt;p&gt;This post covers the ops shape I use: Dockge/compose, PostgreSQL persistence, environment variables, CORS as belt-and-braces, and what you expose vs keep internal.&lt;/p&gt;&#xA;&lt;p&gt;Series: &lt;a href=&#34;https://www.jamieede.com/posts/building-astra-docs-chat-rag-over-datastax-on-langflow-and-cloudflare-pages/&#34; &gt;Building Astra Docs Chat&lt;/a&gt;&#xA; · &lt;a href=&#34;https://www.jamieede.com/posts/proxying-langflow-cloudflare-pages-functions/&#34; &gt;Proxy pattern&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;Public chat: &lt;a href=&#34;https://www.jamieede.com/astra-chat&#34; &gt;Astra Docs Chat&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;h2 id=&#34;topology&#34; class=&#34;anchor-link&#34;&gt;&lt;a href=&#34;#topology&#34;&gt;Topology&lt;span class=&#34;pilcrow&#34;&gt;&amp;nbsp;¶&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Internet → jamieede.com (Hugo + Pages Functions)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;              ↓ HTTPS + x-api-key (server-side only)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;           Langflow (private host / tunnel; URL not in HTML or JS)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;              ↓&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;           OpenAI (embeddings), DeepSeek (chat), Astra DB (vectors)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Visitors never receive the Langflow hostname in HTML or JS. DevTools on &lt;code&gt;/astra-chat&lt;/code&gt; should show only same-origin &lt;code&gt;/api/astra-chat&lt;/code&gt; (&lt;a href=&#34;https://www.jamieede.com/posts/proxying-langflow-cloudflare-pages-functions/&#34; &gt;proxy verification&lt;/a&gt;&#xA;).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Swapping DeepSeek in for OpenAI chat in a Langflow RAG flow</title>
      <link>https://www.jamieede.com/posts/deepseek-instead-of-openai-chat-langflow-rag/</link>
      <pubDate>Fri, 22 May 2026 14:00:00 +0000</pubDate>
      <guid>https://www.jamieede.com/posts/deepseek-instead-of-openai-chat-langflow-rag/</guid>
      <description>&lt;p&gt;The Langflow DataStax RAG template ships with an OpenAI chat node. For &lt;a href=&#34;https://www.jamieede.com/astra-chat&#34; &gt;Astra Docs Chat&lt;/a&gt;&#xA;, I replaced it with &lt;strong&gt;DeepSeek&lt;/strong&gt; for streaming answers: cheaper at volume, acceptable on technical Q&amp;amp;A over retrieved docs.&lt;/p&gt;&#xA;&lt;p&gt;Context: &lt;a href=&#34;https://www.jamieede.com/posts/building-astra-docs-chat-rag-over-datastax-on-langflow-and-cloudflare-pages/&#34; &gt;Building Astra Docs Chat&lt;/a&gt;&#xA; · &lt;a href=&#34;https://www.jamieede.com/posts/langflow-rag-astra-db-ingest-and-chat-flows/&#34; &gt;Langflow chat flow&lt;/a&gt;&#xA; · &lt;a href=&#34;https://www.jamieede.com/posts/astra-db-vector-store-datastax-docs-rag/&#34; &gt;Astra DB vector store&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;Embeddings stayed on OpenAI &lt;code&gt;text-embedding-3-small&lt;/code&gt;: only the &lt;strong&gt;generation&lt;/strong&gt; step changed. See &lt;a href=&#34;https://www.jamieede.com/posts/chunking-embedding-technical-docs-rag/&#34; &gt;chunking and embedding post&lt;/a&gt;&#xA; for why those stay paired.&lt;/p&gt;&#xA;&lt;p&gt;Try it: &lt;a href=&#34;https://www.jamieede.com/astra-chat&#34; &gt;Astra Docs Chat&lt;/a&gt;&#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Using Astra DB as the vector store for a DataStax docs RAG chat</title>
      <link>https://www.jamieede.com/posts/astra-db-vector-store-datastax-docs-rag/</link>
      <pubDate>Fri, 22 May 2026 12:00:00 +0000</pubDate>
      <guid>https://www.jamieede.com/posts/astra-db-vector-store-datastax-docs-rag/</guid>
      <description>&lt;p&gt;For &lt;a href=&#34;https://www.jamieede.com/astra-chat&#34; &gt;Astra Docs Chat&lt;/a&gt;&#xA;, the subject matter &lt;em&gt;is&lt;/em&gt; Astra DB Serverless: using Astra as the vector store was the natural fit, and Langflow&amp;rsquo;s DataStax bundle already wired up ingest and search components.&lt;/p&gt;&#xA;&lt;p&gt;Overview: &lt;a href=&#34;https://www.jamieede.com/posts/building-astra-docs-chat-rag-over-datastax-on-langflow-and-cloudflare-pages/&#34; &gt;Building Astra Docs Chat&lt;/a&gt;&#xA; · &lt;a href=&#34;https://www.jamieede.com/posts/langflow-rag-astra-db-ingest-and-chat-flows/&#34; &gt;Langflow flows&lt;/a&gt;&#xA; · &lt;a href=&#34;https://www.jamieede.com/posts/batch-ingest-markdown-langflow-api/&#34; &gt;Batch ingest&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;Try it: &lt;a href=&#34;https://www.jamieede.com/astra-chat&#34; &gt;Astra Docs Chat&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;h2 id=&#34;collection-setup&#34; class=&#34;anchor-link&#34;&gt;&lt;a href=&#34;#collection-setup&#34;&gt;Collection setup&lt;span class=&#34;pilcrow&#34;&gt;&amp;nbsp;¶&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Production values in the Langflow flow:&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Field&lt;/th&gt;&#xA;          &lt;th&gt;Value&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Collection name&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;datastax_astra_docs&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Keyspace&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;default_keyspace&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Same collection&lt;/td&gt;&#xA;          &lt;td&gt;Ingest flow writes; chat flow reads&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;First ingest into an &lt;strong&gt;empty&lt;/strong&gt; collection is simplest. Re-runs append unless you configure deletion/upsert fields in the AstraDB component.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Chunking and embedding technical documentation for RAG</title>
      <link>https://www.jamieede.com/posts/chunking-embedding-technical-docs-rag/</link>
      <pubDate>Fri, 22 May 2026 10:00:00 +0000</pubDate>
      <guid>https://www.jamieede.com/posts/chunking-embedding-technical-docs-rag/</guid>
      <description>&lt;p&gt;&amp;ldquo;271 pages&amp;rdquo; is not &amp;ldquo;271 vectors.&amp;rdquo; Split settings and embedding model choice determine whether &lt;a href=&#34;https://www.jamieede.com/astra-chat&#34; &gt;Astra Docs Chat&lt;/a&gt;&#xA; retrieves the right paragraph when you ask about PCU groups, hybrid search, or collection APIs.&lt;/p&gt;&#xA;&lt;p&gt;Context: &lt;a href=&#34;https://www.jamieede.com/posts/building-astra-docs-chat-rag-over-datastax-on-langflow-and-cloudflare-pages/&#34; &gt;Building Astra Docs Chat&lt;/a&gt;&#xA; · &lt;a href=&#34;https://www.jamieede.com/posts/langflow-rag-astra-db-ingest-and-chat-flows/&#34; &gt;Langflow ingest flow&lt;/a&gt;&#xA; · &lt;a href=&#34;https://www.jamieede.com/posts/batch-ingest-markdown-langflow-api/&#34; &gt;Batch ingest&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;Try retrieval in production: &lt;a href=&#34;https://www.jamieede.com/astra-chat&#34; &gt;Astra Docs Chat&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;h2 id=&#34;shape-of-the-corpus&#34; class=&#34;anchor-link&#34;&gt;&lt;a href=&#34;#shape-of-the-corpus&#34;&gt;Shape of the corpus&lt;span class=&#34;pilcrow&#34;&gt;&amp;nbsp;¶&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Each file in my local &lt;code&gt;pages/&lt;/code&gt; export is trafilatura-extracted markdown from &lt;a href=&#34;https://docs.datastax.com/en/astra-db-serverless/&#34; target=&#34;_blank&#34; &gt;Astra DB Serverless docs&lt;/a&gt;&#xA;:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Re-ingesting a RAG doc corpus when upstream docs change</title>
      <link>https://www.jamieede.com/posts/re-ingesting-rag-doc-corpus-when-docs-change/</link>
      <pubDate>Thu, 21 May 2026 16:00:00 +0000</pubDate>
      <guid>https://www.jamieede.com/posts/re-ingesting-rag-doc-corpus-when-docs-change/</guid>
      <description>&lt;p&gt;The &lt;a href=&#34;https://www.jamieede.com/astra-chat&#34; &gt;Astra Docs Chat&lt;/a&gt;&#xA; corpus was loaded once. DataStax ships doc updates regularly; v1 does not auto-refresh. This post outlines a repeatable re-ingest strategy when the markdown export changes: what to detect, how to use existing resume tooling, and when full rebuild beats incremental upsert.&lt;/p&gt;&#xA;&lt;p&gt;Series: &lt;a href=&#34;https://www.jamieede.com/posts/building-astra-docs-chat-rag-over-datastax-on-langflow-and-cloudflare-pages/&#34; &gt;Building Astra Docs Chat&lt;/a&gt;&#xA; · &lt;a href=&#34;https://www.jamieede.com/posts/batch-ingest-markdown-langflow-api/&#34; &gt;Batch ingest script&lt;/a&gt;&#xA; · &lt;a href=&#34;https://www.jamieede.com/posts/chunking-embedding-technical-docs-rag/&#34; &gt;Chunking and embedding&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;Try the chat: &lt;a href=&#34;https://www.jamieede.com/astra-chat&#34; &gt;Astra Docs Chat&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;h2 id=&#34;when-manual-re-ingest-is-enough&#34; class=&#34;anchor-link&#34;&gt;&lt;a href=&#34;#when-manual-re-ingest-is-enough&#34;&gt;When manual re-ingest is enough&lt;span class=&#34;pilcrow&#34;&gt;&amp;nbsp;¶&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;For a personal reference tool, running ingest after major doc releases (or when answers feel stale) may be sufficient. No cron, no diff pipeline, just:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Building a streaming chat UI in Hugo without React or an iframe</title>
      <link>https://www.jamieede.com/posts/streaming-chat-ui-hugo-without-react/</link>
      <pubDate>Thu, 21 May 2026 14:00:00 +0000</pubDate>
      <guid>https://www.jamieede.com/posts/streaming-chat-ui-hugo-without-react/</guid>
      <description>&lt;p&gt;Langflow ships an embed widget. For &lt;a href=&#34;https://www.jamieede.com/astra-chat&#34; &gt;Astra Docs Chat&lt;/a&gt;&#xA; I wanted a full page that matches the rest of jamieede.com: same header, same typography, no iframe chrome. This post covers the Hugo layout and the vanilla JavaScript that streams markdown answers from &lt;code&gt;/api/astra-chat&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Series context: &lt;a href=&#34;https://www.jamieede.com/posts/building-astra-docs-chat-rag-over-datastax-on-langflow-and-cloudflare-pages/&#34; &gt;Building Astra Docs Chat&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;Related: &lt;a href=&#34;https://www.jamieede.com/posts/proxying-langflow-cloudflare-pages-functions/&#34; &gt;Proxy&lt;/a&gt;&#xA; · &lt;a href=&#34;https://www.jamieede.com/posts/langflow-rag-astra-db-ingest-and-chat-flows/&#34; &gt;Langflow chat flow&lt;/a&gt;&#xA; · &lt;a href=&#34;https://www.jamieede.com/posts/deepseek-instead-of-openai-chat-langflow-rag/&#34; &gt;DeepSeek swap&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;The API contract this UI expects is documented in &lt;a href=&#34;https://www.jamieede.com/posts/proxying-langflow-cloudflare-pages-functions/&#34; &gt;Proxying Langflow from Cloudflare Pages Functions&lt;/a&gt;&#xA;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Docs-only guardrails when RAG retrieval finds nothing</title>
      <link>https://www.jamieede.com/posts/docs-only-guardrails-empty-rag-retrieval/</link>
      <pubDate>Thu, 21 May 2026 12:00:00 +0000</pubDate>
      <guid>https://www.jamieede.com/posts/docs-only-guardrails-empty-rag-retrieval/</guid>
      <description>&lt;p&gt;When &lt;a href=&#34;https://www.jamieede.com/astra-chat&#34; &gt;Astra Docs Chat&lt;/a&gt;&#xA; cannot find relevant chunks in Astra DB, the model may still answer from general knowledge: confident, plausible, and sometimes wrong for Astra-specific APIs. The parent post flagged tightening this with a stricter &amp;ldquo;docs only&amp;rdquo; prompt. This post covers practical guardrails at the prompt, retrieval, flow, and UX layers.&lt;/p&gt;&#xA;&lt;p&gt;Context: &lt;a href=&#34;https://www.jamieede.com/posts/building-astra-docs-chat-rag-over-datastax-on-langflow-and-cloudflare-pages/&#34; &gt;Building Astra Docs Chat&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;Related: &lt;a href=&#34;https://www.jamieede.com/posts/langflow-rag-astra-db-ingest-and-chat-flows/&#34; &gt;Langflow chat flow&lt;/a&gt;&#xA; · &lt;a href=&#34;https://www.jamieede.com/posts/streaming-chat-ui-hugo-without-react/&#34; &gt;Streaming chat UI&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Status:&lt;/strong&gt; planned for v2; not deployed in current production chat.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Langflow RAG over Astra DB: ingest and chat flows</title>
      <link>https://www.jamieede.com/posts/langflow-rag-astra-db-ingest-and-chat-flows/</link>
      <pubDate>Wed, 20 May 2026 16:00:00 +0000</pubDate>
      <guid>https://www.jamieede.com/posts/langflow-rag-astra-db-ingest-and-chat-flows/</guid>
      <description>&lt;p&gt;The overview of &lt;a href=&#34;https://www.jamieede.com/astra-chat&#34; &gt;Astra Docs Chat&lt;/a&gt;&#xA; names Langflow once and moves on: ingest graph, chat graph, done. This post opens the hood: component chains, two published endpoints, where API keys live, and why orchestration stayed in Langflow instead of a Cloudflare Worker.&lt;/p&gt;&#xA;&lt;p&gt;Start here if you missed the big picture: &lt;a href=&#34;https://www.jamieede.com/posts/building-astra-docs-chat-rag-over-datastax-on-langflow-and-cloudflare-pages/&#34; &gt;Building Astra Docs Chat&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;Related: &lt;a href=&#34;https://www.jamieede.com/posts/batch-ingest-markdown-langflow-api/&#34; &gt;Batch ingest&lt;/a&gt;&#xA; · &lt;a href=&#34;https://www.jamieede.com/posts/proxying-langflow-cloudflare-pages-functions/&#34; &gt;Proxy&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;h2 id=&#34;two-endpoints-one-product&#34; class=&#34;anchor-link&#34;&gt;&lt;a href=&#34;#two-endpoints-one-product&#34;&gt;Two endpoints, one product&lt;span class=&#34;pilcrow&#34;&gt;&amp;nbsp;¶&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Endpoint&lt;/th&gt;&#xA;          &lt;th&gt;Purpose&lt;/th&gt;&#xA;          &lt;th&gt;Called by&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;datastax-astra-ingest&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;File → vectors in Astra DB&lt;/td&gt;&#xA;          &lt;td&gt;Local batch ingest script (&lt;a href=&#34;https://www.jamieede.com/posts/batch-ingest-markdown-langflow-api/&#34; &gt;batch ingest post&lt;/a&gt;&#xA;)&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;datastax-astra-chat&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Question → retrieve → LLM answer&lt;/td&gt;&#xA;          &lt;td&gt;Pages Function &lt;code&gt;/api/astra-chat&lt;/code&gt; (&lt;a href=&#34;https://www.jamieede.com/posts/proxying-langflow-cloudflare-pages-functions/&#34; &gt;proxy post&lt;/a&gt;&#xA;)&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;Splitting ingest and chat keeps the public surface minimal. Visitors never trigger file upload or embedding: only the retrieval + generation path.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Batch-ingesting hundreds of markdown files through Langflow</title>
      <link>https://www.jamieede.com/posts/batch-ingest-markdown-langflow-api/</link>
      <pubDate>Wed, 20 May 2026 14:00:00 +0000</pubDate>
      <guid>https://www.jamieede.com/posts/batch-ingest-markdown-langflow-api/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.jamieede.com/astra-chat&#34; &gt;Astra Docs Chat&lt;/a&gt;&#xA; only works if the documentation already lives in a vector store. The parent post summarised that as a one-time batch job: export markdown, run an ingest flow per file, resume on failure. This post is the Langflow API pattern behind that summary.&lt;/p&gt;&#xA;&lt;p&gt;The crawl and batch scripts live on my machine only (not published as a repo). What follows is enough to build your own ingest loop; filenames and flags match what I run locally.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Proxying Langflow from Cloudflare Pages Functions</title>
      <link>https://www.jamieede.com/posts/proxying-langflow-cloudflare-pages-functions/</link>
      <pubDate>Wed, 20 May 2026 12:00:00 +0000</pubDate>
      <guid>https://www.jamieede.com/posts/proxying-langflow-cloudflare-pages-functions/</guid>
      <description>&lt;p&gt;When I built &lt;a href=&#34;https://www.jamieede.com/astra-chat&#34; &gt;Astra Docs Chat&lt;/a&gt;&#xA;, the overview post described the stack in one paragraph: Hugo page on the front, Langflow and Astra DB behind it. The piece that makes that safe for a &lt;strong&gt;public&lt;/strong&gt; site is small and easy to skip over: a Cloudflare Pages Function at &lt;code&gt;/api/astra-chat&lt;/code&gt; that proxies chat requests to a private Langflow instance.&lt;/p&gt;&#xA;&lt;p&gt;This post is that piece in detail: why the browser never talks to Langflow directly, what the proxy validates, how streaming is translated, and how to check that secrets stay server-side.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Building IBM DataStax Astra Docs Chat: asking DataStax docs questions in plain English</title>
      <link>https://www.jamieede.com/posts/building-astra-docs-chat-rag-over-datastax-on-langflow-and-cloudflare-pages/</link>
      <pubDate>Wed, 20 May 2026 10:00:00 +0000</pubDate>
      <guid>https://www.jamieede.com/posts/building-astra-docs-chat-rag-over-datastax-on-langflow-and-cloudflare-pages/</guid>
      <description>&lt;p&gt;After working with distributed databases at IBM DataStax, I kept doing the same thing: open five doc tabs, search, skim, repeat. The official &lt;strong&gt;Astra DB Serverless&lt;/strong&gt; documentation is thorough, but there is just a lot of it.&lt;/p&gt;&#xA;&lt;p&gt;I wanted a single place to ask normal questions (&lt;em&gt;How do I create a collection?&lt;/em&gt;, &lt;em&gt;What are PCU groups?&lt;/em&gt;, &lt;em&gt;How does hybrid search work?&lt;/em&gt;) and get answers grounded in the real docs, not a model&amp;rsquo;s best guess from training data.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
