NARUDESIGNS/Medic-AI-Agent

GitHub: NARUDESIGNS/Medic-AI-Agent

一款基于 LangChain 的医疗 AI 助手应用,用于研究和对比 Agentic LLM 系统中针对间接提示注入攻击的不同 Guardrail 防御策略。

Stars: 0 | Forks: 0

# Medic AI 一款具有 React UI 和 LangChain agent 后端的医疗助手聊天应用。该 agent 可以读取上传的文档、获取网页内容,并从 Postgres 中查询患者记录。它还包含可选择的 guardrails,用于探索 prompt 注入防御。 ## 功能 - **聊天 UI** — Medic AI 界面,支持消息历史记录和文件上传(PDF、TXT、MD) - **Agent 工具** - `process_document` — 从上传的文件中提取内容并回答问题 - `retrieve_web_data` — 抓取并总结 URL 内容 - `manage_patients_data` — 只读患者查询(Postgres) - **Guardrails**(可在 UI 中选择) - **Off** — 无额外 guardrail - **Instruction Hierarchy** — 更强的 system prompt 规则(医疗、隐私、抗越狱) - **Prompt Shield** — 在用户 prompt、上传文件和外部工具内容上应用 Azure AI Content Safety Prompt Shields ## 前置条件 - Node.js 18+ - OpenAI API key - (可选)用于患者查询的 PostgreSQL - (可选)用于 Prompt Shield guardrail 的 Azure Content Safety Prompt Shield endpoint 和 key ## 设置 ``` npm install npm install --prefix server ``` 在**项目根目录**下创建一个 `.env` 文件(服务器会从 `server/` 目录加载 `../.env`): ``` cp server/.env.example .env ``` 至少需要填写以下内容: | 变量 | 用途 | | --- | --- | | `OPENAI_API_KEY` | agent 必需 | | `PORT` | 服务器端口(默认为 `3001`) | | `DATABASE_URL` | Postgres 连接字符串(患者工具) | | `PATIENTS_TABLE` / `PATIENT_ID_COLUMN` / `PATIENT_NAME_COLUMN` | 患者表映射 | | `CURRENTLY_LOGGED_IN_ID` | 模拟登录的患者诊所 ID | | `PROMPT_SHIELD_API_ENDPOINT` | Azure Prompt Shield API URL | | `PROMPT_SHIELD_API_KEY` | Azure 订阅密钥 | 只有在您使用相关功能时,才需要配置 Patient DB 和 Prompt Shield 变量。 ## 运行 启动两个进程(使用两个终端): ``` # UI — http://localhost:5173 npm run dev # API — http://localhost:3001 npm run dev:server ``` Vite 开发服务器会将 `/api` 代理到端口 `3001` 上的后端。 打开 http://localhost:5173 即可与 Medic AI 聊天。使用 UI 中的 guardrail 下拉菜单可以切换模式。
标签:DLL 劫持, MITM代理, Petitpotam, React, Syscalls, 医疗助手, 大语言模型, 测试用例, 自动化攻击, 间接提示词注入