<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>RAGFlow on KnightLi Blog</title>
        <link>https://www.knightli.com/es/tags/ragflow/</link>
        <description>Recent content in RAGFlow on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>es</language>
        <lastBuildDate>Wed, 15 Apr 2026 22:09:25 +0800</lastBuildDate><atom:link href="https://www.knightli.com/es/tags/ragflow/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Notas del proyecto RAGFlow: funciones y uso de un motor RAG open source</title>
        <link>https://www.knightli.com/es/2026/04/15/ragflow-rag-engine-guide/</link>
        <pubDate>Wed, 15 Apr 2026 22:09:25 +0800</pubDate>
        
        <guid>https://www.knightli.com/es/2026/04/15/ragflow-rag-engine-guide/</guid>
        <description>&lt;p&gt;&lt;code&gt;RAGFlow&lt;/code&gt; es un motor RAG open source de &lt;code&gt;infiniflow&lt;/code&gt;. Su objetivo no es ofrecer una simple capa de &amp;ldquo;sube documentos y haz preguntas&amp;rdquo;, sino reunir parsing de documentos, chunking, recuperación, reranking, trazabilidad de citas, configuración de modelos, capacidades de agentes e integración API en un flujo completo.&lt;/p&gt;
&lt;p&gt;Si estás construyendo una base de conocimiento empresarial, Q&amp;amp;A sobre documentos, un asistente de soporte, recuperación de información interna o una capa de contexto más fiable para un LLM, RAGFlow es una de las opciones open source que merece atención seria.&lt;/p&gt;
&lt;h2 id=&#34;01-qué-problema-resuelve-ragflow&#34;&gt;01 Qué problema resuelve RAGFlow
&lt;/h2&gt;&lt;p&gt;La mayoría de sistemas RAG tropiezan con tres problemas comunes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;El parsing de documentos es inestable, especialmente con PDFs, escaneos, tablas, imágenes y layouts complejos.&lt;/li&gt;
&lt;li&gt;La estrategia de chunking es opaca, así que la recuperación puede parecer correcta mientras el contexto real está incompleto.&lt;/li&gt;
&lt;li&gt;Las respuestas no tienen citas confiables, lo que dificulta verificar de dónde viene la respuesta.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;RAGFlow se centra justo en esos problemas. El README del proyecto enfatiza &lt;code&gt;Deep document understanding&lt;/code&gt;, chunking basado en plantillas, visualización de chunks, grounding de citas y recuperación multipath con reranking. En otras palabras, le importa más que una entrada de alta calidad lleve a respuestas de alta calidad que simplemente conectar una base vectorial a una UI de chat.&lt;/p&gt;
&lt;h2 id=&#34;02-funciones-principales&#34;&gt;02 Funciones principales
&lt;/h2&gt;&lt;h3 id=&#34;1-comprensión-profunda-de-documentos&#34;&gt;1. Comprensión profunda de documentos
&lt;/h3&gt;&lt;p&gt;RAGFlow puede extraer conocimiento de datos no estructurados complejos. El README lista formatos como Word, PPT, Excel, TXT, imágenes, documentos escaneados, datos estructurados y páginas web.&lt;/p&gt;
&lt;p&gt;Esto importa mucho para bases de conocimiento empresariales. El material real rara vez es Markdown limpio. Suele mezclar contratos, informes, tablas, PDFs escaneados, manuales de producto, capturas y contenido web. Si el parsing es débil, tanto la recuperación como las respuestas del LLM sufrirán.&lt;/p&gt;
&lt;h3 id=&#34;2-chunking-basado-en-plantillas&#34;&gt;2. Chunking basado en plantillas
&lt;/h3&gt;&lt;p&gt;RAGFlow ofrece chunking basado en plantillas. El valor está en que el chunking no es una caja negra: distintos tipos de documentos pueden usar estrategias distintas.&lt;/p&gt;
&lt;p&gt;Por ejemplo, artículos, papers, tablas, documentos Q&amp;amp;A, explicaciones de imágenes y cláusulas contractuales necesitan límites y granularidad de chunk diferentes. El chunking por plantillas ayuda a reducir frases rotas, pérdida de contexto de tablas y separación entre títulos y cuerpo.&lt;/p&gt;
&lt;h3 id=&#34;3-citas-trazables&#34;&gt;3. Citas trazables
&lt;/h3&gt;&lt;p&gt;RAGFlow enfatiza citas fundamentadas, es decir, respuestas que pueden rastrearse hasta pasajes fuente. También ofrece visualización de chunks, facilitando inspeccionar y ajustar resultados de parsing y chunking.&lt;/p&gt;
&lt;p&gt;Esto es especialmente importante en producción. El Q&amp;amp;A interno empresarial no solo necesita producir algo que parezca correcto; también debe ser verificable. Para políticas, cumplimiento, finanzas, documentación técnica y soporte al cliente, las citas y la trazabilidad son casi obligatorias.&lt;/p&gt;
&lt;h3 id=&#34;4-flujo-rag-automatizado&#34;&gt;4. Flujo RAG automatizado
&lt;/h3&gt;&lt;p&gt;RAGFlow convierte el ciclo de vida RAG en un flujo más completo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Crear una base de conocimiento&lt;/li&gt;
&lt;li&gt;Subir o sincronizar datos&lt;/li&gt;
&lt;li&gt;Parsear documentos&lt;/li&gt;
&lt;li&gt;Revisar y ajustar chunks&lt;/li&gt;
&lt;li&gt;Configurar modelos LLM y embedding&lt;/li&gt;
&lt;li&gt;Ejecutar recuperación multipath y reranking&lt;/li&gt;
&lt;li&gt;Crear asistentes de chat&lt;/li&gt;
&lt;li&gt;Integrar mediante APIs en sistemas de negocio&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Eso lo acerca más a una plataforma RAG que a una librería aislada. Para equipos importan tanto la UI como la API: personas no técnicas pueden mantener la base de conocimiento y los ingenieros pueden integrar la capacidad en sistemas existentes.&lt;/p&gt;
&lt;h3 id=&#34;5-extensiones-de-agent-mcp-y-workflow&#34;&gt;5. Extensiones de Agent, MCP y workflow
&lt;/h3&gt;&lt;p&gt;Las actualizaciones recientes de RAGFlow ya incluyen Agentic workflow, MCP, Agent Memory y componentes de ejecución de código. Eso sugiere que ya no se limita al Q&amp;amp;A tradicional de bases de conocimiento y también se mueve hacia escenarios orientados a agentes.&lt;/p&gt;
&lt;p&gt;Un patrón típico es que un agente use RAGFlow como capa fiable de conocimiento empresarial: recuperar contexto cuando lo necesita, generar respuestas con citas y combinarlo con herramientas o pasos de workflow cuando sea necesario.&lt;/p&gt;
&lt;h2 id=&#34;03-flujo-básico-de-uso&#34;&gt;03 Flujo básico de uso
&lt;/h2&gt;&lt;p&gt;Según la documentación oficial de quickstart, el uso común de RAGFlow puede resumirse en estos pasos.&lt;/p&gt;
&lt;h3 id=&#34;1-preparar-el-entorno&#34;&gt;1. Preparar el entorno
&lt;/h3&gt;&lt;p&gt;Los requisitos básicos listados en el README oficial son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CPU &amp;gt;= 4 cores&lt;/li&gt;
&lt;li&gt;RAM &amp;gt;= 16 GB&lt;/li&gt;
&lt;li&gt;Disk &amp;gt;= 50 GB&lt;/li&gt;
&lt;li&gt;Docker &amp;gt;= 24.0.0&lt;/li&gt;
&lt;li&gt;Docker Compose &amp;gt;= v2.26.1&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si quieres usar el sandbox para el ejecutor de código, también necesitas &lt;code&gt;gVisor&lt;/code&gt;. Otra nota práctica es que las imágenes Docker oficiales apuntan principalmente a plataformas x86. Para ARM64, la documentación recomienda construir la imagen por cuenta propia.&lt;/p&gt;
&lt;h3 id=&#34;2-clonar-el-proyecto&#34;&gt;2. Clonar el proyecto
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/infiniflow/ragflow.git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; ragflow/docker
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;3-revisar-vmmax_map_count&#34;&gt;3. Revisar &lt;code&gt;vm.max_map_count&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;El despliegue de RAGFlow depende de componentes como Elasticsearch u OpenSearch, así que en Linux normalmente hay que verificar:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sysctl vm.max_map_count
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si el valor está por debajo de &lt;code&gt;262144&lt;/code&gt;, puedes configurarlo temporalmente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo sysctl -w vm.max_map_count&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;262144&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si quieres que persista tras reiniciar, añádelo a &lt;code&gt;/etc/sysctl.conf&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;4-arrancar-con-docker-compose&#34;&gt;4. Arrancar con Docker Compose
&lt;/h3&gt;&lt;p&gt;Puedes iniciar directamente el modo CPU:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker compose -f docker-compose.yml up -d
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si quieres aceleración GPU para tareas DeepDoc, el README muestra cómo activar &lt;code&gt;DEVICE=gpu&lt;/code&gt; en &lt;code&gt;.env&lt;/code&gt; antes del arranque:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sed -i &lt;span class=&#34;s1&#34;&gt;&amp;#39;1i DEVICE=gpu&amp;#39;&lt;/span&gt; .env
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker compose -f docker-compose.yml up -d
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Luego inspecciona los logs:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker logs -f docker-ragflow-cpu-1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Cuando los servicios estén listos, abre la dirección de la máquina en el navegador. Con la configuración predeterminada suele ser:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://IP_OF_YOUR_MACHINE
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;5-configurar-claves-api-de-modelos&#34;&gt;5. Configurar claves API de modelos
&lt;/h3&gt;&lt;p&gt;RAGFlow necesita configuración de LLM y modelos de embedding. El README menciona elegir la fábrica LLM predeterminada en &lt;code&gt;service_conf.yaml.template&lt;/code&gt; y actualizar el &lt;code&gt;API_KEY&lt;/code&gt; correspondiente.&lt;/p&gt;
&lt;p&gt;En la práctica, necesitas configurar modelos según tu proveedor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Modelo de chat&lt;/li&gt;
&lt;li&gt;Modelo de embedding&lt;/li&gt;
&lt;li&gt;Modelo de rerank&lt;/li&gt;
&lt;li&gt;Modelo multimodal, si quieres entender imágenes dentro de PDFs o DOCX&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;6-crear-la-base-de-conocimiento-y-subir-documentos&#34;&gt;6. Crear la base de conocimiento y subir documentos
&lt;/h3&gt;&lt;p&gt;Después de arrancar el servicio, el flujo típico es:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Iniciar sesión en la Web UI.&lt;/li&gt;
&lt;li&gt;Crear un dataset o base de conocimiento.&lt;/li&gt;
&lt;li&gt;Subir documentos o configurar una sincronización de fuente de datos.&lt;/li&gt;
&lt;li&gt;Esperar a que termine el parsing.&lt;/li&gt;
&lt;li&gt;Inspeccionar los chunks y ajustarlos si hace falta.&lt;/li&gt;
&lt;li&gt;Crear un asistente de chat y asociar la base de conocimiento.&lt;/li&gt;
&lt;li&gt;Probar calidad de respuesta y fuentes de cita.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si necesitas integrarlo con un sistema de negocio, puedes continuar con la API o SDK de RAGFlow y conectar recuperación y chat a tu propia aplicación.&lt;/p&gt;
&lt;h2 id=&#34;04-escenarios-adecuados&#34;&gt;04 Escenarios adecuados
&lt;/h2&gt;&lt;p&gt;RAGFlow encaja con necesidades como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Q&amp;amp;A de bases de conocimiento internas empresariales&lt;/li&gt;
&lt;li&gt;Manuales de producto, documentación técnica y recuperación de FAQ&lt;/li&gt;
&lt;li&gt;Asistentes de soporte al cliente y preventa&lt;/li&gt;
&lt;li&gt;Q&amp;amp;A trazable sobre contratos, informes y políticas&lt;/li&gt;
&lt;li&gt;Manejo unificado de materiales multiformato&lt;/li&gt;
&lt;li&gt;Equipos que quieren mantenimiento vía UI e integración API&lt;/li&gt;
&lt;li&gt;Sistemas que quieren usar RAG como capa de contexto para agentes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Es especialmente adecuado cuando los formatos documentales son complejos, las citas importan y las personas quieren inspeccionar o intervenir en los resultados de parsing.&lt;/p&gt;
&lt;h2 id=&#34;05-qué-vigilar&#34;&gt;05 Qué vigilar
&lt;/h2&gt;&lt;p&gt;Primero, RAGFlow no es un script ligero. Tiene requisitos reales de infraestructura. La recomendación oficial es al menos 4 cores CPU, 16 GB de RAM y 50 GB de disco. Si solo quieres Q&amp;amp;A sobre una pequeña cantidad de Markdown, una plataforma completa puede ser innecesaria.&lt;/p&gt;
&lt;p&gt;Segundo, la calidad documental sigue importando. RAGFlow puede mejorar parsing y chunking, pero no puede hacer mágicamente fiable material fuente de baja calidad, obsoleto o contradictorio. El gobierno de la base de conocimiento sigue siendo importante antes de producción.&lt;/p&gt;
&lt;p&gt;Tercero, la selección de modelos afecta directamente la calidad. Las elecciones de embedding, rerank, chat y multimodal influyen en recuperación y respuestas. RAGFlow da el flujo, pero el resultado final sigue dependiendo de datos, modelos y ajuste.&lt;/p&gt;
&lt;p&gt;Cuarto, los despliegues en producción deben cuidar permisos y seguridad de datos. Las bases de conocimiento empresariales suelen contener documentos internos, así que el modelo de despliegue, control de acceso, logs, claves API y políticas de datos del proveedor deben diseñarse de antemano.&lt;/p&gt;
&lt;h2 id=&#34;06-conclusión-rápida&#34;&gt;06 Conclusión rápida
&lt;/h2&gt;&lt;p&gt;La fortaleza de RAGFlow es convertir las partes más difíciles de RAG en capacidades de plataforma: parsing de documentos complejos, chunking explicable, grounding de citas, recuperación multipath, reranking, configuración de modelos, Web UI, acceso API y extensiones de agentes.&lt;/p&gt;
&lt;p&gt;Si necesitas una base de conocimiento empresarial verificable y mantenible que pueda conectarse a sistemas de negocio, RAGFlow es más completo que una configuración de &amp;ldquo;base vectorial más chat UI simple&amp;rdquo;. En cambio, si solo necesitas Q&amp;amp;A personal a pequeña escala sobre datos simples, un framework RAG más ligero puede ser más eficiente en recursos.&lt;/p&gt;
&lt;h2 id=&#34;enlaces-relacionados&#34;&gt;Enlaces relacionados
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Proyecto GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/infiniflow/ragflow&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/infiniflow/ragflow&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Documentación oficial: &lt;a class=&#34;link&#34; href=&#34;https://ragflow.io/docs/dev/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://ragflow.io/docs/dev/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Demo online: &lt;a class=&#34;link&#34; href=&#34;https://cloud.ragflow.io&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://cloud.ragflow.io&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
