feat: update readme & docs

This commit is contained in:
wizardchen
2026-03-30 21:20:14 +08:00
committed by lyingbug
parent eaf17e65f8
commit 6f48e356b9
11 changed files with 5820 additions and 518 deletions

113
README.md
View File

@@ -27,7 +27,7 @@
</p>
<p align="center">
| <b>English</b> | <a href="./README_CN.md"><b>简体中文</b></a> | <a href="./README_JA.md"><b>日本語</b></a> |
| <b>English</b> | <a href="./README_CN.md"><b>简体中文</b></a> | <a href="./README_JA.md"><b>日本語</b></a> | <a href="./README_KO.md"><b>한국어</b></a> |
</p>
<p align="center">
@@ -223,21 +223,17 @@ cp .env.example .env
# All variables are documented in the .env.example comments
```
#### ③ Start the services (include Ollama)
#### ③ Start the core services
Check the images that need to be started in the .env file.
Check which images need to be started in the `.env` file, then start the WeKnora core services with Docker Compose.
```bash
./scripts/start_all.sh
docker compose up -d
```
or
#### ③.0 Start Ollama separately (Optional)
```bash
make start-all
```
#### ③.0 Start ollama services (Optional)
If you configured a local Ollama model in `.env`, start the Ollama service separately:
```bash
ollama serve > /dev/null 2>&1 &
@@ -252,35 +248,33 @@ docker compose up -d
- All features enabled
```bash
docker-compose --profile full up -d
docker compose --profile full up -d
```
- Tracing logs required
```bash
docker-compose --profile jaeger up -d
docker compose --profile jaeger up -d
```
- Neo4j knowledge graph required
```bash
docker-compose --profile neo4j up -d
docker compose --profile neo4j up -d
```
- Minio file storage service required
```bash
docker-compose --profile minio up -d
docker compose --profile minio up -d
```
- Multiple options combination
```bash
docker-compose --profile neo4j --profile minio up -d
docker compose --profile neo4j --profile minio up -d
```
#### ④ Stop the services
```bash
./scripts/start_all.sh --stop
# Or
make stop-all
docker compose down
```
### 🌐 Access Services
@@ -291,6 +285,39 @@ Once started, services will be available at:
* Backend API: `http://localhost:8080`
* Jaeger Tracing: `http://localhost:16686`
## 📱 Interface Showcase
### Web UI Interface
<table>
<tr>
<td><b>Knowledge Base Management</b><br/><img src="./docs/images/knowledgebases.png" alt="Knowledge Base Management"></td>
<td><b>Conversation Settings</b><br/><img src="./docs/images/settings.png" alt="Conversation Settings"></td>
</tr>
<tr>
<td colspan="2"><b>Intelligent Q&A Conversation</b><br/><img src="./docs/images/qa.png" alt="Intelligent Q&A Conversation"></td>
</tr>
<tr>
<td colspan="2"><b>Agent Mode Tool Call Process</b><br/><img src="./docs/images/agent-qa.png" alt="Agent Mode Tool Call Process"></td>
</tr>
</table>
**Knowledge Base Management:** Support for creating FAQ and document knowledge base types, with multiple import methods including drag-and-drop, folder import, and URL import. Automatically identifies document structures and extracts core knowledge to establish indexes. Supports tag management and online entry. The system clearly displays processing progress and document status, achieving efficient knowledge base management.
**Agent Mode:** Support for ReACT Agent mode that can use built-in tools to retrieve knowledge bases, call user-configured MCP tools and web search tools to access external services, providing comprehensive summary reports through multiple iterations and reflection. Supports cross-knowledge base retrieval, allowing selection of multiple knowledge bases for simultaneous retrieval.
**Conversation Strategy:** Support for configuring Agent models, normal mode models, retrieval thresholds, and online Prompt configuration, with precise control over multi-turn conversation behavior and retrieval execution methods. The conversation input box supports Agent mode/normal mode switching, enabling/disabling web search, and selecting conversation models.
### Document Knowledge Graph
WeKnora supports transforming documents into knowledge graphs, displaying the relationships between different sections of the documents. Once the knowledge graph feature is enabled, the system analyzes and constructs an internal semantic association network that not only helps users understand document content but also provides structured support for indexing and retrieval, enhancing the relevance and breadth of search results.
For detailed configuration, please refer to the [Knowledge Graph Configuration Guide](./docs/KnowledgeGraph.md).
### MCP Server
Please refer to the [MCP Configuration Guide](./mcp-server/MCP_CONFIG.md) for the necessary setup.
### 🔌 Using WeChat Dialog Open Platform
WeKnora serves as the core technology framework for the [WeChat Dialog Open Platform](https://chatbot.weixin.qq.com), providing a more convenient usage approach:
@@ -341,7 +368,7 @@ If this is your first time using this project, you can skip steps ①② and go
### ① Stop the services
```bash
./scripts/start_all.sh --stop
docker compose down
```
### ② Clear existing data tables (recommended when no important data exists)
@@ -353,7 +380,7 @@ make clean-db
### ③ Compile and start services
```bash
./scripts/start_all.sh
docker compose up -d --build
```
### ④ Access Web UI
@@ -362,36 +389,6 @@ http://localhost
On your first visit, you will be automatically redirected to the registration/login page. After completing registration, please create a new knowledge base and finish the relevant settings on its configuration page.
## 📱 Interface Showcase
### Web UI Interface
<table>
<tr>
<td><b>Knowledge Base Management</b><br/><img src="./docs/images/knowledgebases.png" alt="Knowledge Base Management"></td>
<td><b>Conversation Settings</b><br/><img src="./docs/images/settings.png" alt="Conversation Settings"></td>
</tr>
<tr>
<td colspan="2"><b>Agent Mode Tool Call Process</b><br/><img src="./docs/images/agent-qa.png" alt="Agent Mode Tool Call Process"></td>
</tr>
</table>
**Knowledge Base Management:** Support for creating FAQ and document knowledge base types, with multiple import methods including drag-and-drop, folder import, and URL import. Automatically identifies document structures and extracts core knowledge to establish indexes. Supports tag management and online entry. The system clearly displays processing progress and document status, achieving efficient knowledge base management.
**Agent Mode:** Support for ReACT Agent mode that can use built-in tools to retrieve knowledge bases, call user-configured MCP tools and web search tools to access external services, providing comprehensive summary reports through multiple iterations and reflection. Supports cross-knowledge base retrieval, allowing selection of multiple knowledge bases for simultaneous retrieval.
**Conversation Strategy:** Support for configuring Agent models, normal mode models, retrieval thresholds, and online Prompt configuration, with precise control over multi-turn conversation behavior and retrieval execution methods. The conversation input box supports Agent mode/normal mode switching, enabling/disabling web search, and selecting conversation models.
### Document Knowledge Graph
WeKnora supports transforming documents into knowledge graphs, displaying the relationships between different sections of the documents. Once the knowledge graph feature is enabled, the system analyzes and constructs an internal semantic association network that not only helps users understand document content but also provides structured support for indexing and retrieval, enhancing the relevance and breadth of search results.
For detailed configuration, please refer to the [Knowledge Graph Configuration Guide](./docs/KnowledgeGraph.md).
### MCP Server
Please refer to the [MCP Configuration Guide](./mcp-server/MCP_CONFIG.md) for the necessary setup.
## 📘 API Reference
Troubleshooting FAQ: [Troubleshooting FAQ](./docs/QA.md)
@@ -407,18 +404,14 @@ Product plans and upcoming features: [Roadmap](./docs/ROADMAP.md)
If you need to frequently modify code, **you don't need to rebuild Docker images every time**! Use fast development mode:
```bash
# Method 1: Using Make commands (Recommended)
make dev-start # Start infrastructure
make dev-app # Start backend (new terminal)
make dev-frontend # Start frontend (new terminal)
# Start infrastructure
make dev-start
# Method 2: One-click start
./scripts/quick-dev.sh
# Start backend (new terminal)
make dev-app
# Method 3: Using scripts
./scripts/dev.sh start # Start infrastructure
./scripts/dev.sh app # Start backend (new terminal)
./scripts/dev.sh frontend # Start frontend (new terminal)
# Start frontend (new terminal)
make dev-frontend
```
**Development Advantages:**

View File

@@ -1,18 +1,42 @@
<p align="center">
<picture>
<img src="./docs/images/logo.png" alt="WeKnora Logo" height="120"/>
</picture>
</p>
<p align="center">
<picture>
<a href="https://trendshift.io/repositories/15289" target="_blank">
<img src="https://trendshift.io/api/badge/repositories/15289" alt="Tencent%2FWeKnora | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/>
</a>
</picture>
</p>
<p align="center">
<a href="https://weknora.weixin.qq.com" target="_blank">
<img alt="官方网站" src="https://img.shields.io/badge/官方网站-WeKnora-4e6b99">
</a>
<a href="https://chatbot.weixin.qq.com" target="_blank">
<img alt="微信对话开放平台" src="https://img.shields.io/badge/微信对话开放平台-5ac725">
</a>
<a href="https://github.com/Tencent/WeKnora/blob/main/LICENSE">
<img src="https://img.shields.io/badge/License-MIT-ffffff?labelColor=d4eaf7&color=2e6cc4" alt="License">
</a>
<a href="./CHANGELOG.md">
<img alt="版本" src="https://img.shields.io/badge/version-0.3.5-2e6cc4?labelColor=d4eaf7">
</a>
</p>
<p align="center">
| <a href="./README.md"><b>English</b></a> | <b>简体中文</b> | <a href="./README_JA.md"><b>日本語</b></a> | <a href="./README_KO.md"><b>한국어</b></a> |
</p>
| **[English](./README.md)** | **简体中文** | **[日本語](./README_JA.md)** |
<p align="center">
<h4 align="center">
[项目介绍](#-项目介绍) • [架构设计](#-架构设计) • [核心特性](#-核心特性) • [快速开始](#-快速开始) • [文档](#-文档) • [开发指南](#-开发指南)
</h4>
</p>
# 💡 WeKnora - 基于大模型的文档理解检索框架
@@ -50,7 +74,8 @@
- **混合检索优化**:按目标分组并复用查询向量,提升检索性能
- **Final Answer工具**新增final_answer工具及Agent耗时跟踪优化Agent工作流
**更早版本**
<details>
<summary><b>更早版本</b></summary>
**v0.3.3 版本亮点:**
@@ -102,7 +127,7 @@
- 🎨 **全新UI**优化对话界面支持Agent模式/普通模式切换,展示工具调用过程,知识库管理界面全面升级
-**底层升级**引入MQ异步任务管理支持数据库自动迁移提供快速开发模式
</details>
## 🔒 安全声明
@@ -115,7 +140,7 @@
## 🏗️ 架构设计
weknora-pipelone.png
![weknora-architecture.png](./docs/images/architecture.png)
WeKnora 采用现代化模块化设计,构建了一条完整的文档理解与检索流水线。系统主要包括文档解析、向量化处理、检索引擎和大模型推理等核心模块,每个组件均可灵活配置与扩展。
@@ -202,21 +227,17 @@ cp .env.example .env
# 所有变量说明详见 .env.example 注释
```
#### ③ 启动服务 (含 Ollama)
#### ③ 启动服务
检查 .env 文件中需要启动的镜像。
检查 `.env` 文件中需要启动的镜像,然后使用 Docker Compose 启动 WeKnora 主服务
```bash
./scripts/start_all.sh
docker compose up -d
```
或者
#### ③.0 单独启动 Ollama可选
```bash
make start-all
```
#### ③.0 启动Ollama (可选)
如果你在 `.env` 中配置了本地 Ollama 模型,还需要额外启动 Ollama 服务:
```bash
ollama serve > /dev/null 2>&1 &
@@ -233,39 +254,37 @@ docker compose up -d
- 启动全部功能
```bash
docker-compose --profile full up -d
docker compose --profile full up -d
```
- 需要 tracing 日志
```bash
docker-compose --profile jaeger up -d
docker compose --profile jaeger up -d
```
- 需要 neo4j 知识图谱
```bash
docker-compose --profile neo4j up -d
docker compose --profile neo4j up -d
```
- 需要 minio 文件存储服务
```bash
docker-compose --profile minio up -d
docker compose --profile minio up -d
```
- 多选项组合
```bash
docker-compose --profile neo4j --profile minio up -d
docker compose --profile neo4j --profile minio up -d
```
#### ④ 停止服务
```bash
./scripts/start_all.sh --stop
# 或
make stop-all
docker compose down
```
### 🌐 服务访问地址
@@ -276,6 +295,40 @@ make stop-all
- 后端 API`http://localhost:8080`
- 链路追踪Jaeger`http://localhost:16686`
## 📱 功能展示
### Web UI 界面
<table>
<tr>
<td><b>知识库管理</b><br/><img src="./docs/images/knowledgebases.png" alt="知识库管理"></td>
<td><b>对话设置</b><br/><img src="./docs/images/settings.png" alt="对话设置"></td>
</tr>
<tr>
<td colspan="2"><b>智能问答对话</b><br/><img src="./docs/images/qa.png" alt="智能问答对话"></td>
</tr>
<tr>
<td colspan="2"><b>Agent模式工具调用过程</b><br/><img src="./docs/images/agent-qa.png" alt="Agent模式工具调用过程"></td>
</tr>
</table>
**知识库管理:** 支持创建FAQ和文档两种类型知识库支持拖拽上传、文件夹导入、URL导入等多种方式自动识别文档结构并提取核心知识建立索引。支持标签管理和在线录入系统清晰展示处理进度和文档状态实现高效的知识库管理。
**Agent模式** 支持开启ReACT Agent模式可使用内置工具检索知识库调用用户配置的MCP工具和网络搜索工具访问外部服务通过多次迭代和反思最终给出全面的总结报告。支持跨知识库检索可以选择多个知识库同时检索。
**对话策略:** 支持配置Agent模型、普通模式所需的模型、检索阈值支持在线配置Prompt精确控制多轮对话行为和检索召回执行方式。对话输入框支持Agent模式/普通模式切换,支持开启和关闭网络搜索,支持选择对话模型。
### 文档知识图谱
WeKnora 支持将文档转化为知识图谱,展示文档中不同段落之间的关联关系。开启知识图谱功能后,系统会分析并构建文档内部的语义关联网络,不仅帮助用户理解文档内容,还为索引和检索提供结构化支撑,提升检索结果的相关性和广度。
具体配置请参考 [知识图谱配置说明](./docs/KnowledgeGraph.md) 进行相关配置。
### 配套MCP服务器
请参考 [MCP配置说明](./mcp-server/MCP_CONFIG.md) 进行相关配置。
### 🔌 使用微信对话开放平台
WeKnora 作为[微信对话开放平台](https://chatbot.weixin.qq.com)的核心技术框架,提供更简便的使用方式:
@@ -330,7 +383,7 @@ python -m weknora-mcp-server
### ① 关闭服务
```bash
./scripts/start_all.sh --stop
docker compose down
```
### ② 清空原有数据表(建议在没有重要数据的情况下使用)
@@ -342,7 +395,7 @@ make clean-db
### ③ 编译并启动服务
```bash
./scripts/start_all.sh
docker compose up -d --build
```
### ④ 访问Web UI
@@ -351,33 +404,6 @@ make clean-db
首次访问会自动跳转到注册登录页面,完成注册后,请创建一个新的知识库,并在该知识库的设置页面完成相关设置。
## 📱 功能展示
### Web UI 界面
| | |
| ----------------- | -------- |
| **知识库管理** | **对话设置** |
| **Agent模式工具调用过程** | |
**知识库管理:** 支持创建FAQ和文档两种类型知识库支持拖拽上传、文件夹导入、URL导入等多种方式自动识别文档结构并提取核心知识建立索引。支持标签管理和在线录入系统清晰展示处理进度和文档状态实现高效的知识库管理。
**Agent模式** 支持开启ReACT Agent模式可使用内置工具检索知识库调用用户配置的MCP工具和网络搜索工具访问外部服务通过多次迭代和反思最终给出全面的总结报告。支持跨知识库检索可以选择多个知识库同时检索。
**对话策略:** 支持配置Agent模型、普通模式所需的模型、检索阈值支持在线配置Prompt精确控制多轮对话行为和检索召回执行方式。对话输入框支持Agent模式/普通模式切换,支持开启和关闭网络搜索,支持选择对话模型。
### 文档知识图谱
WeKnora 支持将文档转化为知识图谱,展示文档中不同段落之间的关联关系。开启知识图谱功能后,系统会分析并构建文档内部的语义关联网络,不仅帮助用户理解文档内容,还为索引和检索提供结构化支撑,提升检索结果的相关性和广度。
具体配置请参考 [知识图谱配置说明](./docs/KnowledgeGraph.md) 进行相关配置。
### 配套MCP服务器
请参考 [MCP配置说明](./mcp-server/MCP_CONFIG.md) 进行相关配置。
## 📘 文档
常见问题排查:[常见问题排查](./docs/QA.md)
@@ -393,18 +419,14 @@ WeKnora 支持将文档转化为知识图谱,展示文档中不同段落之间
如果你需要频繁修改代码,**不需要每次重新构建 Docker 镜像**!使用快速开发模式:
```bash
# 方式 1使用 Make 命令(推荐)
make dev-start # 启动基础设施
make dev-app # 启动后端(新终端)
make dev-frontend # 启动前端(新终端)
# 启动基础设施
make dev-start
# 方式 2一键启动
./scripts/quick-dev.sh
# 启动后端(新终端)
make dev-app
# 方式 3使用脚本
./scripts/dev.sh start # 启动基础设施
./scripts/dev.sh app # 启动后端(新终端)
./scripts/dev.sh frontend # 启动前端(新终端)
# 启动前端(新终端)
make dev-frontend
```
**开发优势:**
@@ -476,7 +498,7 @@ refactor: 重构文档解析模块
感谢以下优秀的贡献者们:
[Contributors](https://github.com/Tencent/WeKnora/graphs/contributors)
[![Contributors](https://contrib.rocks/image?repo=Tencent/WeKnora)](https://github.com/Tencent/WeKnora/graphs/contributors)
## 📄 许可证
@@ -485,3 +507,11 @@ refactor: 重构文档解析模块
## 📈 项目统计
<a href="https://www.star-history.com/#Tencent/WeKnora&type=date&legend=top-left">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=Tencent/WeKnora&type=date&theme=dark&legend=top-left" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=Tencent/WeKnora&type=date&legend=top-left" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=Tencent/WeKnora&type=date&legend=top-left" />
</picture>
</a>

View File

@@ -27,7 +27,7 @@
</p>
<p align="center">
| <a href="./README.md"><b>English</b></a> | <a href="./README_CN.md"><b>简体中文</b></a> | <b>日本語</b> |
| <a href="./README.md"><b>English</b></a> | <a href="./README_CN.md"><b>简体中文</b></a> | <b>日本語</b> | <a href="./README_KO.md"><b>한국어</b></a> |
</p>
<p align="center">
@@ -86,6 +86,21 @@
- **バケット自動作成**:ストレージエンジン接続チェックの強化、バケットの自動作成をサポート
- **Milvusベクトルデータベース**ナレッジ検索用にMilvusベクトルデータベースバックエンドを追加
**v0.3.2 バージョンのハイライト:**
- 🔍 **ナレッジ検索**:新しい「ナレッジ検索」エントリポイント、セマンティック検索をサポートし、検索結果を直接会話ウィンドウに持ち込み可能
- ⚙️ **パーサーとストレージエンジンの設定**:設定画面でソースごとのドキュメントパーサーとストレージエンジンを設定可能、ナレッジベースでファイルタイプ別のパーサー選択をサポート
- 🖼️ **ローカルストレージ画像レンダリング**:ローカルストレージモードで会話中の画像レンダリングをサポート、ストリーミング中の画像プレースホルダーを最適化
- 📄 **ドキュメントプレビュー**:ユーザーがアップロードした元のファイルをプレビューする組み込みドキュメントプレビューコンポーネント
- 🎨 **UI最適化**:ナレッジベース、エージェント、共有スペースリストページのインタラクションを再設計
- 🗄️ **Milvusサポート**ナレッジ検索用にMilvusベクトルデータベースバックエンドを追加
- 🌋 **Volcengine TOS**Volcengine TOSオブジェクトストレージサポートを追加
- 📊 **Mermaidレンダリング**チャットでMermaidダイアグラムのレンダリングをサポート、フルスクリーンビューアー、ズーム、パン、ツールバー、エクスポート機能付き
- 💬 **バッチ会話管理**:バッチ管理と全セッション一括削除機能
- 🔗 **リモートURLナレッジ**リモートファイルURLからナレッジエントリの作成をサポート
- 🧠 **メモリグラフプレビュー**:ユーザーレベルのメモリグラフ可視化プレビュー
- 🔄 **非同期再解析**既存のナレッジドキュメントの非同期再処理API
**v0.3.0 バージョンのハイライト:**
- 🏢 **共有スペース**共有スペース管理、メンバー招待、メンバー間でのナレッジベースとAgentの共有、テナント分離検索
@@ -125,7 +140,7 @@
## 🏗️ アーキテクチャ設計
![weknora-pipelone.png](./docs/images/architecture.png)
![weknora-architecture.png](./docs/images/architecture.png)
WeKnoraは現代的なモジュラー設計を採用し、完全な文書理解と検索パイプラインを構築しています。システムには主に文書解析、ベクトル化処理、検索エンジン、大規模モデル推論などのコアモジュールが含まれ、各コンポーネントは柔軟に設定および拡張できます。
@@ -208,21 +223,17 @@ cp .env.example .env
# すべての変数の説明は.env.exampleのコメントを参照
```
#### ③ サービスを起動しますOllama を含む)
#### ③ メインサービスを起動します
.env ファイルで起動する必要があるイメージを確認します。
`.env` ファイルで起動する必要があるイメージを確認し、Docker Compose で WeKnora のメインサービスを起動します。
```bash
./scripts/start_all.sh
docker compose up -d
```
または
#### ③.0 Ollama を個別に起動する (オプション)
```bash
make start-all
```
#### ③.0 ollama サービスを起動する (オプション)
`.env` でローカル Ollama モデルを設定している場合は、追加で Ollama サービスを起動してください。
```bash
ollama serve > /dev/null 2>&1 &
@@ -237,35 +248,33 @@ docker compose up -d
- すべての機能を有効にする
```bash
docker-compose --profile full up -d
docker compose --profile full up -d
```
- トレースログが必要
```bash
docker-compose --profile jaeger up -d
docker compose --profile jaeger up -d
```
- Neo4j ナレッジグラフが必要
```bash
docker-compose --profile neo4j up -d
docker compose --profile neo4j up -d
```
- Minio ファイルストレージサービスが必要
```bash
docker-compose --profile minio up -d
docker compose --profile minio up -d
```
- 複数のオプションの組み合わせ
```bash
docker-compose --profile neo4j --profile minio up -d
docker compose --profile neo4j --profile minio up -d
```
#### ④ サービスの停止
```bash
./scripts/start_all.sh --stop
# または
make stop-all
docker compose down
```
### 🌐 サービスアクセスアドレス
@@ -276,6 +285,40 @@ make stop-all
* バックエンドAPI`http://localhost:8080`
* リンクトレースJaeger`http://localhost:16686`
## 📱 機能デモ
### Web UIインターフェース
<table>
<tr>
<td><b>ナレッジベース管理</b><br/><img src="./docs/images/knowledgebases.png" alt="ナレッジベース管理"></td>
<td><b>対話設定</b><br/><img src="./docs/images/settings.png" alt="対話設定"></td>
</tr>
<tr>
<td colspan="2"><b>インテリジェントQ&A対話</b><br/><img src="./docs/images/qa.png" alt="インテリジェントQ&A対話"></td>
</tr>
<tr>
<td colspan="2"><b>Agentモードツール呼び出しプロセス</b><br/><img src="./docs/images/agent-qa.png" alt="Agentモードツール呼び出しプロセス"></td>
</tr>
</table>
**ナレッジベース管理:** FAQとドキュメントの2種類のナレッジベースの作成をサポート、ドラッグドロップアップロード、フォルダーインポート、URLインポートなど複数の方法をサポート、文書構造を自動認識してコア知識を抽出し、インデックスを構築します。タグ管理とオンライン入力をサポート、システムは処理の進行状況と文書のステータスを明確に表示し、効率的なナレッジベース管理を実現します。
**Agentモード** ReACT Agentモードの有効化をサポート、組み込みツールでナレッジベースを検索、ユーザーが設定したMCPツールとWeb検索ツールを呼び出して外部サービスにアクセス、複数回の反復とリフレクションを通じて、最終的に包括的なサマリーレポートを提供します。クロスナレッジベース検索をサポート、複数のナレッジベースを同時に検索できます。
**対話戦略:** Agentモデル、通常モードに必要なモデル、検索閾値の設定をサポート、オンラインPrompt設定をサポート、マルチターン対話の動作と検索リコールの実行方法を精密に制御します。対話入力ボックスはAgentモード/通常モードの切り替えをサポート、Web検索の有効化/無効化をサポート、対話モデルの選択をサポートします。
### 文書ナレッジグラフ
WeKnoraは文書をナレッジグラフに変換し、文書内の異なる段落間の関連関係を表示することをサポートします。ナレッジグラフ機能を有効にすると、システムは文書内部の意味関連ネットワークを分析・構築し、ユーザーが文書内容を理解するのを助けるだけでなく、インデックスと検索に構造化サポートを提供し、検索結果の関連性と幅を向上させます。
詳細な設定については、[ナレッジグラフ設定ガイド](./docs/KnowledgeGraph.md)をご参照ください。
### 対応するMCPサーバー
[MCP設定ガイド](./mcp-server/MCP_CONFIG.md) をご参照のうえ、必要な設定を行ってください。
### 🔌 WeChat対話オープンプラットフォームの使用
WeKnoraは[WeChat対話オープンプラットフォーム](https://chatbot.weixin.qq.com)のコア技術フレームワークとして、より簡単な使用方法を提供します:
@@ -327,7 +370,7 @@ python -m weknora-mcp-server
### ① サービスの停止
```bash
./scripts/start_all.sh --stop
docker compose down
```
### ② 既存のデータテーブルをクリア(重要なデータがない場合の推奨)
@@ -339,7 +382,7 @@ make clean-db
### ③ コンパイルしてサービスを起動
```bash
./scripts/start_all.sh
docker compose up -d --build
```
### ④ Web UIにアクセス
@@ -348,43 +391,14 @@ http://localhost
初回アクセス時は自動的に登録・ログインページに遷移します。登録完了後、新規にナレッジベースを作成し、その設定画面で必要な項目を構成してください。
## 📱 機能デモ
### Web UIインターフェース
<table>
<tr>
<td><b>ナレッジベース管理</b><br/><img src="./docs/images/knowledgebases.png" alt="ナレッジベース管理"></td>
<td><b>対話設定</b><br/><img src="./docs/images/settings.png" alt="対話設定"></td>
</tr>
<tr>
<td colspan="2"><b>Agentモードツール呼び出しプロセス</b><br/><img src="./docs/images/agent-qa.png" alt="Agentモードツール呼び出しプロセス"></td>
</tr>
</table>
**ナレッジベース管理:** FAQとドキュメントの2種類のナレッジベースの作成をサポート、ドラッグドロップアップロード、フォルダーインポート、URLインポートなど複数の方法をサポート、文書構造を自動認識してコア知識を抽出し、インデックスを構築します。タグ管理とオンライン入力をサポート、システムは処理の進行状況と文書のステータスを明確に表示し、効率的なナレッジベース管理を実現します。
**Agentモード** ReACT Agentモードの有効化をサポート、組み込みツールでナレッジベースを検索、ユーザーが設定したMCPツールとWeb検索ツールを呼び出して外部サービスにアクセス、複数回の反復とリフレクションを通じて、最終的に包括的なサマリーレポートを提供します。クロスナレッジベース検索をサポート、複数のナレッジベースを同時に検索できます。
**対話戦略:** Agentモデル、通常モードに必要なモデル、検索閾値の設定をサポート、オンラインPrompt設定をサポート、マルチターン対話の動作と検索リコールの実行方法を精密に制御します。対話入力ボックスはAgentモード/通常モードの切り替えをサポート、Web検索の有効化/無効化をサポート、対話モデルの選択をサポートします。
### 文書ナレッジグラフ
WeKnoraは文書をナレッジグラフに変換し、文書内の異なる段落間の関連関係を表示することをサポートします。ナレッジグラフ機能を有効にすると、システムは文書内部の意味関連ネットワークを分析・構築し、ユーザーが文書内容を理解するのを助けるだけでなく、インデックスと検索に構造化サポートを提供し、検索結果の関連性と幅を向上させます。
詳細な設定については、[ナレッジグラフ設定ガイド](./docs/KnowledgeGraph.md)をご参照ください。
### 対応するMCPサーバー
[MCP設定ガイド](./mcp-server/MCP_CONFIG.md) をご参照のうえ、必要な設定を行ってください。
## 📘 ドキュメント
よくある問題の解決:[よくある問題](./docs/QA.md)
詳細なAPIドキュメントは[APIドキュメント](./docs/api/README.md)を参照してください
製品計画と今後の機能:[Roadmap](./docs/ROADMAP.md)
## 🧭 開発ガイド
### ⚡ 高速開発モード(推奨)
@@ -392,18 +406,14 @@ WeKnoraは文書をナレッジグラフに変換し、文書内の異なる段
コードを頻繁に変更する必要がある場合、**Dockerイメージを毎回再構築する必要はありません**!高速開発モードを使用してください:
```bash
# 方法1Makeコマンドを使用推奨
make dev-start # インフラストラクチャを起動
make dev-app # バックエンドを起動(新しいターミナル)
make dev-frontend # フロントエンドを起動(新しいターミナル)
# インフラストラクチャを起動
make dev-start
# 方法2ワンクリック起動
./scripts/quick-dev.sh
# バックエンドを起動(新しいターミナル)
make dev-app
# 方法3スクリプトを使用
./scripts/dev.sh start # インフラストラクチャを起動
./scripts/dev.sh app # バックエンドを起動(新しいターミナル)
./scripts/dev.sh frontend # フロントエンドを起動(新しいターミナル)
# フロントエンドを起動(新しいターミナル)
make dev-frontend
```
**開発の利点:**
@@ -474,7 +484,7 @@ refactor: 文書解析モジュールをリファクタリング
素晴らしいコントリビューターに感謝します:
[![Contributors](https://contrib.rocks/image?repo=Tencent/WeKnora )](https://github.com/Tencent/WeKnora/graphs/contributors )
[![Contributors](https://contrib.rocks/image?repo=Tencent/WeKnora)](https://github.com/Tencent/WeKnora/graphs/contributors)
## 📄 ライセンス

View File

@@ -27,7 +27,7 @@
</p>
<p align="center">
| <a href="./README.md"><b>English</b></a> | <a href="./README_CN.md"><b>简体中文</b></a> | <b>한국어</b> |
| <a href="./README.md"><b>English</b></a> | <a href="./README_CN.md"><b>简体中文</b></a> | <a href="./README_JA.md"><b>日本語</b></a> | <b>한국어</b> |
</p>
<p align="center">
@@ -86,15 +86,36 @@
- **버킷 자동 생성**: 스토리지 엔진 연결 확인 강화, 버킷 자동 생성 지원
- **Milvus 벡터 데이터베이스**: 지식 검색을 위한 Milvus 벡터 데이터베이스 백엔드 추가
**v0.3.2 하이라이트:**
- 🔍 **지식 검색**: 시맨틱 검색을 지원하는 새로운 "지식 검색" 진입점, 검색 결과를 대화 창으로 바로 가져오기 지원
- ⚙️ **파서 및 스토리지 엔진 설정**: 설정에서 소스별 문서 파서 엔진과 스토리지 엔진 구성 가능, 지식베이스에서 파일 타입별 파서 선택 지원
- 🖼️ **로컬 스토리지 이미지 렌더링**: 로컬 스토리지 모드에서 대화 중 이미지 렌더링 지원, 스트리밍 이미지 플레이스홀더 최적화
- 📄 **문서 미리보기**: 사용자가 업로드한 원본 파일을 미리 볼 수 있는 내장 문서 미리보기 컴포넌트
- 🎨 **UI 최적화**: 지식베이스, 에이전트, 공유 공간 목록 페이지 인터랙션 개편
- 🗄️ **Milvus 지원**: 지식 검색을 위한 Milvus 벡터 데이터베이스 백엔드 추가
- 🌋 **Volcengine TOS**: Volcengine TOS 오브젝트 스토리지 지원 추가
- 📊 **Mermaid 렌더링**: 채팅에서 Mermaid 다이어그램 렌더링 지원, 전체 화면 뷰어/줌/내비게이션/내보내기 기능 포함
- 💬 **대화 일괄 관리**: 일괄 관리 및 전체 세션 삭제 기능
- 🔗 **원격 URL 지식**: 원격 파일 URL로 지식 항목 생성 지원
- 🧠 **메모리 그래프 미리보기**: 사용자 레벨 메모리 그래프 시각화 미리보기
- 🔄 **비동기 재파싱**: 기존 지식 문서를 비동기로 재처리하는 API
**v0.3.0 하이라이트:**
- 🏢 **공유 공간**: 멤버 초대, 멤버 간 지식베이스/에이전트 공유, 테넌트 격리 검색을 지원하는 공유 공간
- 🧩 **Agent Skills**: 스마트 추론 에이전트를 위한 사전 로드 스킬과 샌드박스 기반 보안 격리 실행 환경 제공
- 🤖 **커스텀 에이전트**: 지식베이스 선택 모드(전체/지정/비활성화)와 함께 커스텀 에이전트 생성, 설정, 선택 지원
- 📊 **데이터 분석 에이전트**: 내장 데이터 분석 에이전트, CSV/Excel 분석용 DataSchema 도구
- 🧠 **사고 모드**: LLM과 에이전트의 사고 모드 지원 및 사고 내용 지능형 필터링
- 🔍 **웹 검색 제공자**: DuckDuckGo 외에 Bing, Google 검색 제공자 추가
- 📋 **FAQ 강화**: 일괄 임포트 드라이런, 유사 질문, 검색 결과 매칭 질문 필드, 대량 임포트 오브젝트 스토리지 오프로드
- 🔑 **API Key 인증**: API Key 인증 메커니즘, Swagger 문서 보안 설정
- 📎 **입력창 내 선택**: 입력창에서 지식베이스와 파일을 직접 선택, @멘션 표시
- ☸️ **Helm Chart**: Neo4j GraphRAG 지원을 포함한 Kubernetes 배포용 완전한 Helm Chart 제공
- 🔒 **보안 강**: SSRF 안전 HTTP 클라이언트, 향상된 SQL 검증, MCP stdio 전송 보안
- 🌍 **국제**: 한국어(한국어) 지원 추가
- 🔒 **보안 강화**: SSRF 안전 HTTP 클라이언트, 향상된 SQL 검증, MCP stdio 전송 보안, 샌드박스 기반 실행
-**인프라**: Qdrant 벡터 데이터베이스 지원, Redis ACL, 로그 레벨 설정, Ollama 임베딩 최적화, `DISABLE_REGISTRATION` 제어
**v0.2.0 하이라이트:**
@@ -202,21 +223,17 @@ cp .env.example .env
# 모든 변수는 .env.example 주석에 설명되어 있습니다
```
#### ③ 서비스 시작(Ollama 포함)
#### ③ 메인 서비스 시작
.env 파일에서 시작해야 하는 이미지를 확인하세요.
`.env` 파일에서 시작 이미지를 확인한 뒤 Docker Compose로 WeKnora 메인 서비스를 시작하세요.
```bash
./scripts/start_all.sh
docker compose up -d
```
또는
#### ③.0 Ollama 별도 시작(선택)
```bash
make start-all
```
#### ③.0 ollama 서비스 시작(선택)
`.env` 에 로컬 Ollama 모델을 설정했다면 Ollama 서비스도 별도로 시작해야 합니다.
```bash
ollama serve > /dev/null 2>&1 &
@@ -231,35 +248,33 @@ docker compose up -d
- 전체 기능 활성화
```bash
docker-compose --profile full up -d
docker compose --profile full up -d
```
- 트레이싱 로그 필요 시
```bash
docker-compose --profile jaeger up -d
docker compose --profile jaeger up -d
```
- Neo4j 지식 그래프 필요 시
```bash
docker-compose --profile neo4j up -d
docker compose --profile neo4j up -d
```
- Minio 파일 스토리지 필요 시
```bash
docker-compose --profile minio up -d
docker compose --profile minio up -d
```
- 여러 옵션 조합
```bash
docker-compose --profile neo4j --profile minio up -d
docker compose --profile neo4j --profile minio up -d
```
#### ④ 서비스 중지
```bash
./scripts/start_all.sh --stop
# 또는
make stop-all
docker compose down
```
### 🌐 서비스 접속 주소
@@ -270,6 +285,39 @@ make stop-all
* 백엔드 API: `http://localhost:8080`
* Jaeger 트레이싱: `http://localhost:16686`
## 📱 인터페이스 소개
### Web UI 인터페이스
<table>
<tr>
<td><b>지식베이스 관리</b><br/><img src="./docs/images/knowledgebases.png" alt="지식베이스 관리"></td>
<td><b>대화 설정</b><br/><img src="./docs/images/settings.png" alt="대화 설정"></td>
</tr>
<tr>
<td colspan="2"><b>지능형 Q&A 대화</b><br/><img src="./docs/images/qa.png" alt="지능형 Q&A 대화"></td>
</tr>
<tr>
<td colspan="2"><b>Agent 모드 도구 호출 과정</b><br/><img src="./docs/images/agent-qa.png" alt="Agent 모드 도구 호출 과정"></td>
</tr>
</table>
**지식베이스 관리:** FAQ/문서 지식베이스 타입 생성 지원, 드래그 앤 드롭/폴더/URL 임포트 등 다양한 방식 지원. 문서 구조를 자동 식별하고 핵심 지식을 추출해 인덱스를 구축합니다. 태그 관리와 온라인 입력을 지원하며, 처리 진행 상황과 문서 상태를 명확히 표시해 효율적인 지식베이스 운영을 돕습니다.
**Agent 모드:** ReACT Agent 모드를 지원하며, 내장 도구로 지식베이스 검색, 사용자 설정 MCP 도구 및 웹 검색 도구 호출을 통해 외부 서비스 접근이 가능합니다. 다중 반복과 리플렉션을 통해 종합 요약 리포트를 제공합니다. 교차 지식베이스 검색도 지원하여 여러 지식베이스를 동시에 검색할 수 있습니다.
**대화 전략:** Agent 모델, 일반 모드 모델, 검색 임계값, 온라인 프롬프트 설정을 지원하여 멀티턴 대화 동작과 검색 실행 방식을 정밀하게 제어할 수 있습니다. 입력창에서 Agent/일반 모드 전환, 웹 검색 활성화/비활성화, 대화 모델 선택을 지원합니다.
### 문서 지식 그래프
WeKnora는 문서를 지식 그래프로 변환해 문서 내 서로 다른 섹션 간 관계를 시각화할 수 있습니다. 지식 그래프 기능을 활성화하면 문서 내부의 시맨틱 연관 네트워크를 분석/구성하여 문서 이해를 돕고, 인덱싱과 검색에 구조화된 지원을 제공해 검색 결과의 관련성과 폭을 향상시킵니다.
자세한 설정은 [지식 그래프 설정 가이드](./docs/KnowledgeGraph.md)를 참고하세요.
### MCP 서버
필요한 설정은 [MCP 설정 가이드](./mcp-server/MCP_CONFIG.md)를 참고하세요.
### 🔌 WeChat 대화 오픈 플랫폼 사용
WeKnora는 [WeChat 대화 오픈 플랫폼](https://chatbot.weixin.qq.com)의 핵심 기술 프레임워크로 사용되며, 보다 간편한 사용 방식을 제공합니다:
@@ -320,7 +368,7 @@ python -m weknora-mcp-server
### ① 서비스 중지
```bash
./scripts/start_all.sh --stop
docker compose down
```
### ② 기존 데이터 테이블 정리(중요 데이터가 없을 때 권장)
@@ -332,7 +380,7 @@ make clean-db
### ③ 컴파일 및 서비스 시작
```bash
./scripts/start_all.sh
docker compose up -d --build
```
### ④ Web UI 접속
@@ -341,36 +389,6 @@ http://localhost
처음 접속하면 자동으로 회원가입/로그인 페이지로 이동합니다. 가입 완료 후 새 지식베이스를 생성하고 설정 페이지에서 필요한 항목을 구성하세요.
## 📱 인터페이스 소개
### Web UI 인터페이스
<table>
<tr>
<td><b>지식베이스 관리</b><br/><img src="./docs/images/knowledgebases.png" alt="지식베이스 관리"></td>
<td><b>대화 설정</b><br/><img src="./docs/images/settings.png" alt="대화 설정"></td>
</tr>
<tr>
<td colspan="2"><b>Agent 모드 도구 호출 과정</b><br/><img src="./docs/images/agent-qa.png" alt="Agent 모드 도구 호출 과정"></td>
</tr>
</table>
**지식베이스 관리:** FAQ/문서 지식베이스 타입 생성 지원, 드래그 앤 드롭/폴더/URL 임포트 등 다양한 방식 지원. 문서 구조를 자동 식별하고 핵심 지식을 추출해 인덱스를 구축합니다. 태그 관리와 온라인 입력을 지원하며, 처리 진행 상황과 문서 상태를 명확히 표시해 효율적인 지식베이스 운영을 돕습니다.
**Agent 모드:** ReACT Agent 모드를 지원하며, 내장 도구로 지식베이스 검색, 사용자 설정 MCP 도구 및 웹 검색 도구 호출을 통해 외부 서비스 접근이 가능합니다. 다중 반복과 리플렉션을 통해 종합 요약 리포트를 제공합니다. 교차 지식베이스 검색도 지원하여 여러 지식베이스를 동시에 검색할 수 있습니다.
**대화 전략:** Agent 모델, 일반 모드 모델, 검색 임계값, 온라인 프롬프트 설정을 지원하여 멀티턴 대화 동작과 검색 실행 방식을 정밀하게 제어할 수 있습니다. 입력창에서 Agent/일반 모드 전환, 웹 검색 활성화/비활성화, 대화 모델 선택을 지원합니다.
### 문서 지식 그래프
WeKnora는 문서를 지식 그래프로 변환해 문서 내 서로 다른 섹션 간 관계를 시각화할 수 있습니다. 지식 그래프 기능을 활성화하면 문서 내부의 시맨틱 연관 네트워크를 분석/구성하여 문서 이해를 돕고, 인덱싱과 검색에 구조화된 지원을 제공해 검색 결과의 관련성과 폭을 향상시킵니다.
자세한 설정은 [지식 그래프 설정 가이드](./docs/KnowledgeGraph.md)를 참고하세요.
### MCP 서버
필요한 설정은 [MCP 설정 가이드](./mcp-server/MCP_CONFIG.md)를 참고하세요.
## 📘 API 레퍼런스
문제 해결 FAQ: [문제 해결 FAQ](./docs/QA.md)
@@ -386,18 +404,14 @@ WeKnora는 문서를 지식 그래프로 변환해 문서 내 서로 다른 섹
코드를 자주 수정해야 한다면 **매번 Docker 이미지를 다시 빌드할 필요가 없습니다**. 고속 개발 모드를 사용하세요.
```bash
# 방법 1: Make 명령 사용 (권장)
make dev-start # 인프라 시작
make dev-app # 백엔드 시작 (새 터미널)
make dev-frontend # 프론트엔드 시작 (새 터미널)
# 인프라 시작
make dev-start
# 방법 2: 원클릭 시작
./scripts/quick-dev.sh
# 백엔드 시작 (새 터미널)
make dev-app
# 방법 3: 스크립트 사용
./scripts/dev.sh start # 인프라 시작
./scripts/dev.sh app # 백엔드 시작 (새 터미널)
./scripts/dev.sh frontend # 프론트엔드 시작 (새 터미널)
# 프론트엔드 시작 (새 터미널)
make dev-frontend
```
**개발 장점:**

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 942 KiB

After

Width:  |  Height:  |  Size: 547 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 242 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 258 KiB

After

Width:  |  Height:  |  Size: 163 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

4
go.mod
View File

@@ -38,6 +38,7 @@ require (
github.com/pgvector/pgvector-go v0.3.0
github.com/qdrant/go-client v1.16.1
github.com/redis/go-redis/v9 v9.14.0
github.com/robfig/cron/v3 v3.0.1
github.com/sashabaranov/go-openai v1.40.5
github.com/sirupsen/logrus v1.9.3
github.com/slack-go/slack v0.18.0-rc2
@@ -60,6 +61,7 @@ require (
go.opentelemetry.io/otel/trace v1.38.0
go.uber.org/dig v1.18.1
golang.org/x/crypto v0.46.0
golang.org/x/net v0.48.0
golang.org/x/sync v0.19.0
golang.org/x/sys v0.40.0
google.golang.org/api v0.259.0
@@ -226,7 +228,6 @@ require (
github.com/quic-go/qpack v0.5.1 // indirect
github.com/quic-go/quic-go v0.54.0 // indirect
github.com/rivo/uniseg v0.4.7 // indirect
github.com/robfig/cron/v3 v3.0.1 // indirect
github.com/rogpeppe/go-internal v1.14.1 // indirect
github.com/rs/xid v1.6.0 // indirect
github.com/sagikazarmark/locafero v0.7.0 // indirect
@@ -279,7 +280,6 @@ require (
golang.org/x/arch v0.20.0 // indirect
golang.org/x/exp v0.0.0-20251209150349-8475f28825e9 // indirect
golang.org/x/mod v0.31.0 // indirect
golang.org/x/net v0.48.0 // indirect
golang.org/x/oauth2 v0.34.0 // indirect
golang.org/x/telemetry v0.0.0-20251208220230-2638a1023523 // indirect
golang.org/x/text v0.32.0 // indirect