mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-07-07 03:48:44 +08:00
Docs: Refactored documentation (#13340)
### What problem does this PR solve? Refactored documentation. ### Type of change - [x] Documentation Update
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"label": "Developers",
|
||||
"label": "Developer guides",
|
||||
"position": 4,
|
||||
"link": {
|
||||
"type": "generated-index",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
sidebar_position: 1
|
||||
sidebar_position: 4
|
||||
slug: /build_docker_image
|
||||
sidebar_custom_props: {
|
||||
categoryIcon: LucidePackage
|
||||
|
||||
59
docs/develop/contributing.md
Normal file
59
docs/develop/contributing.md
Normal file
@@ -0,0 +1,59 @@
|
||||
---
|
||||
sidebar_position: 20
|
||||
slug: /contributing
|
||||
sidebar_custom_props: {
|
||||
categoryIcon: LucideBookA
|
||||
}
|
||||
---
|
||||
# Contribution guidelines
|
||||
|
||||
General guidelines for RAGFlow's community contributors.
|
||||
|
||||
---
|
||||
|
||||
This document offers guidelines and major considerations for submitting your contributions to RAGFlow.
|
||||
|
||||
- To report a bug, file a [GitHub issue](https://github.com/infiniflow/ragflow/issues/new/choose) with us.
|
||||
- For further questions, you can explore existing discussions or initiate a new one in [Discussions](https://github.com/orgs/infiniflow/discussions).
|
||||
|
||||
## What you can contribute
|
||||
|
||||
The list below mentions some contributions you can make, but it is not a complete list.
|
||||
|
||||
- Proposing or implementing new features
|
||||
- Fixing a bug
|
||||
- Adding test cases or demos
|
||||
- Posting a blog or tutorial
|
||||
- Updates to existing documents, codes, or annotations.
|
||||
- Suggesting more user-friendly error codes
|
||||
|
||||
## File a pull request (PR)
|
||||
|
||||
### General workflow
|
||||
|
||||
1. Fork our GitHub repository.
|
||||
2. Clone your fork to your local machine:
|
||||
`git clone git@github.com:<yourname>/ragflow.git`
|
||||
3. Create a local branch:
|
||||
`git checkout -b my-branch`
|
||||
4. Provide sufficient information in your commit message
|
||||
`git commit -m 'Provide sufficient info in your commit message'`
|
||||
5. Commit changes to your local branch, and push to GitHub: (include necessary commit message)
|
||||
`git push origin my-branch.`
|
||||
6. Submit a pull request for review.
|
||||
|
||||
### Before filing a PR
|
||||
|
||||
- Consider splitting a large PR into multiple smaller, standalone PRs to keep a traceable development history.
|
||||
- Ensure that your PR addresses just one issue, or keep any unrelated changes small.
|
||||
- Add test cases when contributing new features. They demonstrate that your code functions correctly and protect against potential issues from future changes.
|
||||
|
||||
### Describing your PR
|
||||
|
||||
- Ensure that your PR title is concise and clear, providing all the required information.
|
||||
- Refer to a corresponding GitHub issue in your PR description if applicable.
|
||||
- Include sufficient design details for *breaking changes* or *API changes* in your description.
|
||||
|
||||
### Reviewing & merging a PR
|
||||
|
||||
Ensure that your PR passes all Continuous Integration (CI) tests before merging it.
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
sidebar_position: 2
|
||||
sidebar_position: 3
|
||||
slug: /launch_ragflow_from_source
|
||||
sidebar_custom_props: {
|
||||
categoryIcon: LucideMonitorPlay
|
||||
@@ -90,7 +90,7 @@ docker compose -f docker/docker-compose-base.yml up -d
|
||||
```
|
||||
|
||||
3. **Optional:** If you cannot access HuggingFace, set the HF_ENDPOINT environment variable to use a mirror site:
|
||||
|
||||
|
||||
```bash
|
||||
export HF_ENDPOINT=https://hf-mirror.com
|
||||
```
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"label": "MCP",
|
||||
"position": 40,
|
||||
"position": 2,
|
||||
"link": {
|
||||
"type": "generated-index",
|
||||
"description": "Guides and references on accessing RAGFlow's datasets via MCP."
|
||||
|
||||
@@ -1,169 +0,0 @@
|
||||
---
|
||||
sidebar_position: 20
|
||||
slug: /migrate_to_single_bucket_mode
|
||||
---
|
||||
|
||||
# Migrate from multi-Bucket to single-bucket mode
|
||||
|
||||
By default, RAGFlow creates one bucket per Knowledge Base (dataset) and one bucket per user folder. This can be problematic when:
|
||||
|
||||
- Your cloud provider charges per bucket
|
||||
- Your IAM policy restricts bucket creation
|
||||
- You want all data organized in a single bucket with directory structure
|
||||
|
||||
The **Single Bucket Mode** allows you to configure RAGFlow to use a single bucket with a directory structure instead of multiple buckets.
|
||||
|
||||
:::info KUDOS
|
||||
This document is contributed by our community contributor [arogan178](https://github.com/arogan178). We may not actively maintain this document.
|
||||
:::
|
||||
|
||||
## How It Works
|
||||
|
||||
### Default Mode (Multiple Buckets)
|
||||
|
||||
```
|
||||
bucket: kb_12345/
|
||||
└── document_1.pdf
|
||||
bucket: kb_67890/
|
||||
└── document_2.pdf
|
||||
bucket: folder_abc/
|
||||
└── file_3.txt
|
||||
```
|
||||
|
||||
### Single Bucket Mode (with prefix_path)
|
||||
|
||||
```
|
||||
bucket: ragflow-bucket/
|
||||
└── ragflow/
|
||||
├── kb_12345/
|
||||
│ └── document_1.pdf
|
||||
├── kb_67890/
|
||||
│ └── document_2.pdf
|
||||
└── folder_abc/
|
||||
└── file_3.txt
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
### MinIO Configuration
|
||||
|
||||
Edit your `service_conf.yaml` or set environment variables:
|
||||
|
||||
```yaml
|
||||
minio:
|
||||
user: "your-access-key"
|
||||
password: "your-secret-key"
|
||||
host: "minio.example.com:443"
|
||||
bucket: "ragflow-bucket" # Default bucket name
|
||||
prefix_path: "ragflow" # Optional prefix path
|
||||
```
|
||||
|
||||
Or using environment variables:
|
||||
|
||||
```bash
|
||||
export MINIO_USER=your-access-key
|
||||
export MINIO_PASSWORD=your-secret-key
|
||||
export MINIO_HOST=minio.example.com:443
|
||||
export MINIO_BUCKET=ragflow-bucket
|
||||
export MINIO_PREFIX_PATH=ragflow
|
||||
```
|
||||
|
||||
### S3 Configuration (already supported)
|
||||
|
||||
```yaml
|
||||
s3:
|
||||
access_key: "your-access-key"
|
||||
secret_key: "your-secret-key"
|
||||
endpoint_url: "https://s3.amazonaws.com"
|
||||
bucket: "my-ragflow-bucket"
|
||||
prefix_path: "production"
|
||||
region: "us-east-1"
|
||||
```
|
||||
|
||||
## IAM Policy Example
|
||||
|
||||
When using single bucket mode, you only need permissions for one bucket:
|
||||
|
||||
```json
|
||||
{
|
||||
"Version": "2012-10-17",
|
||||
"Statement": [
|
||||
{
|
||||
"Effect": "Allow",
|
||||
"Action": ["s3:*"],
|
||||
"Resource": [
|
||||
"arn:aws:s3:::ragflow-bucket",
|
||||
"arn:aws:s3:::ragflow-bucket/*"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## Migration from Multi-Bucket to Single Bucket
|
||||
|
||||
If you're migrating from multi-bucket mode to single-bucket mode:
|
||||
|
||||
1. **Set environment variables** for the new configuration
|
||||
2. **Restart RAGFlow** services
|
||||
3. **Migrate existing data** (optional):
|
||||
|
||||
```bash
|
||||
# Example using mc (MinIO Client)
|
||||
mc alias set old-minio http://old-minio:9000 ACCESS_KEY SECRET_KEY
|
||||
mc alias set new-minio https://new-minio:443 ACCESS_KEY SECRET_KEY
|
||||
|
||||
# List all knowledge base buckets
|
||||
mc ls old-minio/ | grep kb_ | while read -r line; do
|
||||
bucket=$(echo $line | awk '{print $5}')
|
||||
# Copy each bucket to the new structure
|
||||
mc cp --recursive old-minio/$bucket/ new-minio/ragflow-bucket/ragflow/$bucket/
|
||||
done
|
||||
```
|
||||
|
||||
## Toggle Between Modes
|
||||
|
||||
### Enable Single Bucket Mode
|
||||
|
||||
```yaml
|
||||
minio:
|
||||
bucket: "my-single-bucket"
|
||||
prefix_path: "ragflow"
|
||||
```
|
||||
|
||||
### Disable (Use Multi-Bucket Mode)
|
||||
|
||||
```yaml
|
||||
minio:
|
||||
# Leave bucket and prefix_path empty or commented out
|
||||
# bucket: ''
|
||||
# prefix_path: ''
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Issue: Access Denied errors
|
||||
|
||||
**Solution**: Ensure your IAM policy grants access to the bucket specified in the configuration.
|
||||
|
||||
### Issue: Files not found after switching modes
|
||||
|
||||
**Solution**: The path structure changes between modes. You'll need to migrate existing data.
|
||||
|
||||
### Issue: Connection fails with HTTPS
|
||||
|
||||
**Solution**: Ensure `secure: True` is set in the MinIO connection (automatically handled for port 443).
|
||||
|
||||
## Storage Backends Supported
|
||||
|
||||
- ✅ **MinIO** - Full support with single bucket mode
|
||||
- ✅ **AWS S3** - Full support with single bucket mode
|
||||
- ✅ **Alibaba OSS** - Full support with single bucket mode
|
||||
- ✅ **Azure Blob** - Uses container-based structure (different paradigm)
|
||||
- ⚠️ **OpenDAL** - Depends on underlying storage backend
|
||||
|
||||
## Performance Considerations
|
||||
|
||||
- **Single bucket mode** may have slightly better performance for bucket listing operations
|
||||
- **Multi-bucket mode** provides better isolation and organization for large deployments
|
||||
- Choose based on your specific requirements and infrastructure constraints
|
||||
Reference in New Issue
Block a user