# patient **Repository Path**: keylink-patient/patient ## Basic Information - **Project Name**: patient - **Description**: 虚拟病人 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-25 - **Last Updated**: 2026-05-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Patient 可直接运行的后端(FastAPI)与前端(Vue3)原型,用于基于认知模型的虚拟病人架构。 https://hanlp.hankcs.com/docs/api/hanlp/pretrained/mtl.html Downloading https://file.hankcs.com/hanlp/mtl/close_tok_pos_ner_srl_dep_sdp_con_ernie_gram_base_aug_20210904_145403.zip to your place and adjust the path in `cut_word.py` ENV. ## 文件结构 - `backend/server.py`:核心 API(/api/doctor_step, /api/patient_step) - `backend/requirements.txt`:后端依赖 - `frontend/index.html`:Vue + Vuetify CDN 单页前端 ## 前置 - Python 3.9+ - 可选:Node/npm 不需要,本前端走 CDN - OpenAI API Key(或使用本地 MOCK 模式) ## 快速开始 ### 1) 后端 ```bash cd backend pip install -r requirements.txt pip install 'volcengine-python-sdk[ark]' # pip install pyhanlp # # 1. 确保在 (patient) 环境下安装 openjdk # conda install -c conda-forge openjdk -y # # 2. 验证安装是否成功 # java -version pip install gensim pip install hanlp pip install fastapi uvicorn pip install matplotlib pip install "transformers<4.40.0" "tokenizers<0.19.0" -U # 1. 卸载旧的、已弃用的包 pip uninstall pynvml # 2. 安装官方推荐的新包 pip install nvidia-ml-py export OPENAI_API_KEY='sk-xxxx' # 替换为你的 Key export ARK_API_KEY='xxx-xxx' # 如果没有 Key,可用本地假数据 # export MOCK_MODE=true uvicorn main:app --reload --port 8000 ``` 接口: - `POST /api/generate_base_profile`:输入乱序描述,输出完整中立档案 - `POST /api/adjust_tone`:基于现有档案,仅改口头禅/标志性反应语气(warm/funny/strict/neutral) - `GET /health`:存活探测 ### 2) 前端 直接用本地静态服务打开: ```bash cd frontend python -m http.server 4173 # 打开 http://localhost:4173 # 注意 打开网页版本,目前 index.html.bak 为旧版 ``` 前端默认将请求发往同源 `/api/...`。若后端端口不同,可在浏览器控制台或改 index.html 里 axios baseURL。 ## 如果已經安裝, 在 AITling 中 ```bash cd ~/project/auto_personality conda activate aipa cd backend && export OPENAI_API_KEY=sk-xxxx && uvicorn main:app --reload --port 8000 cd frontend && python -m http.server 4173 ## 设计要点 - ProfileSchema 字段覆盖:背景、特质、兴趣、口头禅、标志性反应(可选 name / mbti) - 满分样本写在后端常量 `GOLD_STANDARD_SAMPLE`,用于“即便只输‘我爷爷’也要补全”。 - `MOCK_MODE=true` 且无 `OPENAI_API_KEY` 时返回内置假数据,方便无网/无 Key 调试。 - CORS 已开放,便于跨端试用。 ## 下一步可做 - 增加输出 JSON 修复/重试逻辑,防止 LLM 偶发格式偏差。 - 为 `input_type` 扩展聊天记录解析分支。 - 增加 e2e 测试(Playwright)与后端契约测试。