<?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>DEV Community: retrovirusretro</title>
    <description>The latest articles on DEV Community by retrovirusretro (@retrovirusretro).</description>
    <link>https://dev.to/retrovirusretro</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3942939%2F9b65b089-33dc-4829-8ebf-645bfe014bc1.png</url>
      <title>DEV Community: retrovirusretro</title>
      <link>https://dev.to/retrovirusretro</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/retrovirusretro"/>
    <language>en</language>
    <item>
      <title>The RAG tool that auto-generates Q&amp;A pairs from your documents</title>
      <dc:creator>retrovirusretro</dc:creator>
      <pubDate>Wed, 20 May 2026 21:31:46 +0000</pubDate>
      <link>https://dev.to/retrovirusretro/the-rag-tool-that-auto-generates-qa-pairs-from-your-documents-1o2l</link>
      <guid>https://dev.to/retrovirusretro/the-rag-tool-that-auto-generates-qa-pairs-from-your-documents-1o2l</guid>
      <description>&lt;p&gt;Title:&lt;/p&gt;

&lt;p&gt;The RAG tool that auto-generates Q&amp;amp;A pairs from your documents&lt;br&gt;
Tags:&lt;/p&gt;

&lt;p&gt;ai, docker, ollama, selfhosted&lt;br&gt;
Body:&lt;/p&gt;

&lt;p&gt;Most RAG tools split your documents into chunks and embed them. FastGPT does something smarter: it uses an LLM to read your documents and generate question-answer pairs automatically.&lt;/p&gt;

&lt;p&gt;27K GitHub stars. Visual workflow builder. Almost no English integration content. Here's the guide.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is FastGPT?
&lt;/h2&gt;

&lt;p&gt;FastGPT is an LLM-based knowledge platform with two standout features:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. QA-pair extraction&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instead of naive chunking, FastGPT reads your document with an LLM and extracts pairs like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Q: What is the return window? → A: 30 days from purchase with original receipt.&lt;/li&gt;
&lt;li&gt;Q: Which payment methods are accepted? → A: Visa, Mastercard, PayPal.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These pairs are what gets embedded and retrieved. At query time, question matches question — dramatically more accurate than matching a question against a random document chunk.&lt;/p&gt;

&lt;p&gt;Enable it: Dataset → Upload → Processing Mode → &lt;strong&gt;QA Split&lt;/strong&gt; (not Simple Split).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Visual workflow builder&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;FastGPT has a node editor for building branching RAG pipelines without code. Classify intent → route to FAQ or document search → format output. Each step is a configurable node.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚠️ License Notice
&lt;/h2&gt;

&lt;p&gt;FastGPT uses its own license that &lt;strong&gt;prohibits reselling it as a SaaS service to others.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;✅ Self-hosted for your own team — OK&lt;br&gt;
✅ As a backend component in your own product — OK&lt;br&gt;
❌ Selling FastGPT as a service to customers — not permitted&lt;/p&gt;

&lt;p&gt;If you need commercial freedom, use MaxKB (Apache 2.0) or WeKnora (MIT) instead.&lt;/p&gt;




&lt;h2&gt;
  
  
  Setup
&lt;/h2&gt;

&lt;p&gt;Clone the repo, copy &lt;code&gt;.env.example&lt;/code&gt; to &lt;code&gt;.env&lt;/code&gt;, then &lt;code&gt;docker compose up -d&lt;/code&gt;. Open &lt;code&gt;localhost:3000&lt;/code&gt; → &lt;code&gt;root / 1234&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;FastGPT needs MongoDB (conversation storage) and PostgreSQL with pgvector (vector search). Both are included in the docker-compose.&lt;/p&gt;

&lt;p&gt;Full docker-compose: &lt;a href="https://github.com/retrovirusretro/fastgpt-production-stack" rel="noopener noreferrer"&gt;fastgpt-production-stack&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Connecting Ollama
&lt;/h2&gt;

&lt;p&gt;FastGPT uses the OpenAI-compatible API that Ollama provides at &lt;code&gt;/v1&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Settings → AI Models → Add:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Provider: OpenAI Compatible&lt;/li&gt;
&lt;li&gt;Base URL: &lt;code&gt;http://ollama:11434/v1&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;API Key: &lt;code&gt;ollama&lt;/code&gt; (any non-empty string works)&lt;/li&gt;
&lt;li&gt;Model name: &lt;code&gt;llama3&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  QA-Pair Extraction vs Simple Chunking
&lt;/h2&gt;

&lt;p&gt;This is FastGPT's real advantage. A concrete example:&lt;/p&gt;

&lt;p&gt;Your document says: &lt;em&gt;"Returns are accepted within 30 days of the original purchase date, provided the item is in original condition with all packaging."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Simple chunking&lt;/strong&gt; embeds that sentence as-is. When a user asks "Can I return something after 3 weeks?" the retrieval depends on semantic similarity between the question and that chunk.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;QA-pair extraction&lt;/strong&gt; creates: Q: "What is the return deadline?" → A: "30 days from purchase." Now the question directly matches a question — much higher retrieval confidence.&lt;/p&gt;

&lt;p&gt;For knowledge bases where accuracy matters more than speed, this technique consistently outperforms naive chunking.&lt;/p&gt;




&lt;h2&gt;
  
  
  FastGPT vs the Alternatives
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;FastGPT&lt;/th&gt;
&lt;th&gt;WeKnora&lt;/th&gt;
&lt;th&gt;MaxKB&lt;/th&gt;
&lt;th&gt;RAGFlow&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;QA-pair extraction&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Visual workflow&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;License&lt;/td&gt;
&lt;td&gt;Custom*&lt;/td&gt;
&lt;td&gt;MIT&lt;/td&gt;
&lt;td&gt;Apache 2.0&lt;/td&gt;
&lt;td&gt;Apache 2.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Setup complexity&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;Easy&lt;/td&gt;
&lt;td&gt;Hard&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PDF table parsing&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;td&gt;Basic&lt;/td&gt;
&lt;td&gt;Basic&lt;/td&gt;
&lt;td&gt;Excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Pick FastGPT when:&lt;/strong&gt; you want QA-pair extraction for maximum accuracy, or you need a visual pipeline builder for complex routing logic.&lt;/p&gt;




&lt;h2&gt;
  
  
  Production Deployment
&lt;/h2&gt;

&lt;p&gt;FastGPT needs Nginx + SSL for a real domain. The production docker-compose with Nginx config and Let's Encrypt instructions:&lt;/p&gt;

&lt;p&gt;→ &lt;a href="https://github.com/retrovirusretro/fastgpt-production-stack" rel="noopener noreferrer"&gt;fastgpt-production-stack&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Full Series
&lt;/h2&gt;

&lt;p&gt;This is the last article in the Chinese AI tools series:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://dev.to/retrovirusretro"&gt;5 Chinese AI tools the West is ignoring&lt;/a&gt; — start here&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/retrovirusretro"&gt;WeKnora — Tencent's RAG framework&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/retrovirusretro"&gt;MaxKB — simplest self-hosted RAG&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/retrovirusretro"&gt;DB-GPT — chat with your database&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Meta repo with Docker Compose + Ollama + n8n for all five:&lt;br&gt;
→ &lt;a href="https://github.com/retrovirusretro/chinese-ai-tools-english-guide" rel="noopener noreferrer"&gt;chinese-ai-tools-english-guide&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;QA-pair extraction is underrated. If you're building a customer support bot or internal knowledge base, try it once — going back to naive chunking feels wrong after.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>docker</category>
      <category>ollama</category>
      <category>selfhosted</category>
    </item>
    <item>
      <title>Chat with your database in plain English — locally, for free</title>
      <dc:creator>retrovirusretro</dc:creator>
      <pubDate>Wed, 20 May 2026 21:28:03 +0000</pubDate>
      <link>https://dev.to/retrovirusretro/chat-with-your-database-in-plain-english-locally-for-free-2l0c</link>
      <guid>https://dev.to/retrovirusretro/chat-with-your-database-in-plain-english-locally-for-free-2l0c</guid>
      <description>&lt;p&gt;"What were our top 10 customers last quarter by revenue, as a bar chart?"&lt;/p&gt;

&lt;p&gt;DB-GPT translates that to SQL, runs it against your database, and renders the chart. No SQL knowledge required. Fully local. MIT licensed. 17K GitHub stars — almost no English content.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is DB-GPT?
&lt;/h2&gt;

&lt;p&gt;DB-GPT is an open-source framework that puts a natural language interface on top of your databases. You connect PostgreSQL, MySQL, SQLite, or others — then ask questions in plain English. It generates the SQL, executes it, and can visualize results automatically.&lt;/p&gt;

&lt;p&gt;Think Metabase meets AI, but fully self-hosted and free.&lt;/p&gt;




&lt;h2&gt;
  
  
  Supported Databases
&lt;/h2&gt;

&lt;p&gt;PostgreSQL · MySQL · MariaDB · SQLite · ClickHouse · DuckDB · Spark SQL&lt;/p&gt;




&lt;h2&gt;
  
  
  Setup
&lt;/h2&gt;

&lt;p&gt;Clone the repo, copy &lt;code&gt;.env.example&lt;/code&gt; to &lt;code&gt;.env&lt;/code&gt;, add your database connection string, then &lt;code&gt;docker compose up -d&lt;/code&gt;. Open &lt;code&gt;localhost:5670&lt;/code&gt; → &lt;code&gt;admin / admin&lt;/code&gt; → Settings → Database → Add → paste connection string.&lt;/p&gt;

&lt;p&gt;Full docker-compose: &lt;a href="https://github.com/retrovirusretro/chinese-ai-tools-english-guide" rel="noopener noreferrer"&gt;chinese-ai-tools-english-guide/tools/db-gpt&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Example Queries
&lt;/h2&gt;

&lt;p&gt;Once your database is connected:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;"Show total sales by month for the last 12 months as a bar chart"&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"Which products have inventory below 10 units?"&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"Top 5 customers by order value with their email addresses"&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"Average order fulfillment time grouped by warehouse"&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;DB-GPT generates SQL for each, runs it, returns results. Charts render automatically in the UI.&lt;/p&gt;




&lt;h2&gt;
  
  
  Connecting Ollama
&lt;/h2&gt;

&lt;p&gt;Settings → LLM Provider → Ollama → Base URL: &lt;code&gt;http://ollama:11434/v1&lt;/code&gt; → Model: &lt;code&gt;llama3&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;For best SQL accuracy use &lt;code&gt;sqlcoder&lt;/code&gt; — fine-tuned specifically for SQL generation. Pull it with &lt;code&gt;docker exec -it ollama ollama pull sqlcoder&lt;/code&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  DB-GPT vs Vanna.ai
&lt;/h2&gt;

&lt;p&gt;Both let you query databases with natural language:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;DB-GPT&lt;/th&gt;
&lt;th&gt;Vanna.ai&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;License&lt;/td&gt;
&lt;td&gt;MIT&lt;/td&gt;
&lt;td&gt;MIT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Built-in UI&lt;/td&gt;
&lt;td&gt;✅ Full app&lt;/td&gt;
&lt;td&gt;Minimal&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Charts&lt;/td&gt;
&lt;td&gt;✅ Built-in&lt;/td&gt;
&lt;td&gt;❌ External&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Visual pipeline&lt;/td&gt;
&lt;td&gt;✅ AWEL&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Self-hosted&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;DB-GPT if you want a complete self-contained app. Vanna.ai if you're embedding the capability programmatically into your own product.&lt;/p&gt;




&lt;h2&gt;
  
  
  n8n Automation
&lt;/h2&gt;

&lt;p&gt;A ready-to-import workflow JSON is in the repo (&lt;code&gt;integration/n8n-workflows/db-gpt-query.json&lt;/code&gt;). POST &lt;code&gt;{question, db_name}&lt;/code&gt; → returns &lt;code&gt;{answer, sql, data}&lt;/code&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Full Guide
&lt;/h2&gt;

&lt;p&gt;→ &lt;a href="https://github.com/retrovirusretro/chinese-ai-tools-english-guide" rel="noopener noreferrer"&gt;chinese-ai-tools-english-guide&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Previous articles in this series:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/retrovirusretro"&gt;5 Chinese AI tools the West is ignoring&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/retrovirusretro"&gt;WeKnora — Tencent's RAG framework&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/retrovirusretro"&gt;MaxKB — simplest self-hosted RAG&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Your data never leaves your machine. No API keys, no cloud, no SQL knowledge needed.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>docker</category>
      <category>ollama</category>
      <category>database</category>
    </item>
    <item>
      <title>The simplest self-hosted RAG you'll ever set up (Apache 2.0, 20K stars)</title>
      <dc:creator>retrovirusretro</dc:creator>
      <pubDate>Wed, 20 May 2026 21:24:39 +0000</pubDate>
      <link>https://dev.to/retrovirusretro/the-simplest-self-hosted-rag-youll-ever-set-up-apache-20-20k-stars-2m2h</link>
      <guid>https://dev.to/retrovirusretro/the-simplest-self-hosted-rag-youll-ever-set-up-apache-20-20k-stars-2m2h</guid>
      <description>&lt;p&gt;Most RAG tools make you choose between simplicity and power. MaxKB doesn't try to be powerful — it tries to be simple, and it nails it.&lt;/p&gt;

&lt;p&gt;20K+ GitHub stars. Apache 2.0. Almost no English content. Here's the guide.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is MaxKB?
&lt;/h2&gt;

&lt;p&gt;MaxKB (Max Knowledge Base) is a knowledge base Q&amp;amp;A system by the 1Panel team. It connects to any OpenAI-compatible API — including Ollama — and lets you upload documents, ask questions, and embed a chat widget into any website.&lt;/p&gt;

&lt;p&gt;That last part is the killer feature: MaxKB generates a JavaScript snippet that drops a chat widget into any HTML page. One script tag. No iframe, no backend changes needed. Apache 2.0 means you can embed this in commercial products with no restrictions.&lt;/p&gt;




&lt;h2&gt;
  
  
  Setup
&lt;/h2&gt;

&lt;p&gt;3 commands, under 5 minutes.&lt;/p&gt;

&lt;p&gt;Clone the repo, copy &lt;code&gt;.env.example&lt;/code&gt; to &lt;code&gt;.env&lt;/code&gt;, then &lt;code&gt;docker compose up -d&lt;/code&gt;. Open &lt;code&gt;localhost:8081&lt;/code&gt; → &lt;code&gt;admin / admin123&lt;/code&gt; → Settings → Model Provider → Ollama → &lt;code&gt;http://ollama:11434&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Create a knowledge base, upload a PDF, start asking questions. That's the entire setup.&lt;/p&gt;

&lt;p&gt;Full docker-compose: &lt;a href="https://github.com/retrovirusretro/maxkb-english-guide" rel="noopener noreferrer"&gt;maxkb-english-guide&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Embed Widget
&lt;/h2&gt;

&lt;p&gt;MaxKB generates a JavaScript snippet — drop it into any HTML page and a chat widget appears bottom-right. No iframe, no backend changes. This is what makes MaxKB unique among RAG tools: it's designed to be embedded.&lt;/p&gt;

&lt;p&gt;Go to: Application → your app → Embed → copy the script tag → paste into any HTML page.&lt;/p&gt;




&lt;h2&gt;
  
  
  API
&lt;/h2&gt;

&lt;p&gt;Works from Python, JavaScript, curl, n8n — anything that speaks HTTP. POST your question to &lt;code&gt;/api/application/{app_id}/chat/completions&lt;/code&gt; with a Bearer token. Returns &lt;code&gt;{"content": "the answer"}&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Full Python + JavaScript examples in the repo.&lt;/p&gt;




&lt;h2&gt;
  
  
  MaxKB vs the Alternatives
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;MaxKB&lt;/th&gt;
&lt;th&gt;WeKnora&lt;/th&gt;
&lt;th&gt;FastGPT&lt;/th&gt;
&lt;th&gt;RAGFlow&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Setup time&lt;/td&gt;
&lt;td&gt;⚡ 3 min&lt;/td&gt;
&lt;td&gt;5 min&lt;/td&gt;
&lt;td&gt;10 min&lt;/td&gt;
&lt;td&gt;15 min&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;License&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Apache 2.0&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;MIT&lt;/td&gt;
&lt;td&gt;Custom*&lt;/td&gt;
&lt;td&gt;Apache 2.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Embed widget&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Autonomous agent&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PDF table parsing&lt;/td&gt;
&lt;td&gt;Basic&lt;/td&gt;
&lt;td&gt;Basic&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;td&gt;Excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Commercial embed&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;*FastGPT prohibits SaaS resale.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pick MaxKB when:&lt;/strong&gt; working knowledge base in 5 minutes, embed widget needed, Apache 2.0 matters.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pick something else when:&lt;/strong&gt; complex PDFs → RAGFlow · pipeline builder → FastGPT · multi-hop reasoning → WeKnora&lt;/p&gt;




&lt;h2&gt;
  
  
  Supported LLM Providers
&lt;/h2&gt;

&lt;p&gt;MaxKB works with any OpenAI-compatible API: Ollama (local, free), OpenAI, Groq, Together, or Anthropic via LiteLLM proxy.&lt;/p&gt;




&lt;h2&gt;
  
  
  Full Guide
&lt;/h2&gt;

&lt;p&gt;→ &lt;a href="https://github.com/retrovirusretro/maxkb-english-guide" rel="noopener noreferrer"&gt;github.com/retrovirusretro/maxkb-english-guide&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Part of a broader series:&lt;br&gt;
→ &lt;a href="https://github.com/retrovirusretro/chinese-ai-tools-english-guide" rel="noopener noreferrer"&gt;chinese-ai-tools-english-guide&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;MaxKB is the tool I recommend to people who just want RAG working quickly without reading 40 pages of docs.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>docker</category>
      <category>ollama</category>
      <category>selfhosted</category>
    </item>
    <item>
      <title>Tencent just released a RAG framework and nobody's talking about it</title>
      <dc:creator>retrovirusretro</dc:creator>
      <pubDate>Wed, 20 May 2026 21:08:48 +0000</pubDate>
      <link>https://dev.to/retrovirusretro/tencent-just-released-a-rag-framework-and-nobodys-talking-about-it-2c9g</link>
      <guid>https://dev.to/retrovirusretro/tencent-just-released-a-rag-framework-and-nobodys-talking-about-it-2c9g</guid>
      <description>&lt;p&gt;In April 2026, Tencent's WeChat team released WeKnora as open source. MIT licensed. Ollama support built-in. Almost zero English content about it.&lt;/p&gt;

&lt;p&gt;I spent a few days setting it up, writing the first English integration guide, and comparing it to the alternatives. Here's what I found.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is WeKnora?
&lt;/h2&gt;

&lt;p&gt;WeKnora is the RAG framework that powers WeChat's Dialog Open Platform — production-tested at a scale most of us will never reach.&lt;/p&gt;

&lt;p&gt;At its core it does what every RAG tool does: upload documents, ask questions, get answers grounded in your content.&lt;/p&gt;

&lt;p&gt;But it adds two things I haven't seen elsewhere:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Autonomous reasoning agent&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When you ask a complex question, WeKnora doesn't just search. It plans.&lt;/p&gt;

&lt;p&gt;"Compare the pricing strategy in document A with the market analysis in document B" gets decomposed into sub-queries before any retrieval happens. Most RAG tools dump a random mix of chunks into the LLM and hope for the best. WeKnora's agent actually thinks about &lt;em&gt;how&lt;/em&gt; to answer before searching.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Self-updating knowledge base&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Point WeKnora at a URL or folder, set a refresh interval, and it monitors the source and updates the knowledge base automatically when content changes. For internal docs, product catalogs, or anything that evolves — this is genuinely useful.&lt;/p&gt;




&lt;h2&gt;
  
  
  Setup in 5 Minutes
&lt;/h2&gt;

&lt;p&gt;Two modes. Pick based on what you already have running.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you already have Ollama running:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;"bash&lt;br&gt;
git clone &lt;a href="https://github.com/retrovirusretro/weknora-english-guide" rel="noopener noreferrer"&gt;https://github.com/retrovirusretro/weknora-english-guide&lt;/a&gt;&lt;br&gt;
cd weknora-english-guide&lt;br&gt;
cp .env.example .env&lt;br&gt;
docker compose up -d"&lt;/p&gt;

&lt;p&gt;WeKnora joins your existing Docker network. No duplicate Ollama container.&lt;/p&gt;

&lt;p&gt;Fresh install (includes Ollama):&lt;br&gt;
"docker compose -f docker-compose.standalone.yml up -d&lt;br&gt;
docker exec -it weknora-ollama ollama pull llama3"&lt;/p&gt;

&lt;p&gt;Open &lt;a href="http://localhost:8083" rel="noopener noreferrer"&gt;http://localhost:8083&lt;/a&gt; → admin / weknora123 → connect Ollama → upload a PDF → ask a question.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0m8j0f5vag5t9qq18111.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0m8j0f5vag5t9qq18111.png" alt=" " width="702" height="490"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;*FastGPT prohibits commercial SaaS resale.&lt;/p&gt;

&lt;p&gt;When to pick WeKnora over RAGFlow:&lt;/p&gt;

&lt;p&gt;You need the reasoning agent for complex multi-document questions&lt;br&gt;
MIT license matters (embedding in a commercial product)&lt;br&gt;
You want the self-updating KB feature&lt;br&gt;
When to pick RAGFlow instead:&lt;/p&gt;

&lt;p&gt;Your PDFs have complex layouts (tables, multi-column, images)&lt;br&gt;
You want a larger English community with more answered questions&lt;/p&gt;

&lt;p&gt;n8n Integration&lt;br&gt;
WeKnora exposes a REST API. Connect it to n8n for automation pipelines:&lt;br&gt;
Webhook → WeKnora /api/query → Slack / Email / Notion&lt;/p&gt;

&lt;p&gt;A ready-to-import n8n workflow JSON is in the repo:&lt;br&gt;
examples/with-n8n/weknora-query-workflow.json&lt;/p&gt;

&lt;p&gt;Import it in n8n → Workflows → Import from file. One click, working webhook.&lt;/p&gt;

&lt;p&gt;Why Almost No English Content?&lt;br&gt;
The WeKnora community is on WeChat groups and Zhihu. The maintainers write English READMEs but the tutorial ecosystem never crossed over.&lt;/p&gt;

&lt;p&gt;Same story with FastGPT (27K stars), MaxKB (20K stars), DB-GPT (17K stars). Massive Chinese communities, almost nothing in English.&lt;/p&gt;

&lt;p&gt;I'm documenting all of them:&lt;br&gt;
→ chinese-ai-tools-english-guide&lt;/p&gt;

&lt;p&gt;Full Guide&lt;br&gt;
Everything in this post plus Ollama model selection, production deployment with Nginx + SSL, and the WeKnora vs RAGFlow deep-dive:&lt;/p&gt;

&lt;p&gt;→ github.com/retrovirusretro/weknora-english-guide&lt;/p&gt;

&lt;p&gt;Have you tried WeKnora? Curious if others run into setup issues I haven't documented yet.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>docker</category>
      <category>ollama</category>
      <category>selfhosted</category>
    </item>
    <item>
      <title>5 Chinese AI tools with 100K+ stars that the West is ignoring</title>
      <dc:creator>retrovirusretro</dc:creator>
      <pubDate>Wed, 20 May 2026 21:00:05 +0000</pubDate>
      <link>https://dev.to/retrovirusretro/5-chinese-ai-tools-with-100k-stars-that-the-west-is-ignoring-1imj</link>
      <guid>https://dev.to/retrovirusretro/5-chinese-ai-tools-with-100k-stars-that-the-west-is-ignoring-1imj</guid>
      <description>&lt;p&gt;I've been exploring the Chinese open-source AI ecosystem for the past few months. What I found surprised me.&lt;/p&gt;

&lt;p&gt;There are tools with 20K, 27K, even 35K GitHub stars — actively maintained, production-ready, MIT or Apache licensed — that have almost zero English community. No Reddit posts. No YouTube tutorials. No Stack Overflow answers.&lt;/p&gt;

&lt;p&gt;The docs exist. They're just in Chinese.&lt;/p&gt;

&lt;p&gt;Here's what I found, and why it matters.&lt;/p&gt;




&lt;h2&gt;
  
  
  The 5 Tools
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. WeKnora — Autonomous RAG (Tencent, MIT)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/Tencent/WeKnora" rel="noopener noreferrer"&gt;Tencent/WeKnora&lt;/a&gt; · Released April 2026&lt;/p&gt;

&lt;p&gt;WeKnora is the core technology behind WeChat's Dialog Open Platform. It converts raw documents into a queryable knowledge base, but adds something others don't: an &lt;strong&gt;autonomous reasoning agent&lt;/strong&gt; that breaks complex questions into sub-queries before searching.&lt;/p&gt;

&lt;p&gt;Ask "Compare pricing across these three competitor docs" — most RAG tools retrieve a random mix of chunks. WeKnora's agent actually plans the retrieval.&lt;/p&gt;

&lt;p&gt;Also unique: &lt;strong&gt;self-updating knowledge base&lt;/strong&gt;. Point it at a URL or folder, set a refresh interval, it stays current automatically.&lt;/p&gt;

&lt;p&gt;License: MIT → embed in commercial products freely.&lt;/p&gt;




&lt;h3&gt;
  
  
  2. FastGPT — Visual RAG Workflow Builder (27K ⭐)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/labring/FastGPT" rel="noopener noreferrer"&gt;labring/FastGPT&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;FastGPT's standout feature is &lt;strong&gt;QA-pair extraction&lt;/strong&gt;: instead of chunking documents blindly, it uses an LLM to generate question-answer pairs from your content. Question matches question at retrieval time — dramatically better accuracy than naive chunking.&lt;/p&gt;

&lt;p&gt;It also has a visual node editor for building branching RAG pipelines without code.&lt;/p&gt;

&lt;p&gt;License: Custom (self-hosted OK, SaaS resale prohibited).&lt;/p&gt;




&lt;h3&gt;
  
  
  3. MaxKB — Simplest RAG Setup (20K ⭐, Apache 2.0)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/1Panel-dev/MaxKB" rel="noopener noreferrer"&gt;1Panel-dev/MaxKB&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;MaxKB does one thing well: get a knowledge base running fast and embed it anywhere. It generates a JavaScript widget (one &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; tag) you can drop into any website. No iframe, no complex setup.&lt;/p&gt;

&lt;p&gt;Apache 2.0 → commercially embeddable, no restrictions.&lt;/p&gt;

&lt;p&gt;("bash&lt;br&gt;
docker compose up -d Done. localhost:8081")&lt;/p&gt;

&lt;h3&gt;
  
  
  4. DB-GPT — Chat With Your Database (17K ⭐, MIT)
&lt;/h3&gt;

&lt;p&gt;GitHub: eosphoros-ai/DB-GPT&lt;/p&gt;

&lt;p&gt;"What were our top 10 customers last quarter by revenue, as a bar chart?"&lt;/p&gt;

&lt;p&gt;DB-GPT translates that to SQL, runs it against your PostgreSQL/MySQL/SQLite, and renders the chart. Think Metabase meets AI — but fully local, fully open source.&lt;/p&gt;

&lt;p&gt;It supports an AWEL visual pipeline builder for complex multi-step database analysis.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. RAGFlow — Best PDF Parsing (35K ⭐, Apache 2.0)
&lt;/h3&gt;

&lt;p&gt;GitHub: infiniflow/RAGFlow&lt;/p&gt;

&lt;p&gt;Most RAG tools split PDFs by character count. RAGFlow reads the layout: tables stay as tables, headers create structure, multi-column text is handled correctly.&lt;/p&gt;

&lt;p&gt;If your documents have complex formatting — financial reports, legal contracts, technical manuals — RAGFlow's chunking quality is noticeably better.&lt;/p&gt;

&lt;p&gt;Which One Should You Use?&lt;br&gt;
Need to chat with your DATABASE?&lt;br&gt;
  → DB-GPT&lt;br&gt;
Need the SIMPLEST setup, embeddable widget?&lt;br&gt;
  → MaxKB (Apache 2.0, 3-minute install)&lt;br&gt;
Need a VISUAL workflow builder?&lt;br&gt;
  → FastGPT&lt;br&gt;
Best PDF parsing (tables, images, complex layouts)?&lt;br&gt;
  → RAGFlow&lt;br&gt;
Autonomous reasoning + self-updating KB?&lt;br&gt;
  → WeKnora (newest, MIT)&lt;br&gt;
Shared Infrastructure&lt;br&gt;
All five tools work with Ollama. You don't need an API key for any of them.&lt;/p&gt;

&lt;p&gt;I wrote Docker Compose configs for each that plug into a shared Ollama + n8n + Qdrant stack — no duplicate containers, no 5 separate LLMs running.&lt;/p&gt;

&lt;p&gt;→ Full English guide with Docker Compose, Ollama integration, and n8n workflows for all five:&lt;br&gt;
github.com/retrovirusretro/chinese-ai-tools-english-guide&lt;/p&gt;

&lt;p&gt;Individual deep-dives:&lt;/p&gt;

&lt;p&gt;WeKnora English Guide&lt;br&gt;
MaxKB English Guide&lt;br&gt;
FastGPT Production Stack&lt;br&gt;
Why Is There No English Content?&lt;br&gt;
These communities live on WeChat groups, Zhihu, and Bilibili. The maintainers speak English well enough to write a README but the tutorial ecosystem never crossed over.&lt;/p&gt;

&lt;p&gt;The pattern reminds me of how Ollama made llama.cpp accessible (40K stars), or how Open-WebUI made Ollama accessible (50K stars). The underlying technology existed. Someone just built the bridge.&lt;/p&gt;

&lt;p&gt;These tools are the technology. The bridge is missing.&lt;/p&gt;

&lt;p&gt;Have you used any of these? I'm curious what the English-speaking community thinks of them.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>docker</category>
      <category>selfhosted</category>
      <category>ollama</category>
    </item>
  </channel>
</rss>
