中文 | English
EMolAgent 是一个基于大语言模型的计算化学 AI 助手,集成分子团簇计算(结构构建并优化 + 电子性质预测)和 RAG 文献问答功能。
EMolAgent 支持中文和English双语界面,可在应用内随时切换:
- 切换方式:在登录页或主界面侧边栏右上角,使用语言选择器(🌐)切换
- 记忆偏好:语言选择会保存在 Cookie 中,下次访问时自动恢复
- 覆盖范围:界面文案、模型系统提示词、可视化组件等均已支持双语
EMolAgent/ ├── src/emolagent/ # 主程序包 │ ├── app.py # Streamlit 主应用 │ ├── core/ # 核心功能模块 │ │ ├── cluster_factory.py # 分子团簇构建 │ │ ├── uma_optimizer.py # UMA 结构优化 │ │ └── tools.py # LangChain 工具集 │ ├── database/ # 数据库模块 │ │ └── db.py # 用户与会话管理 │ ├── knowledge/ # RAG 知识库模块 │ │ └── knowledge_base.py # 文献问答系统 │ ├── visualization/ # 可视化模块 │ │ └── mol_viewer.py # 3D 分子可视化 │ └── utils/ # 工具模块 │ ├── config.py # 配置管理 │ ├── i18n.py # 国际化(中英文翻译) │ ├── logger.py # 日志配置 │ └── paths.py # 路径管理 ├── config/ # 配置文件目录 │ └── settings.yaml # 主配置文件 ├── resources/ # 资源文件 │ ├── models/ # 模型权重文件 │ └── db/ # 数据库文件 ├── data/ # ChromaDB 向量数据库 ├── users/ # 用户数据目录 ├── run.py # 启动脚本 └── pyproject.toml # 项目配置 - Python 3.10
- CUDA 12.8(用于 GPU 加速)
- Conda 包管理器
- Linux 64bit 系统
使用 Docker 可以快速部署 EMolAgent,无需手动安装复杂的依赖环境。
- Docker 和 Docker Compose
- NVIDIA GPU 驱动
- NVIDIA Container Toolkit
# 安装 NVIDIA Container Toolkit(Ubuntu) sudo apt-get update sudo apt-get install -y nvidia-container-toolkit sudo systemctl restart dockergit clone https://github.com/HayesYu/EMolAgent.git cd EMolAgent# 创建模型目录 mkdir -p resources/models # 将模型文件放入 resources/models/ 目录: # - uma-m-1p1.pt(从 https://huggingface.co/facebook/UMA 申请) # - 电子结构推理权重文件(从 https://drive.google.com/drive/folders/17u1Ex9FNi0lza2Kc0vjP4fU-NssIlO-2?usp=drive_link 获取,该版本仅供测试使用,最新版本暂未发布)# 必需:Google API Key export GOOGLE_API_KEY="your-google-api-key" # 必需:Multiwfn # 从 http://sobereva.com/multiwfn/ 下载 Linux 64bit noGUI 版本,具体配置详见手动安装部分 export MULTIWFN_PATH="/path/to/Multiwfn_2026.1.12_bin_Linux_noGUI" # 可选:RAG 文献库目录 export LITERATURE_PATH="/path/to/your/literature"# 构建镜像(首次需要较长时间) docker-compose build # 启动服务 docker-compose up -d # 查看日志 docker-compose logs -f浏览器打开 http://localhost:8501
| 挂载路径 | 用途 | 必需 |
|---|---|---|
./data | ChromaDB + SQLite 数据 | 是(自动创建) |
./users | 用户任务输出 | 是(自动创建) |
./logs | 日志文件 | 是(自动创建) |
./resources/models | 模型文件 | 是(需预先放置) |
./config/settings.yaml | 自定义配置 | 否 |
$MULTIWFN_PATH | Multiwfn 二进制 | 是(需预先放置) |
$LITERATURE_PATH | RAG 文献库 | 否 |
# 停止服务 docker-compose down # 重启服务 docker-compose restart # 查看容器状态 docker-compose ps # 进入容器调试 docker-compose exec emolagent bashconda create -n EMolAgent python=3.10 conda activate EMolAgentpip install fairchem-core==2.12.0 pip install torch_geometric pip install torch_scatter torch_sparse torch_cluster torch_spline_conv pyg_lib -f https://data.pyg.org/whl/torch-2.8.0+cu128.htmlgit clone https://github.com/HayesYu/EMolAgent.gitgit clone https://github.com/Franklalalala/DeePTB.git cd DeePTB/ git checkout onehot打开 pyproject.toml,取消 scipy 和 lmdb 的版本限制,然后安装:
pip install . cd ..git clone https://github.com/Franklalalala/EMolES.git cd EMolES/ git checkout dev pip install -e . cd ..git clone https://github.com/Franklalalala/learn_qh9.git cd learn_qh9/ pip install . cd ..git clone https://github.com/deepmodeling/dftio.git cd dftio/打开 pyproject.toml,取消 scipy、torch、lmdb、torch-scatter 的版本限制,然后安装:
pip install . cd .. git clone https://github.com/Franklalalala/ai4mol.git-
前往 Multiwfn 官网 下载 Linux 64bit (noGUI version)
-
解压并配置:
unzip Multiwfn_2026.1. 12_bin_Linux_noGUI.zip cd Multiwfn_2026.1.12_bin_Linux_noGUI/- 配置环境变量,编辑
~/.bashrc:
vim ~/.bashrc添加以下内容:
ulimit -s unlimited export Multiwfnpath=/path/to/Multiwfn_2026.1.12_bin_Linux_noGUI export PATH="$Multiwfnpath:$HOME/bin:$PATH"- 使配置生效并设置权限:
source ~/.bashrc conda activate EMolAgent chmod +x /path/to/Multiwfn_2026.1.12_bin_Linux_noGUI/Multiwfn- 修改
settings.ini配置:
vim settings.ini将 nthreads 修改为 64(或根据您的 CPU 核心数调整):
nthreads=64cd ..# 安装 MOKIT conda install mokit -c mokit -c conda-forge -y # 安装系统依赖 sudo apt install -y libcairo2-dev pkg-config python3-dev # 安装 RDKit conda install -c conda-forge rdkit # 安装 EMolAgent 及其 Python 依赖 cd EMolAgent/ pip install -e .-
前往 Hugging Face UMA 申请获得
uma-m-1p1.pt模型使用权 -
将
uma-m-1p1.pt放置于EMolAgent/resources/models/目录下 -
前往 Google Drive nnenv 获取电子结构推理权重文件
注意:该文件仅供测试使用,最新版本暂未发布
-
将电子结构推理权重文件放置于
EMolAgent/resources/models/
项目使用 YAML 配置文件集中管理各类参数,配置文件位于 config/settings.yaml。
主要配置项包括:
| 配置分类 | 配置项 | 说明 |
|---|---|---|
database | solvent_db, anion_db | 分子数据库文件路径 |
models | inference_model, uma_checkpoint, uma_model_name | 模型路径和名称 |
gpu | available_gpus, max_tasks_per_gpu | GPU 设备列表和并发任务限制 |
logging | max_log_size, backup_count | 日志文件大小和备份数量 |
visualization | max_preview_structures | 结构预览最大显示数量 |
auth | admin_users | 管理员用户名列表 |
knowledge | literature_path, collection_name | 文献库路径和集合名称 |
molecules | default_dme_smiles, default_fsi_smiles | 默认分子 SMILES 定义 |
output | uma_workspace | 优化器输出目录 |
修改配置后需重启应用生效。也可通过环境变量 EMOL_CONFIG_PATH 指定自定义配置文件路径。
前往 Google AI Studio 注册您的 Google API Key
cd /path/to/EMolAgent/ export GOOGLE_API_KEY="Your Google API KEY" # 方式一:使用启动脚本(推荐) python run.py # 方式二:直接运行 Streamlit streamlit run src/emolagent/app.py-
将文献 PDF 文件放置于配置的文献目录中(在
config/settings.yaml中配置knowledge.literature_path) -
在
config/settings.yaml中的auth.admin_users列表里添加您的用户名 -
启动应用后,在左侧栏中点击 "重建索引" 即可使用 RAG 功能
ESP 可视化需要 Multiwfn 生成的 cube 文件。启用方法:
-
将 EMolES 项目中
EMolES/src/emoles/inference/infer_entry.py的gen_esp_cube_flag: bool = False改为True -
确保 Multiwfn 已正确安装并配置环境变量
如需修改默认参数(如 GPU 并发数、管理员列表、模型路径等),直接编辑 config/settings.yaml 文件即可。
配置示例:
# 修改 GPU 配置 gpu: available_gpus: [0, 1, 2, 3] # 使用 4 张 GPU max_tasks_per_gpu: 3 # 每张 GPU 最多 3 个并发任务 # 添加管理员 auth: admin_users: - "hayes" - "your_username" # 修改文献库路径 knowledge: literature_path: "/your/custom/path/to/literature"本项目采用 MIT 许可证 进行许可。
感谢以下开源项目的支持: