使用说明

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'。

  1. 克隆仓库:
    git clone https://github.com/dermatologist/dhti.git && cd dhti
  2. 安装依赖:
    npm install
  3. 构建CLI工具:
    npm run build
  4. 本地安装CLI:
    npm link
  5. 验证CLI:
    dhti-cli help
    这将显示所有可用的 'dhti-cli' 命令。
  6. 创建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' 内容。
  7. 启动服务:
    dhti-cli docker -u
    首次启动时,系统可能需要较长时间来下载Docker镜像并设置数据库(尤其是OpenMRS,可能需要长达45分钟)。
  8. 访问OpenMRS: 在浏览器中访问 'http://localhost/openmrs/spa/home',使用用户名 'admin' 和密码 'Admin123' 登录。
  9. 访问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头信息,确保正确的事件流通信。

基本使用方法

  1. 安装Elixir(Gen AI功能模块): Elixirs是DHTI后端GenAI功能的打包形式。例如,安装一个模板Elixir:
    dhti-cli elixir install -g https://github.com/dermatologist/dhti-elixir-template.git -n dhti-elixir-template
    这将从GitHub仓库克隆并配置 'dhti-elixir-template' Elixir。
  2. 为Elixir创建Docker镜像: 在安装Elixir后,您需要构建一个新的Docker镜像来包含它:
    dhti-cli docker -n myorg/genai-elixir:1.0 -t elixir
    请将 'myorg/genai-elixir:1.0' 替换为您自己的镜像名称。此命令将构建镜像并自动更新 'docker-compose.yml' 文件。
  3. 安装Conch(UI组件): Conches是DHTI的用户界面组件,通常基于OpenMRS O3框架。例如,安装一个模板Conch:
    dhti-cli conch install -g https://github.com/dermatologist/openmrs-esm-dhti-template.git -n openmrs-esm-dhti-template
    这将安装一个名为 'openmrs-esm-dhti-template' 的Conch。
  4. 为Conch创建Docker镜像: 同样,为Conch构建新的Docker镜像:
    dhti-cli docker -n myorg/dhti-conch:1.0 -t conch
    请将 'myorg/dhti-conch:1.0' 替换为您自己的镜像名称。
  5. 重新启动DHTI服务: 在更新了Elixir和Conch的Docker镜像后,需要重新启动整个DHTI环境以应用更改:
    dhti-cli docker -u
  6. 在OpenMRS中测试集成: 访问 'http://localhost/openmrs/spa/home',登录后,您将在左侧导航栏看到新的 "Dhti app" UI组件。点击它,输入文本并提交,观察其与Elixir的GenAI功能的交互。

信息

分类

AI与计算