Add API Integration Guide for Triage Health Check endpoint with detailed request and response specifications. Update agent executor to enforce concise and clear response formatting guidelines in Vietnamese, ensuring compliance with medical guidelines and improving user interaction clarity.
Browse files- API_INTEGRATION.md +76 -0
- src/agent/agent-executor.ts +58 -51
API_INTEGRATION.md
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# API Integration Guide
|
| 2 |
+
|
| 3 |
+
## Endpoint: Triage Health Check
|
| 4 |
+
|
| 5 |
+
**URL:** `POST /api/health-check`
|
| 6 |
+
**Base URL:** `https://medagen-backend.hf.space` (hoặc URL của bạn)
|
| 7 |
+
|
| 8 |
+
### Request
|
| 9 |
+
|
| 10 |
+
```json
|
| 11 |
+
{
|
| 12 |
+
"user_id": "string (required)",
|
| 13 |
+
"text": "string (optional, required if no image_url)",
|
| 14 |
+
"image_url": "string (optional, required if no text)",
|
| 15 |
+
"session_id": "string (optional)",
|
| 16 |
+
"location": {
|
| 17 |
+
"lat": "number (optional)",
|
| 18 |
+
"lng": "number (optional)"
|
| 19 |
+
}
|
| 20 |
+
}
|
| 21 |
+
```
|
| 22 |
+
|
| 23 |
+
### Response
|
| 24 |
+
|
| 25 |
+
```json
|
| 26 |
+
{
|
| 27 |
+
"triage_level": "emergency|urgent|routine|self-care",
|
| 28 |
+
"symptom_summary": "string",
|
| 29 |
+
"red_flags": ["string"],
|
| 30 |
+
"suspected_conditions": [
|
| 31 |
+
{
|
| 32 |
+
"name": "string",
|
| 33 |
+
"source": "cv_model|guideline|user_report",
|
| 34 |
+
"confidence": "low|medium|high"
|
| 35 |
+
}
|
| 36 |
+
],
|
| 37 |
+
"cv_findings": {
|
| 38 |
+
"model_used": "derm_cv|eye_cv|wound_cv|none",
|
| 39 |
+
"raw_output": {}
|
| 40 |
+
},
|
| 41 |
+
"recommendation": {
|
| 42 |
+
"action": "string",
|
| 43 |
+
"timeframe": "string",
|
| 44 |
+
"home_care_advice": "string",
|
| 45 |
+
"warning_signs": "string"
|
| 46 |
+
},
|
| 47 |
+
"message": "string (markdown response)",
|
| 48 |
+
"session_id": "string",
|
| 49 |
+
"nearest_clinic": {
|
| 50 |
+
"name": "string",
|
| 51 |
+
"distance_km": "number",
|
| 52 |
+
"address": "string",
|
| 53 |
+
"rating": "number"
|
| 54 |
+
}
|
| 55 |
+
}
|
| 56 |
+
```
|
| 57 |
+
|
| 58 |
+
### Example
|
| 59 |
+
|
| 60 |
+
```bash
|
| 61 |
+
curl -X POST https://medagen-backend.hf.space/api/health-check \
|
| 62 |
+
-H "Content-Type: application/json" \
|
| 63 |
+
-d '{
|
| 64 |
+
"user_id": "user123",
|
| 65 |
+
"text": "đau mũi, có mụt nhọt",
|
| 66 |
+
"image_url": "https://example.com/image.jpg"
|
| 67 |
+
}'
|
| 68 |
+
```
|
| 69 |
+
|
| 70 |
+
### Notes
|
| 71 |
+
|
| 72 |
+
- `text` hoặc `image_url` phải có ít nhất một
|
| 73 |
+
- `session_id` tự động tạo nếu không có
|
| 74 |
+
- Response `message` chứa markdown tự nhiên từ LLM
|
| 75 |
+
- `triage_level` xác định mức độ khẩn cấp
|
| 76 |
+
|
src/agent/agent-executor.ts
CHANGED
|
@@ -184,38 +184,45 @@ ${formattedGuidelines}
|
|
| 184 |
|
| 185 |
YÊU CẦU VỀ PHONG CÁCH VIẾT:
|
| 186 |
1. VIẾT HOÀN TOÀN BẰNG TIẾNG VIỆT - không được dùng tiếng Anh trong response
|
| 187 |
-
2. Viết
|
| 188 |
-
3.
|
| 189 |
-
4.
|
| 190 |
-
5.
|
| 191 |
-
6.
|
| 192 |
-
7.
|
| 193 |
-
8.
|
| 194 |
-
9.
|
| 195 |
-
|
| 196 |
-
|
| 197 |
-
|
| 198 |
-
-
|
| 199 |
-
-
|
| 200 |
-
-
|
| 201 |
-
-
|
| 202 |
-
|
| 203 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 204 |
## 📚 Về bệnh [tên bệnh]
|
| 205 |
|
| 206 |
-
[
|
| 207 |
|
| 208 |
## 💊 Nguyên tắc điều trị
|
| 209 |
|
| 210 |
-
[
|
|
|
|
|
|
|
| 211 |
|
| 212 |
-
## 💡
|
| 213 |
|
| 214 |
-
[
|
|
|
|
| 215 |
|
| 216 |
-
|
| 217 |
-
|
| 218 |
-
**Lưu ý quan trọng:** Thông tin này chỉ mang tính tham khảo giáo dục, không thay thế bác sĩ. Nếu bạn đang có triệu chứng, hãy đến gặp bác sĩ để được khám và chẩn đoán chính xác.`;
|
| 219 |
|
| 220 |
// Log prompt and input data before sending to LLM
|
| 221 |
logger.info('='.repeat(80));
|
|
@@ -534,42 +541,42 @@ ${formattedGuidelines}
|
|
| 534 |
|
| 535 |
YÊU CẦU VỀ PHONG CÁCH VIẾT:
|
| 536 |
1. VIẾT HOÀN TOÀN BẰNG TIẾNG VIỆT - không được dùng tiếng Anh trong response
|
| 537 |
-
2. Viết
|
| 538 |
-
3.
|
| 539 |
-
4.
|
| 540 |
-
5.
|
| 541 |
-
6.
|
| 542 |
-
|
| 543 |
-
|
| 544 |
-
Hãy tạo một phản hồi markdown TỰ NHIÊN, có thể bao gồm:
|
| 545 |
-
- Giải thích về tình trạng dựa trên triệu chứng và hình ảnh (nếu có)
|
| 546 |
-
- So sánh các khả năng nếu có nhiều suspected conditions
|
| 547 |
-
- Giải thích "tại sao" đưa ra kết luận này (explainability)
|
| 548 |
-
- Hướng dẫn cụ thể về chăm sóc tại nhà dựa trên guidelines
|
| 549 |
-
- Lời khuyên về hành động tiếp theo
|
| 550 |
-
- Dấu hiệu cảnh báo cần đi khám ngay
|
| 551 |
-
- Disclaimer về tính tham khảo
|
| 552 |
-
|
| 553 |
-
Ví dụ format markdown (KHÔNG bắt buộc phải theo đúng format này, chỉ là gợi ý):
|
| 554 |
-
## 📋 Tóm tắt tình trạng
|
| 555 |
|
| 556 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 557 |
|
| 558 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 559 |
|
| 560 |
-
|
|
|
|
| 561 |
|
| 562 |
-
|
| 563 |
|
| 564 |
-
|
| 565 |
|
| 566 |
-
|
|
|
|
|
|
|
| 567 |
|
| 568 |
-
|
| 569 |
|
| 570 |
-
-
|
| 571 |
|
| 572 |
-
**Lưu ý
|
| 573 |
|
| 574 |
// Log prompt and input data before sending to LLM
|
| 575 |
logger.info('='.repeat(80));
|
|
|
|
| 184 |
|
| 185 |
YÊU CẦU VỀ PHONG CÁCH VIẾT:
|
| 186 |
1. VIẾT HOÀN TOÀN BẰNG TIẾNG VIỆT - không được dùng tiếng Anh trong response
|
| 187 |
+
2. Viết NGẮN GỌN, CÔ ĐỌNG - tối đa 250-350 từ, tập trung vào thông tin quan trọng nhất
|
| 188 |
+
3. Viết TỰ NHIÊN, DỄ HIỂU như đang trò chuyện với người dùng
|
| 189 |
+
4. CÓ THỂ biện luận, giải thích nhưng NGẮN GỌN, không lan man
|
| 190 |
+
5. Sử dụng markdown để format (tiêu đề, danh sách) cho dễ đọc
|
| 191 |
+
6. PHẢI sử dụng thông tin từ "Hướng dẫn y tế từ Bộ Y Tế" ở trên - KHÔNG được tự ý tạo thông tin
|
| 192 |
+
7. KHÔNG được tự thêm câu mở đầu kiểu "Based on...", "I've assessed..." hoặc "This is..."
|
| 193 |
+
8. Đây là câu hỏi giáo dục, KHÔNG PHẢI chẩn đoán cá nhân
|
| 194 |
+
9. Luôn nhấn mạnh: "Thông tin chỉ mang tính tham khảo, không thay thế bác sĩ"
|
| 195 |
+
10. KHÔNG kê đơn, KHÔNG khuyến nghị liều thuốc cụ thể
|
| 196 |
+
|
| 197 |
+
QUAN TRỌNG VỀ ĐỘ DÀI:
|
| 198 |
+
- Tối đa 250-350 từ (khoảng 1-2 đoạn văn ngắn)
|
| 199 |
+
- Tập trung vào: định nghĩa ngắn gọn, nguyên tắc điều trị chính, phòng ngừa
|
| 200 |
+
- KHÔNG lặp lại thông tin, KHÔNG giải thích quá chi tiết
|
| 201 |
+
- Ưu tiên thông tin thực tế, dễ hiểu
|
| 202 |
+
|
| 203 |
+
Hãy tạo một phản hồi markdown NGẮN GỌN, cô đọng, bao gồm:
|
| 204 |
+
- Định nghĩa ngắn gọn về bệnh/triệu chứng (2-3 câu)
|
| 205 |
+
- Nguyên tắc điều trị chính từ guidelines (3-4 điểm ngắn gọn)
|
| 206 |
+
- Hướng dẫn phòng ngừa và chăm sóc (2-3 điểm)
|
| 207 |
+
- Disclaimer ngắn gọn
|
| 208 |
+
|
| 209 |
+
Ví dụ format markdown NGẮN GỌN:
|
| 210 |
## 📚 Về bệnh [tên bệnh]
|
| 211 |
|
| 212 |
+
[Định nghĩa ngắn gọn 2-3 câu từ guidelines]
|
| 213 |
|
| 214 |
## 💊 Nguyên tắc điều trị
|
| 215 |
|
| 216 |
+
- [Điểm 1 - ngắn gọn]
|
| 217 |
+
- [Điểm 2 - ngắn gọn]
|
| 218 |
+
- [Điểm 3 - ngắn gọn]
|
| 219 |
|
| 220 |
+
## 💡 Phòng ngừa và chăm sóc
|
| 221 |
|
| 222 |
+
- [Điểm 1 - ngắn gọn]
|
| 223 |
+
- [Điểm 2 - ngắn gọn]
|
| 224 |
|
| 225 |
+
**Lưu ý:** Thông tin chỉ mang tính tham khảo giáo dục, không thay thế bác sĩ.`;
|
|
|
|
|
|
|
| 226 |
|
| 227 |
// Log prompt and input data before sending to LLM
|
| 228 |
logger.info('='.repeat(80));
|
|
|
|
| 541 |
|
| 542 |
YÊU CẦU VỀ PHONG CÁCH VIẾT:
|
| 543 |
1. VIẾT HOÀN TOÀN BẰNG TIẾNG VIỆT - không được dùng tiếng Anh trong response
|
| 544 |
+
2. Viết NGẮN GỌN, CÔ ĐỌNG - tối đa 300-400 từ, tập trung vào thông tin quan trọng nhất
|
| 545 |
+
3. Viết TỰ NHIÊN, DỄ HIỂU như đang trò chuyện với bệnh nhân
|
| 546 |
+
4. CÓ THỂ biện luận, giải thích "tại sao" nhưng NGẮN GỌN, không lan man
|
| 547 |
+
5. Sử dụng markdown để format (tiêu đề, danh sách) cho dễ đọc
|
| 548 |
+
6. PHẢI sử dụng thông tin từ "Hướng dẫn y tế từ Bộ Y Tế" ở trên - KHÔNG được tự ý tạo thông tin
|
| 549 |
+
7. Luôn nhấn mạnh: "Thông tin chỉ mang tính tham khảo, cần bác sĩ khám để chẩn đoán chính xác"
|
| 550 |
+
${cvResult.top_conditions.length === 0 ? '8. Phân tích hình ảnh không đủ tin cậy, chỉ dựa vào mô tả triệu chứng và guidelines.' : ''}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 551 |
|
| 552 |
+
QUAN TRỌNG VỀ ĐỘ DÀI:
|
| 553 |
+
- Tối đa 300-400 từ (khoảng 1-2 đoạn văn ngắn)
|
| 554 |
+
- Tập trung vào: tình trạng có thể là gì, hướng dẫn chăm sóc ngắn gọn, khi nào cần đi khám
|
| 555 |
+
- KHÔNG lặp lại thông tin, KHÔNG giải thích quá chi tiết
|
| 556 |
+
- Ưu tiên thông tin thực tế, hành động cụ thể
|
| 557 |
|
| 558 |
+
Hãy tạo một phản hồi markdown NGẮN GỌN, cô đọng, bao gồm:
|
| 559 |
+
- Tóm tắt ngắn về tình trạng có thể là gì (1-2 câu)
|
| 560 |
+
- Hướng dẫn chăm sóc tại nhà ngắn gọn từ guidelines (3-4 điểm chính)
|
| 561 |
+
- Khi nào cần đi khám ngay (1-2 câu)
|
| 562 |
+
- Disclaimer ngắn gọn
|
| 563 |
|
| 564 |
+
Ví dụ format markdown NGẮN GỌN:
|
| 565 |
+
## 📋 Tình trạng
|
| 566 |
|
| 567 |
+
Dựa trên triệu chứng và hình ảnh, có khả năng bạn đang gặp [tên bệnh]. [1-2 câu giải thích ngắn gọn].
|
| 568 |
|
| 569 |
+
## 💡 Chăm sóc tại nhà
|
| 570 |
|
| 571 |
+
- [Điểm 1 từ guidelines - ngắn gọn]
|
| 572 |
+
- [Điểm 2 từ guidelines - ngắn gọn]
|
| 573 |
+
- [Điểm 3 từ guidelines - ngắn gọn]
|
| 574 |
|
| 575 |
+
## ⚠️ Khi nào cần đi khám
|
| 576 |
|
| 577 |
+
[1-2 câu về dấu hiệu cảnh báo]
|
| 578 |
|
| 579 |
+
**Lưu ý:** Thông tin chỉ mang tính tham khảo, cần bác sĩ khám để chẩn đoán chính xác.`;
|
| 580 |
|
| 581 |
// Log prompt and input data before sending to LLM
|
| 582 |
logger.info('='.repeat(80));
|