Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Empty file added .dockerignore
Empty file.
210 changes: 210 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,210 @@
# 使用说明
# 1. 复制此文件为 .env
# 2. 替换所有占位符为实际值
# 3. 确保 .env 文件不会被提交到版本控制系统

# gin mod
# 可选值: debug(开发模式,有详细日志), release(生产模式)
GIN_MODE=debug

# Ollama 服务的基准 URL,用于连接本地/其他服务器上运行的 Ollama 服务
OLLAMA_BASE_URL=http://host.docker.internal:11434

# 存储配置
# 主数据库类型(postgres/mysql)
DB_DRIVER=postgres

# 向量存储类型(postgres/elasticsearch_v7/elasticsearch_v8)
RETRIEVE_DRIVER=postgres

# 文件存储类型(local/minio/cos)
STORAGE_TYPE=local

# 流处理后端(memory/redis)
STREAM_MANAGER_TYPE=redis

# 主数据库配置
# 数据库端口,默认为5432
DB_PORT=5432

# 应用服务端口,默认为8080
APP_PORT=8080

# 前端服务端口,默认为80
FRONTEND_PORT=80

# 文档解析模块端口,默认为50051
DOCREADER_PORT=50051

# 数据库用户名
DB_USER=postgres

# 数据库密码
DB_PASSWORD=postgres123!@#

# 数据库名称
DB_NAME=WeKnora

# 如果使用 redis 作为流处理后端,需要配置以下参数
# Redis端口,默认为6379
REDIS_PORT=6379

# Redis密码,如果没有设置密码,可以留空
REDIS_PASSWORD=redis123!@#

# Redis数据库索引,默认为0
REDIS_DB=0

# Redis key的前缀,用于命名空间隔离
REDIS_PREFIX=stream:

# 当使用本地存储时,文件保存的基础目录路径
LOCAL_STORAGE_BASE_DIR=./data/files

TENANT_AES_KEY=weknorarag-api-key-secret-secret

# 是否开启知识图谱构建和检索(构建阶段需调用大模型,耗时较长)
ENABLE_GRAPH_RAG=false

MINIO_PORT=9000

MINIO_CONSOLE_PORT=9001

# Embedding并发数,出现429错误时,可调小此参数
CONCURRENCY_POOL_SIZE=5

# 如果使用ElasticSearch作为向量存储,需要配置以下参数
# ElasticSearch地址,例如 http://localhost:9200
# ELASTICSEARCH_ADDR=your_elasticsearch_addr

# ElasticSearch用户名,如果需要身份验证
# ELASTICSEARCH_USERNAME=your_elasticsearch_username

# ElasticSearch密码,如果需要身份验证
# ELASTICSEARCH_PASSWORD=your_elasticsearch_password

# ElasticSearch索引名称,用于存储向量数据
# ELASTICSEARCH_INDEX=WeKnora

# 如果使用MinIO作为文件存储,需要配置以下参数
# MinIO访问密钥
# MINIO_ACCESS_KEY_ID=your_minio_access_key

# MinIO密钥
# MINIO_SECRET_ACCESS_KEY=your_minio_secret_key

# MinIO桶名称,用于存储文件
# MINIO_BUCKET_NAME=your_minio_bucket_name

# 如果使用腾讯云COS作为文件存储,需要配置以下参数
# 腾讯云COS的访问密钥ID
# COS_SECRET_ID=your_cos_secret_id

# 腾讯云COS的密钥
# COS_SECRET_KEY=your_cos_secret_key

# 腾讯云COS的区域,例如 ap-guangzhou
# COS_REGION=your_cos_region

# 腾讯云COS的桶名称
# COS_BUCKET_NAME=your_cos_bucket_name

# 腾讯云COS的应用ID
# COS_APP_ID=your_cos_app_id

# 腾讯云COS的路径前缀,用于存储文件
# COS_PATH_PREFIX=your_cos_path_prefix

# COS_ENABLE_OLD_DOMAIN=true 表示启用旧的域名格式,默认为 true
COS_ENABLE_OLD_DOMAIN=true

# 如果解析网络连接使用Web代理,需要配置以下参数
# WEB_PROXY=your_web_proxy

# Neo4j 开关
# NEO4J_ENABLE=false

# Neo4j的访问地址
# NEO4J_URI=neo4j://neo4j:7687

# Neo4j的用户名和密码
# NEO4J_USERNAME=neo4j

# Neo4j的密码
# NEO4J_PASSWORD=password

##############################################################

###### 注意: 以下配置不再生效,已在Web“配置初始化”阶段完成 #########


# # 初始化默认租户与知识库
# # 租户ID,通常是一个字符串
# INIT_TEST_TENANT_ID=1

# # 知识库ID,通常是一个字符串
# INIT_TEST_KNOWLEDGE_BASE_ID=kb-00000001

# # LLM Model
# # 使用的LLM模型名称
# # 默认使用 Ollama 的 Qwen3 8B 模型,ollama 会自动处理模型下载和加载
# # 如果需要使用其他模型,请替换为实际的模型名称
# INIT_LLM_MODEL_NAME=qwen3:8b

# # LLM模型的访问地址
# # 支持第三方模型服务的URL
# # 如果使用 Ollama 的本地服务,可以留空,ollama 会自动处理
# # INIT_LLM_MODEL_BASE_URL=your_llm_model_base_url

# # LLM模型的API密钥,如果需要身份验证,可以设置
# # 支持第三方模型服务的API密钥
# # 如果使用 Ollama 的本地服务,可以留空,ollama 会自动处理
# # INIT_LLM_MODEL_API_KEY=your_llm_model_api_key

# # Embedding Model
# # 使用的Embedding模型名称
# # 默认使用 nomic-embed-text 模型,支持文本嵌入
# # 如果需要使用其他模型,请替换为实际的模型名称
# INIT_EMBEDDING_MODEL_NAME=nomic-embed-text

# # Embedding模型向量维度
# INIT_EMBEDDING_MODEL_DIMENSION=768

# # Embedding模型的ID,通常是一个字符串
# INIT_EMBEDDING_MODEL_ID=builtin:nomic-embed-text:768

# # Embedding模型的访问地址
# # 支持第三方模型服务的URL
# # 如果使用 Ollama 的本地服务,可以留空,ollama 会自动处理
# # INIT_EMBEDDING_MODEL_BASE_URL=your_embedding_model_base_url

# # Embedding模型的API密钥,如果需要身份验证,可以设置
# # 支持第三方模型服务的API密钥
# # 如果使用 Ollama 的本地服务,可以留空,ollama 会自动处理
# # INIT_EMBEDDING_MODEL_API_KEY=your_embedding_model_api_key

# # Rerank Model(可选)
# # 对于rag来说,使用Rerank模型对提升文档搜索的准确度有着重要作用
# # 目前 ollama 暂不支持运行 Rerank 模型
# # 使用的Rerank模型名称
# # INIT_RERANK_MODEL_NAME=your_rerank_model_name

# # Rerank模型的访问地址
# # 支持第三方模型服务的URL
# # INIT_RERANK_MODEL_BASE_URL=your_rerank_model_base_url

# # Rerank模型的API密钥,如果需要身份验证,可以设置
# # 支持第三方模型服务的API密钥
# # INIT_RERANK_MODEL_API_KEY=your_rerank_model_api_key

# # VLM_MODEL_NAME 使用的多模态模型名称
# # 用于解析图片数据
# # VLM_MODEL_NAME=your_vlm_model_name

# # VLM_MODEL_BASE_URL 使用的多模态模型访问地址
# # 支持第三方模型服务的URL
# # VLM_MODEL_BASE_URL=your_vlm_model_base_url

# # VLM_MODEL_API_KEY 使用的多模态模型API密钥
# # 支持第三方模型服务的API密钥
# # VLM_MODEL_API_KEY=your_vlm_model_api_key
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.sh text eol=lf
38 changes: 38 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# 忽略.env文件和其他包含敏感信息的配置文件
.env
# 但不忽略示例文件
!.env.example
*.pem
*_key
*_secret
*.key
*.crt

# IDE和编辑器文件
.idea/
.vscode/
*.swp
*.swo

# 构建和依赖文件
node_modules/
/dist/
/build/
*.log

# 临时文件
tmp/
temp/

WeKnora
/models/
services/docreader/src/proto/__pycache__
test/data/mswag.txt
data/files/

.python-version
.venv/

### macOS
# General
.DS_Store
103 changes: 103 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
# Changelog

All notable changes to this project will be documented in this file.

## [0.1.4] - 2025-09-17

### 🚀 Major Features
- **NEW**: Multi-knowledgebases operation support
- Added comprehensive multi-knowledgebase management functionality
- Implemented multi-data source search engine configuration and optimization logic
- Enhanced knowledge base switching and management in UI
- **NEW**: Enhanced tenant information management
- Added dedicated tenant information page
- Improved user and tenant management capabilities

### 🎨 UI/UX Improvements
- **REDESIGNED**: Settings page with improved layout and functionality
- **ENHANCED**: Menu component with multi-knowledgebase support
- **IMPROVED**: Initialization configuration page structure
- **OPTIMIZED**: Login page and authentication flow

### 🔒 Security Fixes
- **FIXED**: XSS attack vulnerabilities in thinking component
- **FIXED**: Content Security Policy (CSP) errors
- **ENHANCED**: Frontend security measures and input sanitization

### 🐛 Bug Fixes
- **FIXED**: Login direct page navigation issues
- **FIXED**: App LLM model check logic
- **FIXED**: Version script functionality
- **FIXED**: File download content errors
- **IMPROVED**: Document content component display

### 🧹 Code Cleanup
- **REMOVED**: Test data functionality and related APIs
- **SIMPLIFIED**: Initialization configuration components
- **CLEANED**: Redundant UI components and unused code


## [0.1.3] - 2025-09-16

### 🔒 Security Features
- **NEW**: Added login authentication functionality to enhance system security
- Implemented user authentication and authorization mechanisms
- Added session management and access control
- Fixed XSS attack vulnerabilities in frontend components

### 📚 Documentation Updates
- Added security notices in all README files (English, Chinese, Japanese)
- Updated deployment recommendations emphasizing internal/private network deployment
- Enhanced security guidelines to prevent information leakage risks
- Fixed documentation spelling issues

### 🛡️ Security Improvements
- Hide API keys in UI for security purposes
- Enhanced input sanitization and XSS protection
- Added comprehensive security utilities

### 🐛 Bug Fixes
- Fixed OCR AVX support issues
- Improved frontend health check dependencies
- Enhanced Docker binary downloads for target architecture
- Fixed COS file service initialization parameters and URL processing logic

### 🚀 Features & Enhancements
- Improved application and docreader log output
- Enhanced frontend routing and authentication flow
- Added comprehensive user management system
- Improved initialization configuration handling

### 🛡️ Security Recommendations
- Deploy WeKnora services in internal/private network environments
- Avoid direct exposure to public internet
- Configure proper firewall rules and access controls
- Regular updates for security patches and improvements

## [0.1.2] - 2025-09-10

- Fixed health check implementation for docreader service
- Improved query handling for empty queries
- Enhanced knowledge base column value update methods
- Optimized logging throughout the application
- Added process parsing documentation for markdown files
- Fixed OCR model pre-fetching in Docker containers
- Resolved image parser concurrency errors
- Added support for modifying listening port configuration

## [0.1.0] - 2025-09-08

- Initial public release of WeKnora.
- Web UI for knowledge upload, chat, configuration, and settings.
- RAG pipeline with chunking, embedding, retrieval, reranking, and generation.
- Initialization wizard for configuring models (LLM, embedding, rerank, retriever).
- Support for local Ollama and remote API models.
- Vector backends: PostgreSQL (pgvector), Elasticsearch; GraphRAG support.
- End-to-end evaluation utilities and metrics.
- Docker Compose for quick startup and service orchestration.
- MCP server support for integrating with MCP-compatible clients.

[0.1.4]: https://github.com/Tencent/WeKnora/tree/v0.1.4
[0.1.3]: https://github.com/Tencent/WeKnora/tree/v0.1.3
[0.1.2]: https://github.com/Tencent/WeKnora/tree/v0.1.2
[0.1.0]: https://github.com/Tencent/WeKnora/tree/v0.1.0
Loading