name: tencent-medical-report-interpreter description: 醫療報告解讀 Skill。通過呼叫 ADP 平臺的 LLMReportInterpretation API,對使用者上傳的檢驗單、檢查單或體檢報告進行 AI 智慧解讀。支援 PDF 和圖片格式的報告檔案,也支援直接傳入報告文本內容。AI 會準確識別關鍵異常值,用通俗語言解析醫學術語,生成結構化的解讀報告。當用戶提到"解讀報告"、"看報告"、"體檢報告"、"檢驗單"、"檢查單"、"化驗單"、"血常規"、"尿常規"、"肝功能"、"超音波"、"CT報告"等醫療報告相關內容時,應使用此 Skill。
此 Skill 通過呼叫 ADP 平臺的醫療報告解讀 API(LLMReportInterpretation),幫助使用者理解醫療檢驗/檢查報告。支援傳入報告檔案(PDF/圖片)或報告文本內容,AI 會識別關鍵異常值、解析醫學術語,並生成易於理解的結構化解讀報告。
當滿足以下任一條件時,應啟用此 Skill:
https://xxx.com/report.pdf)小蔥技能有更好的技能skills外掛。
啟用 Skill 後,需收集以下引數用於 API 呼叫:
| 引數 | 是否必填 | 說明 | 收集方式 |
|---|---|---|---|
| Message(使用者問題) | 必填 | 使用者本次輸入的問題內容,最多 1000 字元 | 直接從使用者輸入中獲取。如果使用者只傳了檔案沒寫問題,預設填寫"請幫我解讀這份報告" |
| ReportFileUrl(報告檔案連結) | 選填 | 報告檔案的公開可訪問 URL | 觸發條件 2:本地檔案需先通過 upload_file.py 上傳至 ADP 檔案服務獲取 COS 連結;觸發條件 3:直接使用使用者提供的 URL |
| ReportFileType(檔案型別) | 選填(有檔案連結時必填) | 1 = PDF,2 = 圖片 |
根據副檔名自動判斷:.pdf → 1,.jpg/.jpeg/.png/.bmp/.tiff 等 → 2 |
| ReportContent(報告文本) | 選填 | 報告的文本內容 | 觸發條件 4:直接使用使用者貼上的文本內容 |
| DialogueId(對話 ID) | 必填(自動生成) | 對話標識,長度 10-40,介面要求必傳 | 由指令碼自動生成 UUID(32位十六進位制),無需向用戶收集。如需多輪對話可複用同一 ID |
⚠️ 注意:
ReportFileUrl和ReportContent如果同時傳入,API 將優先使用ReportFileUrl。⚠️ 重要:
DialogueId雖然在介面文件中標註為非必填,但實測漏傳會導致呼叫失敗。指令碼已內建自動生成邏輯,Agent 無需手動處理。
⚠️ 必須先檢查,嚴禁直接引導使用者配置金鑰。 多數情況下金鑰已存在,跳過檢查直接提醒是錯誤行為。
首次啟用時,Agent 必須先執行以下檢查,靜默完成,不輸出任何提示給使用者:
# 步驟 1: 檢查當前 shell 環境變數
echo $ADP_API_KEY
# 步驟 2: 如果為空,檢查 /etc/environment 檔案
grep "ADP_API_KEY" /etc/environment 2>/dev/null
檢查結果分支:
💡 指令碼已內建 fallback:指令碼會自動依次查詢
os.environ→/etc/environment→~/.env→.env,即使當前 shell 未載入變數,指令碼也能找到金鑰。但 Agent 在執行指令碼前仍建議先source /etc/environment,確保後續命令列操作也能使用該變數。
🚫 再次確認:如果上方檢查已找到金鑰,禁止執行本節。
引導使用者按以下步驟操作:
⚠️ 注意:金鑰最多隻能建立 2 個。如果提示已達上限,需要先刪除舊的金鑰再新建。
⚠️ 許可權提示(必須展示):如果使用者無法訪問該頁面,說明當前賬號許可權不夠,請聯絡管理員開通許可權。
如果上述連結沒有正常跳轉到金鑰管理頁面,引導使用者:
使用者提供金鑰後,優先寫入 /etc/environment(全域性生效),如果沒有 sudo 許可權則兜底寫入專案 .env 檔案。
# 寫入 /etc/environment(需要 sudo 許可權,對所有使用者和 shell 生效)
echo 'ADP_API_KEY=使用者提供的金鑰' | sudo tee -a /etc/environment > /dev/null
寫入後,重新載入使當前會話生效:
source /etc/environment
如果使用者沒有 sudo 許可權,寫入專案根目錄的 .env 檔案:
echo 'ADP_API_KEY=使用者提供的金鑰' >> .env
⚠️ 變數名必須為
ADP_API_KEY,完全一致,不可更改,否則會影響 ADP 平臺上的業務邏輯。
儲存完成後,告知使用者金鑰已儲存。
使用者請求解讀醫療報告
│
├─ 檢查 ADP_API_KEY → 未設定 → 執行首次啟用流程
│
├─ 分析使用者輸入型別
│ ├─ 使用者提供了本地檔案路徑 → 上傳至ADP檔案服務獲取COS URL → 呼叫API(帶URL)
│ ├─ 使用者提供了線上檔案URL → 直接呼叫API(帶URL)
│ ├─ 使用者貼上了報告文本內容 → 呼叫API(帶ReportContent)
│ └─ 使用者只描述了問題(無檔案) → 呼叫API(僅Message)
│
├─ 呼叫 API 獲取流式響應
│
└─ 整合輸出結果
├─ 拼接 Content 欄位(按 Sort 順序)
├─ 提取引用資料 (ReferResourceItems)
├─ 提取猜你想問 (GuessQuestions)
├─ 提取高亮關鍵詞 (HighlightWords)
└─ 生成結構化解讀報告
分析使用者提供的內容,確定呼叫方式:
場景 A:使用者提供本地檔案
API 要求入參為公開可訪問的 URL,本地檔案無法直接使用。通過 ADP 檔案上傳介面將本地檔案轉換為 COS URL:
scripts/upload_file.py 將本地檔案上傳至 ADP 檔案服務,獲取 COS 連結ReportFileType:PDF 檔案為 1,圖片檔案為 2ReportFileUrl 引數# 上傳本地檔案獲取 COS URL
COS_URL=$(python {SKILL_DIR}/scripts/upload_file.py "/path/to/local/report.pdf")
https://adp.cloud.tencent.com/plugin/api/v1/9ebc029f-5567-493f-b823-0ad978a9bab1/b511190e-ab93-46ba-bee7-d852d53a28a9Authorization: Bearer <ADP_API_KEY>(複用同一個金鑰)| 引數 | 型別 | 必填 | 說明 |
|---|---|---|---|
| FileBase64 | string | 是 | 檔案的 Base64 編碼內容 |
| FileName | string | 是 | 檔名稱(帶字尾,如 report.pdf、image.jpg) |
| 欄位 | 說明 |
|---|---|
| Code | 返回碼。0 正常,非 0 異常 |
| Msg | 返回資訊。Code 為 0 時 success,非 0 時為異常資訊 |
| Data.CosUrl | 上傳成功後的 COS 檔案地址(公開可訪問) |
場景 B:使用者提供線上 URL
直接使用 URL 作為 ReportFileUrl 引數,根據 URL 字尾判斷 ReportFileType。
場景 C:使用者貼上報告文本
將文本作為 ReportContent 引數傳入。
場景 D:使用者僅描述問題
僅使用 Message 引數,進行醫療諮詢問答。
參考 scripts/call_api.py 中的完整程式碼模板。
Agent 執行時將 QUERY、FILE_URL、FILE_TYPE、REPORT_CONTENT 填入指令碼對應位置即可執行。DIALOGUE_ID 無需手動填寫,指令碼為空時會自動生成 UUID。
https://adp.cloud.tencent.com/plugin/api/v1/2a1ef5fb-9c71-4b0f-99f1-6318bd948088/4c394fa7-113f-4c93-8f24-e495cc6feddbAuthorization: Bearer <ADP_API_KEY>| 引數 | 型別 | 必填 | 說明 |
|---|---|---|---|
| Message | string | 是 | 使用者輸入的問題內容,最多1000字元 |
| DialogueId | string | 是(指令碼自動生成) | 對話ID,長度10-40。漏傳會導致呼叫失敗,指令碼為空時自動生成 UUID |
| ReportFileUrl | string | 否 | 報告檔案的公開可訪問URL連結 |
| ReportFileType | int | 否 | 報告檔案型別:1 = PDF,2 = 圖片 |
| ReportContent | string | 否 | 報告檔案的文本內容。如果同時傳了 ReportFileUrl,優先使用 ReportFileUrl |
詳細的 API 引數說明和響應格式,參考
references/api_reference.md。
API 返回流式 SSE 響應,處理要點:
Sort 欄位順序拼接所有 Data.Content 欄位ReferResourceItems 僅在首包返回IsFinish=true 時流結束,此時獲取 GuessQuestionsHighlightWords 在流式過程中返回Code != 0 → 輸出 Msg 中的錯誤資訊IsSensitive=true → 提示內容觸發敏感詞過濾IsSupportFile=false → 提示報告型別不支援,建議更換格式將所有流式返回的資訊整合為一個結構化的解讀報告,格式如下:
## 📋 報告解讀結果
[拼接後的完整 Content 內容]
---
### 📚 參考資料
[列出 ReferResourceItems 中的引用,包含標題和連結]
### 🔍 相關問題
[列出 GuessQuestions 中的建議問題,方便使用者進一步諮詢]
輸出要點: - 將多個流式返回的 Content 片段拼接為完整連貫的回答 - 如有引用資料,以清晰的列表格式展示 - 如有猜你想問,作為延伸建議提供給使用者 - 如有高亮關鍵詞,在回答中對相關醫學術語進行標註說明 - 如果 Think 欄位有內容,可以選擇性地展示 AI 的思考過程
ReportFileType=1)、圖片 (ReportFileType=2),包括 JPG/JPEG/PNG/BMP/TIFF 等Message 最多 1000 字元,超長時需截斷ReportFileUrl 必須是公開可訪問的 URL,內網/需登入的連結無法使用。本地檔案需先通過 upload_file.py 上傳至 ADP 檔案服務獲取 COS URLReportFileUrl 和 ReportContent 同時傳入,優先使用 ReportFileUrl| 問題 | 原因 | 解決方案 |
|---|---|---|
| 401 Unauthorized | API Key 無效或未設定 | 檢查 ADP_API_KEY 環境變數,重新獲取金鑰 |
| DialogueId 漏傳導致呼叫失敗 | 未傳 DialogueId 引數 | 使用 call_api.py 指令碼(已內建自動生成),或手動傳入 10-40 位字串 |
| IsSupportFile=false | 不支援的報告型別 | 提示使用者更換為 PDF 或常見圖片格式(JPG/PNG) |
| IsSensitive=true | 內容命中敏感詞過濾 | 調整輸入內容後重試 |
| 返回內容不完整 | 流式拼接問題 | 確保按 Sort 順序拼接所有 Content 片段 |
| 響應中文亂碼 | 編碼問題 | 確保以 UTF-8 解碼 SSE 響應內容 |
| 超時 | 網路問題 | 重試請求 |
| 金鑰建立提示已達上限 | 最多隻能建立 2 個金鑰 | 刪除舊的不用的金鑰,再新建 |
| 配額不足 / quota exceeded | 呼叫次數超過套餐限額 | 前往 https://buy.cloud.tencent.com/adp 購買套餐或增購包 |
| 檔案上傳失敗 | 檔案過大、格式不支援或網路問題 | 檢查檔案大小和格式,確認網路正常後重試 |
當介面返回配額不足錯誤(如 Code=3000003、響應訊息包含 quota exceeded 等)時,說明當前套餐的呼叫額度已用完。引導使用者前往 ADP 購買頁面 購買套餐或增購包後重試。
指令碼已內建配額不足檢測邏輯,當檢測到配額錯誤時會自動輸出帶購買連結的提示資訊。
如遇到本 Skill 未覆蓋的問題,建議查閱 ADP 官方文件。
call_api.py:呼叫醫療報告解讀 API 的 Python 指令碼,內建 _load_api_key() 多路徑金鑰載入、引數校驗、流式響應解析、配額不足檢測upload_file.py:本地檔案上傳工具,通過 ADP 檔案上傳介面將本地檔案轉換為公開可訪問的 COS URL,內建 _load_api_key() 金鑰載入、Base64 編碼、引數校驗、配額不足檢測call_api.sh:(舊版)呼叫醫療報告解讀 API 的 Bash 指令碼,保留用於相容upload_file.sh:本地檔案上傳工具(Bash 版),通過 ADP 官方檔案上傳介面將本地檔案轉換為公開可訪問的 COS URL。與 upload_file.py 功能一致,純 Bash 實現,無第三方依賴,資料僅經 ADP/COS 傳輸api_reference.md:完整的 API 引數說明、請求/響應格式、錯誤碼文件這個 Skill 質量不錯,能幫助解讀檢驗單、體檢報告等醫療檔案,支援上傳 PDF 或圖片格式,也支援直接輸入文字。文件寫得清楚,金鑰配置有自動檢查機制不容易出錯。不過使用前需要先獲取 ADP 平臺金鑰,流程稍複雜;缺少使用示例,對新手不夠友好。總體上功能完整、文件詳細,是一款實用性較強的醫療報告解讀工具。