From 5940c2d64b1e71cc8a7a258312bb0e4df3bd6f2a Mon Sep 17 00:00:00 2001 From: BrightChing Date: Mon, 17 Feb 2025 10:39:43 +0800 Subject: [PATCH] =?UTF-8?q?docs(ragflow):=20=E6=9B=B4=E6=96=B0=20README=20?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除 SearXNG 相关内容,增加 RagFlow 项目介绍 - 更新访问地址和关键特性说明 - 添加多语言支持和服务治理相关内容 - 更新代码仓库地址 --- apps/ragflow/README.md | 28 ++++++++++++---------------- apps/ragflow/logo.png | Bin 9558 -> 1728 bytes 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/apps/ragflow/README.md b/apps/ragflow/README.md index 839c065..cd36ca8 100644 --- a/apps/ragflow/README.md +++ b/apps/ragflow/README.md @@ -2,19 +2,15 @@ ## 服务地址 -* 访问地址:[http://IP:3005/searxng](http://ip:3005/searxng) -* 无需用户名和密码(默认情况下,SearXNG是公开可用的,除非进行了额外的访问限制配置) - -# SearXNG - -`SearXNG 是一个开源的、去中心化的搜索引擎,旨在提供隐私保护和无广告的搜索体验。`## SearXNG 的关键特性 - -* **隐私保护:** 不记录用户的搜索历史和个人信息,确保用户的隐私安全。不依赖于任何单一的商业搜索引擎,避免数据被集中收集。 -* **去中心化:** 支持分布式部署,用户可以自行搭建和运行SearXNG实例,减少对中心化搜索引擎的依赖。 -* **高度可定制:** 提供丰富的配置选项,用户可以根据自己的需求调整搜索结果的来源、外观和功能。支持添加或移除特定的搜索引擎插件。 -* **多语言支持:** 支持多种语言的搜索和界面显示,满足不同地区用户的需求。 -* **无广告:** 搜索结果页面完全无广告,提供更纯净的搜索体验。 -* **开源:** 基于开源许可,用户可以自由查看、修改和分发代码,促进社区的共同开发和改进。 -* **轻量级:** 对服务器资源要求较低,易于部署和维护,适合个人和小型团队使用。 -* **服务治理:** 支持结果过滤和排序,可以根据用户偏好进行定制化搜索。支持RSS订阅功能,方便用户获取最新信息。 以上介绍提供了SearXNG的基本信息,包括服务地址、关键特性和特色,帮助用户快速了解SearXNG的主要功能和优势。 - +访问地址:根据本地部署的服务器 IP 及端口访问,如 http://127.0.0.1:8080(需确保已正确部署 RagFlow 服务) +无需用户名和密码(默认情况下,RagFlow 无需额外认证即可使用,但具体取决于部署时的配置) +## RagFlow +RagFlow 是一款开源的 RAG(Retrieval-Augmented Generation)引擎,旨在为用户提供高效、智能的信息处理和知识管理解决方案。 +## RagFlow 的关键特性 +* 隐私保护: 数据存储在本地,不会上传到云端,确保用户数据的隐私和安全,用户无需担心数据泄露问题。 +* 高度可定制: 提供丰富的配置选项,用户可以根据自身需求选择不同的模型、调整参数,以及自定义知识库的构建和管理方式,满足多样化的应用场景。 +多语言支持: 支持多种语言的知识库构建和查询,能够处理不同语言的文档和文本数据,满足多语言用户的需求。 +* 无广告: 作为开源工具,界面简洁,无广告干扰,提供更纯净的使用体验,用户可以专注于知识管理和信息处理。 +* 开源: 基于开源许可,用户可以自由查看、修改和分发代码,促进社区的共同开发和改进,代码仓库地址为 https://github.com/infiniflow/ragflow。 +* 轻量级: 对硬件资源要求相对较低(CPU ≥ 4 cores, RAM ≥ 16 GB, Disk ≥ 50 GB),易于部署和维护,适合个人和小型团队使用。 +服务治理: 支持多种模型的集成和管理,用户可以根据需求选择合适的模型进行知识库的构建和查询,同时支持对知识库的版本管理和更新。 diff --git a/apps/ragflow/logo.png b/apps/ragflow/logo.png index af696fae3288b59bec139c984a949187020c8a84..01c99fb44ff08a0f3e276fcc91ed24f1a5d2bec4 100755 GIT binary patch literal 1728 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