Cloud server with RAGFlow
RAGFlow Virtual Machine — a preconfigured cloud server with a RAG tool for Deep Document Understanding. The tool allows for extracting data from various sources to improve the accuracy of large language model (LLM) responses.
The image used to deploy the server contains:
-
RAGFlow — a RAG platform for Deep Document Understanding;
-
Docker — a platform for running containerized applications;
-
Docker Compose — a tool for running multi-container Docker applications;
-
Elasticsearch — a scalable search and analytics engine;
-
OpenSearch — a scalable open-source search and analytics engine;
-
Infinity — an AI-native database for LLMs;
-
OceanBase — a distributed relational database;
-
Seekdb — an AI-native search database;
-
MySQL — a relational database management system;
-
MinIO — an S3-compatible object storage;
-
Redis — a NoSQL in-memory database management system that works with key-value data;
-
NATS — a messaging system for distributed systems;
-
Kibana — a tool for analyzing, visualizing, and managing data stored in Elasticsearch;
-
drivers required for working with graphics processing units (GPUs).
Before creating a server, review the software license agreements included in the image.
Use cases
-
indexing and semantic search in knowledge bases;
-
extracting and processing unstructured data from various sources: PDF files, tables, images, and others;
-
preparing relevant context from uploaded documents to improve the quality of LLM responses.
Minimum resource requirements
Getting started with RAGFlow
1. Create a public floating IP address
Create a public floating IP address so that the cloud server with RAGFlow is accessible from the internet.
Use the Create a public floating IP address section of the Public floating IP addresses guide.
2. Create a cloud server with RAGFlow
-
In the Control panel, on the top menu, click Products and select Cloud Servers.
-
Click Create server.
-
Fill in the blocks:
-
Check the cloud server price.
-
Click Create.
Name and location
-
Enter the server name. It will be set as the hostname in the operating system.
-
Select a location where the server will be created. The available server configurations and resource costs depend on the location. You cannot change the location after the server is created.
Source
-
Open the Applications tab.
-
Select RAGFlow VM.
-
Optional: If you need a different current or archive version of the application, select the required version in the Version field.
Configuration
Select a GPU line configuration from 4 vCPU, RAM от 16 ГБ and размером загрузочного диска от 80 ГБ. Two types of server configurations are available for this line:
- prebuilt configurations — range configurations with different specifications, in which the resource ratio is fixed;
- custom configurations — configurations in which any resource ratio can be specified.
Configurations use different processors depending on the line and pool segment. You can configure the selected configuration. After the server is created, you will be able to change the configuration.
Prebuilt configuration
Custom configuration
-
Open the tab with the GPU line.
-
Click Prebuilt.
-
Optional: You can customize the configuration if you are creating a server in the multi-zone pool segment ru-6 or pool segments ru-3b, ru-7a, and ru-7b:
3.1. Expand the block with the configuration settings description.
3.2. Optional: select the processor manufacturer. Manufacturer selection is not available in all pools.
3.3. Optional: if you do not want physical processor cores pinned to the cloud server vCPUs, uncheck the Dedicated cores checkbox. For more information, see the Dedicated cores.
3.4. Optional: if you want to disable Hyper-Threading for a server with dedicated cores, uncheck the Hyper-Threading (SMT) checkbox.
3.5. Optional: if you are creating a server with dedicated cores and want to host a multiprocessor server on a single NUMA node, check the Mandatory hosting on a single NUMA node checkbox. A server with 4 vCPUs or more can be hosted on a single NUMA node. If the cloud server resources cannot be placed on one node, it will not be created. For more information, see the Placement on a single NUMA node subsection of the Dedicated Cores instruction.
-
Select a GPU.
-
Select a configuration.
-
If both local disks and network volumes are available in the selected configuration, select the disk to be used as the boot disk:
- local disk — check the Local SSD NVMe disk checkbox. A server with a local disk can only be created from images and applications;
- network volume — do not check the Local SSD NVMe disk checkbox.
The amount of RAM allocated to the server may be less than the amount specified in the configuration — the operating system kernel reserves a portion of RAM depending on the kernel version and distribution. The allocated amount on the server can be checked using the command
sudo dmesg | grep Memory.
Volumes
-
If you did not check the Local SSD NVMe disk checkbox when setting up the configuration, the first specified network volume will be used as the server boot disk. To configure it:
1.1. Select the type of network boot disk.
1.2. Specify the size of the network boot disk in GB or TB. Observe the maximum size limits for network volumes.
1.3. If you selected the Universal v2 or SSD Flash v2 disk type, specify the total number of read and write operations in IOPS. After creating the disk, you can change the number of IOPS — reduce or increase. The number of IOPS changes is unlimited.
-
Optional: add an additional network volume server :
2.1. Click Add.
2.2. Select the type of network volume.
2.3. Specify the size of the network disk in GB or TB. Observe the maximum size limits for network volumes.
2.4. If you selected the Universal v2 or Fast SSD v2 disk type, specify the total number of read and write operations in IOPS. After the disk is created, you can change the IOPS value — decrease or increase it. The number of IOPS changes is unlimited.
After the server is created, you will be able to attach new additional disks.
Internet
Configure public access to the server.
The cloud server will be added to a private subnet, which is connected to a cloud router with 1:1 NAT and internet access. Internet access and egress will be provided via the cloud router. The server will be accessible from the internet via a public floating IP address.
-
In the Internet access field, select the Public floating IP address access type.
-
Select the public floating IP address you created in step 1.
Private network
The cloud server can be added to an existing or a new private subnet.
Existing private subnet
New private subnet
-
In the Subnet field, select a private subnet.
-
Optional: In the IP address field, change the default IP address.
-
In the Router field, select an existing router or create a new one.
If the router is not connected to the internet, it will be automatically connected to the internet after the server is created.
Security
Select security groups to filter traffic on server ports. Without security groups, traffic will be blocked. If the block is missing, traffic filtering (port security) is disabled in the server network. With traffic filtering disabled, all traffic is allowed.
Access
-
Place an SSH key for the project on the server for secure connection:
1.1. If an SSH key for the project has not been added to the cloud platform, click Add SSH key, enter a key name, paste the public key in OpenSSH format, and click Add.
1.2. If an SSH key for the project has been added to the cloud platform, select an existing key in the SSH key field. The SSH key is only available in the pool where it is placed.
-
Optional: In the Password for “root”:
2.1. Copy the password for the
rootuser — a user with unrestricted privileges for all system actions.2.2. Save the password in a secure place and do not share it in plain text.
Additional settings
-
If you are planning to create several servers and want to increase infrastructure fault tolerance, add the server to a placement group:
1.1. To create a new group, click Create in the Placement group field.
1.2. Select New group and enter the group name.
1.3. Select the placement policy on different hosts:
- soft — soft-anti-affinity. The system will try to place servers on different hosts. If there is no suitable host when creating the server, it will be created on the same host;
- mandatory — anti-affinity. Servers in the group must be located on different hosts. If there is no suitable host when creating the server, the server will not be created.
1.4. Once the group is created, in the Placement group field, select the placement group.
-
To add additional information or filter servers in the list, add server tags. OS and configuration tags are added automatically. To add a new tag, in the Tags field, enter the tag.
-
To add a script that will be executed using the cloud-init agent during the first operating system boot, in the Automation block, in the User data:
- open the Text tab and paste the script as text;
- or open the File tab and upload the file with the script.
3. Create a RAGFlow account
-
Open the
http://<ip_address>page in your browser.Specify the
<ip_address>— the public floating IP address of the cloud server. You can copy it in the control panel: from the top menu, click Products → Cloud Servers → in the server card, click next to the public floating IP address. -
Click Sign up.
-
Enter your email.
-
Enter a username.
-
Enter your password.
-
Click Continue.
4. Run RAGFlow
-
Open the
http://<ip_address>page in your browser.Specify the
<ip_address>— the public floating IP address of the cloud server. You can copy it in the control panel: from the top menu, click Products → Cloud Servers → in the server card, click next to the public floating IP address. -
Enter the email address you specified in step 3 when creating your account at step 3;
-
Enter the password you specified in step 5 when creating your account at step 3.
-
Click Sign in.