使用说明
DHTI(Dhanvantari Health Tech Innovation)是一个专为医疗健康领域设计的人工智能(GenAI)应用开发与部署框架。它整合了电子健康记录系统(如OpenMRS)、LangServe GenAI应用服务器、本地LLM(如Ollama)、FHIR数据仓库、向量存储、监控工具以及一个基于Model Context Protocol (MCP) 的服务器。DHTI支持模块化的GenAI例程(Elixirs)和用户界面组件(Conches),通过标准化接口(如FHIR和CDS Hooks)促进医疗AI的快速原型设计、测试和部署,尤其适用于资源受限的环境。其内置的MCP服务器为大语言模型提供了标准化工具和上下文服务。
主要功能点
- 模块化AI应用: 支持通过Elixir(LangChain模板)和Conch(OpenMRS UI组件)安装和扩展GenAI功能及用户界面。
- 快速原型开发与测试: 提供命令行工具,方便快速构建、测试和共享GenAI应用与UI元素。
- 集成式医疗AI堆栈: 一键部署包含EMR、LLM、RAG向量存储、监控、FHIR数据和图形数据库在内的完整GenAI开发环境。
- 内置MCP服务器: 提供标准化接口,允许大语言模型调用可插拔的外部工具(如FHIR查询、摘要、术语查找、自定义分析等),并获取上下文信息。
- FHIR与CDS Hooks支持: 采用FHIR标准进行数据交换,并利用CDS Hooks实现前端UI与EMR的解耦通信。
- 合成数据生成: 支持生成合成医疗数据,便于模型训练和功能测试。
安装步骤
在开始之前,请确保您的系统已安装 'docker' 和 'nodejs'。
- 克隆仓库:
git clone https://github.com/dermatologist/dhti.git && cd dhti - 安装依赖:
npm install - 构建CLI工具:
npm run build - 本地安装CLI:
npm link - 验证CLI:
这将显示所有可用的 'dhti-cli' 命令。dhti-cli help - 创建Docker Compose文件:
使用 'compose add' 命令来选择您希望包含在环境中的模块。例如,要添加OpenMRS、LangServe和MCP服务器:
dhti-cli compose add -m openmrs -m langserve -m mcpFhir- 可用模块包括:'langserve, openmrs, ollama, langfuse, cqlFhir, redis, neo4j, mcpFhir'。
- 您可以通过 'dhti-cli compose read' 命令查看生成的 'docker-compose.yml' 内容。
- 启动服务:
首次启动时,系统可能需要较长时间来下载Docker镜像并设置数据库(尤其是OpenMRS,可能需要长达45分钟)。dhti-cli docker -u - 访问OpenMRS: 在浏览器中访问 'http://localhost/openmrs/spa/home',使用用户名 'admin' 和密码 'Admin123' 登录。
- 访问LangServe API(包括MCP): 在浏览器中访问 'http://localhost:8001/docs'。此页面会显示LangServe提供的API文档,其中也包含了MCP服务的接口信息。MCP服务的入口位于 '/langserve/mcp'。
服务器配置
MCP客户端需要连接到DHTI框架中运行的MCP服务器。以下是MCP客户端连接配置的JSON示例,该配置用于与DHTI中LangServe服务暴露的MCP服务器建立连接:
{ "server_name": "dhti-mcp-server", "command": "python", "args": [ "-u", "app/server.py" ], "cwd": "/app", "protocol_configs": { "sse": { "endpoint": "http://localhost:8001/langserve/mcp/messages", "extra_headers": { "Accept": "text/event-stream", "Cache-Control": "no-cache", "Connection": "keep-alive" } } } }
参数注释:
- 'server_name': MCP服务器的识别名称,在此为"dhti-mcp-server"。
- 'command': 启动MCP服务器进程的命令,通常是 'python'。
- 'args': 传递给启动命令的参数列表。'-u' 表示Python的非缓冲输出,'app/server.py' 是DHTI中负责启动包含MCP服务器的Python脚本在Docker容器内的路径。
- 'cwd': 启动命令的工作目录,'app' 指的是Docker容器内应用程序的根目录。
- 'protocol_configs.sse.endpoint': MCP服务器提供的Server-Sent Events (SSE) 协议的URL端点。客户端通过此URL接收实时消息和通知。在DHTI中,其通常位于LangServe服务的 '/langserve/mcp/messages' 路径下。
- 'protocol_configs.sse.extra_headers': 连接SSE端点时需要发送的额外HTTP头信息,确保正确的事件流通信。
基本使用方法
- 安装Elixir(Gen AI功能模块):
Elixirs是DHTI后端GenAI功能的打包形式。例如,安装一个模板Elixir:
这将从GitHub仓库克隆并配置 'dhti-elixir-template' Elixir。dhti-cli elixir install -g https://github.com/dermatologist/dhti-elixir-template.git -n dhti-elixir-template - 为Elixir创建Docker镜像:
在安装Elixir后,您需要构建一个新的Docker镜像来包含它:
请将 'myorg/genai-elixir:1.0' 替换为您自己的镜像名称。此命令将构建镜像并自动更新 'docker-compose.yml' 文件。dhti-cli docker -n myorg/genai-elixir:1.0 -t elixir - 安装Conch(UI组件):
Conches是DHTI的用户界面组件,通常基于OpenMRS O3框架。例如,安装一个模板Conch:
这将安装一个名为 'openmrs-esm-dhti-template' 的Conch。dhti-cli conch install -g https://github.com/dermatologist/openmrs-esm-dhti-template.git -n openmrs-esm-dhti-template - 为Conch创建Docker镜像:
同样,为Conch构建新的Docker镜像:
请将 'myorg/dhti-conch:1.0' 替换为您自己的镜像名称。dhti-cli docker -n myorg/dhti-conch:1.0 -t conch - 重新启动DHTI服务:
在更新了Elixir和Conch的Docker镜像后,需要重新启动整个DHTI环境以应用更改:
dhti-cli docker -u - 在OpenMRS中测试集成: 访问 'http://localhost/openmrs/spa/home',登录后,您将在左侧导航栏看到新的 "Dhti app" UI组件。点击它,输入文本并提交,观察其与Elixir的GenAI功能的交互。
信息
分类
AI与计算