要在Ubuntu服务器上运行Python代码,您需要按照以下步骤进行配置和部署:
1. 安装必要的依赖
确保您的Ubuntu服务器上已经安装了Python 3和pip。如果没有安装,可以使用以下命令进行安装:
sudo apt update
sudo apt install python3 python3-pip
2. 安装FastAPI和Uvicorn
FastAPI是一个现代的Web框架,而Uvicorn是一个ASGI服务器,用于运行FastAPI应用。使用pip安装它们:
pip3 install fastapi uvicorn
3. 创建项目目录
在服务器上创建一个目录来存放您的代码:
mkdir ragflow_api
cd ragflow_api
4. 将代码保存为文件
将上述代码保存为一个Python文件,例如main.py
。可以使用任何文本编辑器,比如nano
或vim
:
nano main.py
然后将代码粘贴进去并保存。
5. 修改代码中的RAGFlow地址
在代码中,将ORIGINAL_API_URL
中的your_ragflow_address
替换为实际的RAGFlow服务地址。例如,如果RAGFlow运行在同一个服务器上,可以使用localhost
或服务器的IP地址。
6. 运行应用
使用Uvicorn运行FastAPI应用:
uvicorn main:app --host 0.0.0.0 --port 8000
这里,main
是您的Python文件名(不包括.py
扩展名),app
是FastAPI实例的名称。--host 0.0.0.0
表示允许服务器接受来自任何地址的连接,--port 8000
指定运行的端口号。
7. 配置防火墙
如果服务器上有防火墙(如ufw
),需要允许8000端口的流量:
sudo ufw allow 8000
8. 测试API
在本地机器上,使用curl
或Postman等工具测试API。例如:
curl -X POST "http://your_server_ip:8000/retrieval" \
-H "Content-Type: application/json" \
-d '{
"knowledge_id": "your_knowledge_id",
"query": "your_query",
"retrieval_setting": {
"top_k": 5,
"score_threshold": 0.8
}
}'
将your_server_ip
替换为您的Ubuntu服务器的IP地址。
9. 设置为系统服务(可选)
为了确保应用在服务器重启后能够自动启动,可以将其配置为一个系统服务。
创建一个服务文件:
sudo nano /etc/systemd/system/ragflow-api.service
添加以下内容:
[Unit]
Description=RAGFlow API Service
After=network.target
[Service]
User=your_username
Group=your_groupname
WorkingDirectory=/path/to/ragflow_api
ExecStart=/usr/bin/python3 /path/to/ragflow_api/main.py
Restart=always
[Install]
WantedBy=multi-user.target
将your_username
、your_groupname
和/path/to/ragflow_api
替换为实际的用户和路径。
然后启用并启动服务:
sudo systemctl daemon-reload
sudo systemctl enable ragflow-api.service
sudo systemctl start ragflow-api.service
10. 检查服务状态
可以使用以下命令检查服务是否正常运行:
sudo systemctl status ragflow-api.service
通过以上步骤,您就可以在Ubuntu服务器上成功运行RAGFlow的知识库API了。