---
title: 准备环境
description: "1. 确保已经安装并配置好以下工具和模型文件。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengrag/bestpractice/kunpengrag_21_0079.html
sourcePath: /source/zh/kunpengrag/bestpractice/kunpengrag_21_0079.html
indexId: d6b555b8b17d708c9e802a1fe64b275dd9e2d350becd3c7c2ea608c5d812d31a58
---
# 准备环境

1. 确保已经安装并配置好以下工具和模型文件。

  - Python: >= 3.10。
  - Ray：>= 2.31.0。
  - 使用pip3安装相关Python包。

```
pip3 install -r requirements.txt
```


  - numactl。
  - 下载所需Embedding/Reranker模型的    gguf文件(https://hf-mirror.com/)
。
  - 如需使用二进制cmd启动Embedding模型，则需要准备llama.cpp二进制。
  - 如需使用Docker启动Embedding模型，则需要准备llama.cpp镜像。
2. 克隆项目到本地。

```
git clone --branch v2.0.0 https://gitee.com/kunpeng_compute/KunpengRAG.git
cd KunpengRAG/deployment/ray-compute/
```


3. 用户自定义修改llamacpp_config.yaml文件中配置。用户选择Embedding/Reranker模型启动方式：Docker、cmd或external，根据以下步骤进行自定义配置。
Docker：

  a. 下载“swr.cn-north-4.myhuaweicloud.com/kunpeng-ai/llama.cpp:full-kunpeng”镜像。
  b. 在llamacpp_config.yaml中配置“start_mode”为“docker”。
  c. 在llamacpp_config.yaml中model_configs配置“model_type”为“embedding”或者“reranker”。
  d. 在llamacpp_config.yaml中配置“docker_image”为“swr.cn-north-4.myhuaweicloud.com/kunpeng-ai/llama.cpp:full-kunpeng”。
  e. 在llamacpp_config.yaml中配置docker_configs下Embedding/Reranker模型所需参数，model_configs可扩展，用户可以根据需求自行配置启动Embedding模型数量。以下为例子，添加一组model_configs即可启动一个Embedding/Reranker模型。

```
docker_configs:
- model_configs:
server_ip: yourIP  # 服务绑定的IP地址
container_port: 11439  # 容器内部端口
host_port: 11439  # 主机映射端口
cpuset: "0-31"  # 绑定的CPU核心
model_type: "embeddings" # 模型类型 embedding或者reranker
threads: 32
ubatch_size: 1024
max_model_input_chunks: 512 # 最大输入chunk数量
- model_configs:
server_ip: yourIP  # 服务绑定的IP地址
container_port: yourPort  # 第二个容器内部端口
host_port: yourPort  # 第二个主机映射端口
cpuset: "32-63"  # 绑定到另一组CPU核心
model_type: "embeddings"
threads: 32
ubatch_size: 1024
max_model_input_chunks: 512 # 最大输入chunk数量
```

cmd：

  a. 准备llama.cpp二进制文件。
  b. 在llamacpp_config.yaml中配置“start_mode”为“cmd”。
  c. 在llamacpp_config.yaml中model_configs配置“model_type”为“embedding”或者“reranker”。
  d. 添加服务器环境变量“#export LD_LIBRARY_PATH = llama-server”路径。
  e. 在llamacpp_config.yaml中配置“llamacpp_path”为实际的llama-server路径。
  f. 在llamacpp_config.yaml中配置llamacpp_configs下Embedding/Reranker模型所需参数，model_configs可扩展，用户可以根据需求自行配置启动Embedding/Reranker模型数量。以为下为例子，添加一组model_configs即可启动一个Embedding/Reranker模型。

```
llamacpp_configs:
- model_configs:
server_ip: yourIP  # 服务绑定的IP地址
port: yourPort  # 服务端口
cpuset: "0-31"  # 绑定的CPU核心（空字符串表示不绑定）
model_type: "embeddings" # 模型类型 embedding或者reranker
threads: 32  # 线程数
ubatch_size: 1024  # 批处理大小
max_model_input_chunks: 512 # 最大输入chunk数量
- model_configs:
server_ip: yourIP  # 服务绑定的IP地址
port: yourPort  # 第二个实例端口
cpuset: "32-63"  # 绑定到另一组CPU核心
model_type: "embeddings"
threads: 32
ubatch_size: 1024
```


external：

  a. 通过Docker自行启动Embedding/Reranker模型，参考以下命令启动：

```
docker run \
--cpuset-cpus="0-31" \                           # 容器绑核，绑定一个numa上
-v /root/models:/models \                        # 挂载模型目录到容器
-p 11133:11133                                   # 映射容器的服务端口到主机端口
-c 512                                           # 模型可接收最大chunk数量
swr.cn-north-4.myhuaweicloud.com/kunpeng-ai/llama.cpp:full-kunpeng \                # 使用已构建好的llama.cpp镜像
--server \                                       # 启动api服务
-m /models/your_model.gguf \ # 指定模型路径
--embedding \
--port 11133 \
--threads 32 \
--host 0.0.0.0 \
--ubatch-size 1024
```


  b. 添加服务器环境变量“#export LD_LIBRARY_PATH = llama-server”路径（使用llama.cpp二进制启动需要）。
  c. 通过llama.cpp二进制启动Embedding/Reranker模型，参考以下启动命令：

```
numactl -C 32-63 \                                         # cpu绑核
/yourPath/llama.cpp/build/bin/llama-server \               # llama.cpp二进制文件
--model /your Path to your model.gguf                      # embedding/reranker模型文件
--port 11438 \
--embedding \
--threads 32 \
--host 90.90.82.204 \
--ubatch-size 1024  \
```


4. 执行Ray脚本。

```
python3 deplicas_ray.py
```


5. 执行完成后，脚本自动暴露服务，您可以通过以下地址访问。

```
http://<服务器IP>:<rag server服务端口(默认为8000)>
```


  例如：http://192.168.1.100:8000

6. 配置Ray地址到RAG服务。
  打开RAG服务前端，配置RAY服务http://<服务器IP>:<rag server服务端口(默认为8000)>/v1到embedding模型配置中。（/v1为openai embedding模型访问范式）。配置完毕后即可正常使用RAG服务。
