目录

1、目前技术栈选用:

2、虚拟环境创建/服务启动:

3、数据库/实体类设计:

4、接口设计(目前):

总结


本项目实现的是基于多智能体的医院资源调度系统

我主要负责团队中的后端部分,目前完成了需求的分析,搭建好了整体的框架,完成了实体类/数据库的设计与部分基础CRUD接口的设计与实现。

1、目前技术栈选用:

Python、FastAPI、Uvicorn、SQLite、Pydantic、SSE

Web 框架使用的是 FastAPI,服务启动使用 Uvicorn。数据库使用 SQLite,数据访问方式是 sqlite3 + 手写 SQL。请求和响应的数据结构校验采用 Pydantic v2。在聊天模块中,加入了 SSE(Server-Sent Events)流式输出,把内容逐步推送给前端。

2、虚拟环境创建/服务启动:

创建.venv虚拟环境(目前选用3.12.2)

//requirements.txt
fastapi==0.115.0
uvicorn==0.30.6
pydantic==2.9.2
pytest

//运行Activate.ps1进入虚拟环境,执行代码安装依赖:
pip install -r requirements.txt

//启动后端服务:
python server/run_server.py
或者
uvicorn server.src.app:app --host 127.0.0.1 --port 8000 --reload

运行后出现以下字样即代表后端启动成功:(测试/health接口响应"ok")

3、数据库/实体类设计:

设计er图如下:(目前)

ER图
实体类ER图

其中重要的关联部分:

一对一:

Users —>Patients / Doctors

Conversations —>Diagnosis_Results

Users —>Auth_Sessions

一对多:

Conversations —>Conversation_Messages

Medical_Devices —>Device_Slots

Patients —>Schedule_Plans

Department —> Doctors

目前采用的是SQLite数据库,只需要创建一个sqlite3文件,连接后可使用,运行建表脚本即可。(每个字段加上update_at/create_at/deleted字段方便debug)

chat部分会调用多智能体服务,相关知识库存放于另外一个sqlite文件中,避免耦合性过强。

目前数据库表雏形

可以利用@dataclass装饰器简化代码书写(以下为User示例)

4、接口设计(目前):

// 登录、人员管理模块接口
-POST /api/v1/auth/login/wechat
-POST /api/v1/auth/logout
-GET /api/v1/users
-POST /api/v1/users
-PATCH /api/v1/users/{user_id}
-PATCH /api/v1/users/{user_id}/status
-GET /api/v1/patients
-POST /api/v1/patients
-GET /api/v1/doctors
-POST /api/v1/doctors
-PATCH /api/v1/doctors/{doctor_id}/status

// 部门、设备模块接口
-GET /api/v1/devices?department_id=...
-POST /api/v1/devices
-PATCH /api/v1/devices/{device_id}
-POST /api/v1/devices/slots
-PATCH /api/v1/devices/slots/{slot_id}
-POST /api/v1/devices/slots/query

// 对话聊天模块接口
-POST /api/v1/chat/conversations/ensure
-GET /api/v1/chat/conversations/{conversation_id}/messages
-POST /api/v1/chat/messages
-POST /api/v1/chat/stream (SSE)
-POST /api/v1/chat/diagnosis/confirm (医生确认诊断并绑定负责医生)

总结

目前已经搭好了后端的整体框架,接下来只需要根据分析需求,实现各部分接口以及业务逻辑代码,将前端需要的相关信息返回即可(主要难度在于agent与医生的对接以及仪器的调度部分,可能需要agent调用tools完成function calling部分)。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐