AI药物研发助手配置:从环境准备到跑通第一个任务的实操指南
AI 药物研发助手不是单个软件,通常由 Python 环境、分子处理库(如 RDKit)、模型服务(本地或 API)和任务调度脚本组成。
本文以一台干净的 Ubuntu 22.04 服务器为例,讲清楚从零配置到跑通一个分子属性预测任务的最小步骤。
如果你用的是 CentOS 或 Debian,命令需要按包管理器调整。
先确认服务器能跑什么
动手前先检查三件事,避免装到一半发现资源不够。
- 操作系统和架构:
uname -a确认是 x86_64 还是 ARM,部分分子库对 ARM 支持不完整。 - 内存和磁盘:
free -h和df -h查看。RDKit 本身不重,但如果要本地跑模型,建议至少 16GB 内存和 50GB 空闲磁盘。 - Python 版本:
python3 --version。多数药物研发工具链目前适配 Python 3.9 到 3.11,不要直接用系统自带的旧版本。
如果服务器在国内,pip 安装可能较慢,提前配置镜像源能省不少时间。
配置 Python 隔离环境
不建议把依赖直接装进系统 Python。
用 venv 建一个独立环境,后续出问题也方便删除重来。
sudo apt update
sudo apt install -y python3-venv python3-pip build-essential
mkdir -p /opt/ai-drug-assistant
cd /opt/ai-drug-assistant
python3 -m venv venv
source venv/bin/activate
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
执行完 source 后,命令行提示符前会出现 (venv),表示已进入隔离环境。
之后所有 pip 安装和 Python 运行都在这个环境下进行。
安装核心依赖并验证
药物研发助手最基础的依赖是 RDKit(分子结构处理)和 requests(调用模型 API)。
如果要做数据表格处理,再加上 pandas。
pip install rdkit requests pandas
安装完成后用一行命令验证 RDKit 是否可用:
python -c "from rdkit import Chem; m = Chem.MolFromSmiles('CCO'); print(m.GetNumAtoms())"
预期输出 3,表示乙醇分子(CCO)被正确解析。
如果报 ModuleNotFoundError,说明当前终端没有激活 venv,重新执行 source /opt/ai-drug-assistant/venv/bin/activate 即可。
接入模型服务:API 方式最省事
AI 药物研发助手的“AI”部分通常来自大模型或专用预测模型。
零基础阶段建议先用 API 方式接入,避免本地部署模型带来的显存和依赖问题。
在项目目录下创建配置文件 .env,把密钥和接口地址写进去,不要硬编码在脚本里:
cd /opt/ai-drug-assistant
cat > .env <<'EOF'
MODEL_API_URL=https://your-model-endpoint/v1/chat/completions
MODEL_API_KEY=sk-your-key-here
MODEL_NAME=drug-assistant
EOF
chmod 600 .env
把 MODEL_API_URL 和 MODEL_API_KEY 替换成你实际使用的服务地址和密钥。chmod 600 确保只有当前用户能读这个文件。
然后写一个最小测试脚本 test_assistant.py:
import os, requests
from dotenv import load_dotenv
load_dotenv()
url = os.getenv("MODEL_API_URL")
key = os.getenv("MODEL_API_KEY")
headers = {"Authorization": f"Bearer {key}", "Content-Type": "application/json"}
payload = {
"model": os.getenv("MODEL_NAME"),
"messages": [{"role": "user", "content": "用一句话解释 Lipinski 五规则"}]
}
r = requests.post(url, json=payload, headers=headers, timeout=30)
print(r.status_code)
print(r.json()["choices"][0]["message"]["content"])
先安装 python-dotenv:pip install python-dotenv,再运行 python test_assistant.py。
如果返回 200 并打印出解释文本,说明模型接入成功。
跑通一个实际任务:分子属性检查
模型能对话不代表助手可用。
用一个药物研发场景的简单任务验证整条链路:读取一串 SMILES,计算分子量并判断是否符合 Lipinski 规则中的分子量条件(小于 500)。
from rdkit import Chem
from rdkit.Chem import Descriptors
smiles_list = ["CCO", "CC(=O)Oc1ccccc1C(=O)O", "CN1C=NC2=C1C(=O)N(C(=O)N2C)C"]
for smi in smiles_list:
mol = Chem.MolFromSmiles(smi)
if mol is None:
print(f"无法解析: {smi}")
continue
mw = Descriptors.MolWt(mol)
print(f"{smi} 分子量={mw:.1f} 通过={mw < 500}")
预期看到三个分子的分子量输出,并且最后一个咖啡因分子量约 194,显示通过。
这个脚本能跑通,说明分子处理库和 Python 环境都正常,后续可以在此基础上对接模型做更复杂的分析。
容易踩的坑
- 不要用 root 直接跑 pip:依赖冲突会污染系统 Python,出问题很难回滚。坚持用 venv。
- API 密钥不要提交到代码仓库:用
.env文件并加入.gitignore,密钥泄露后立即在服务商后台作废重发。 - SMILES 解析失败很常见:RDKit 对非法 SMILES 返回
None,脚本里必须先判断再计算,否则会直接抛异常中断。 - 防火墙和代理:如果 API 请求超时,先用
curl -I https://your-model-endpoint检查网络连通性,再排查密钥和请求体格式。
验证配置是否完整
配置完成后,建议做一次完整复查:
- 重新打开一个终端,执行
source /opt/ai-drug-assistant/venv/bin/activate,再运行python test_assistant.py,确认模型接口仍然可用。 - 运行分子属性检查脚本,确认 RDKit 输出正常。
- 检查
.env权限:ls -l .env应显示-rw-------。 - 确认项目目录下没有把密钥写进任何
.py文件,可用grep -r "sk-" /opt/ai-drug-assistant快速排查。
如果以上四项都通过,AI 药物研发助手的基础配置就算完成。
后续可以根据实际需求接入本地模型、增加批量任务队列或对接数据库,但建议先把当前这条最小链路跑稳再扩展。
配置过程中如果遇到与本文不同的报错,优先检查 Python 版本、venv 是否激活和 API 地址是否可达,多数问题集中在这三处。