一组用于与生物数据库进行自然语言交互的微服务和客户端。
┌─────────────┐ ┌──────────────┐
│ LLM UI │ │ Ollama LLM │
│ (Chainlit) │ │ │
└─────┬───────┘ └───────┬──────┘
│ │
┌─────┴─────────────────────┴──────┐
│ LLM 客户端 │
└─────┬─────────────────────┬──────┘
│ │
┌─────┴───────┐ ┌──────┴───────┐
│ PDB MCP │ │ ChEMBL MCP │
│ 服务器 │ │ 服务器 │
└─────────────┘ └──────────────┘
cp .env.example .env
make build
make up
make run-chainlit
访问 http://localhost:8000 开始查询生物数据。
make help 查看可用命令conf/ 目录下该项目包含多个模块,这些模块使用FastMCP框架与各种服务和API进行交互。每个模块设计用于执行特定任务,并可以独立运行或通过Docker Compose一起运行。该项目的主要重点是生物代理,提供工具和服务以与蛋白质数据银行(PDB)等生物数据源进行交互。
llm-client 模块提供了一个客户端,该客户端与语言模型(LLM)服务器交互以处理查询并利用可用工具。它使用FastMCP框架构建,并支持使用aiohttp的异步操作。
更多详情,请参阅 LLM 客户端 README。
protein_data_bank_mcp 模块提供了一个服务器,该服务器与蛋白质数据银行(PDB) API交互以获取结构组装描述、化学成分、DrugBank注释、分支实体、非聚合物实体、聚合物实体、UniProt注释、结构、PubMed注释、PDB聚类数据聚合、聚合组来源、PDB聚类数据聚合方法以及成对聚合物界面描述。它使用FastMCP框架构建,并支持使用aiohttp的异步操作。
更多详情,请参阅 蛋白质数据银行 README。
为每个模块提供了Dockerfile以构建Docker镜像。
构建Docker镜像:
docker build -t <module-name> .
运行Docker容器:
docker run --env-file .env <module-name>
提供了一个 docker-compose.yml 文件来同时运行所有服务。
启动所有服务:
docker-compose up -d
停止所有服务:
docker-compose down
提供了一个 Makefile 来简化常见任务。
setup-env: 设置初始环境。build: 构建所有Docker镜像。up: 使用docker-compose启动所有服务。down: 使用docker-compose停止所有服务。restart: 使用docker-compose重启所有服务。