iT邦幫忙

2025 iThome 鐵人賽

DAY 20
0

六大專家智能分析系統 — AI專業身份切換的實作架構 (7)

在上一篇我們探討了檔案上傳的技術實作,今天我們要深入「智能分析引擎」:六大專家分析系統

這個系統能夠讓 AI 智能助手根據不同的專業領域切換身份,從數學解題專家到文學評析大師,從翻譯服務專家到商業分析顧問,提供深度的專業分析服務。


功能簡介

六大專家分析系統提供:

  • 動態專家身份切換:根據分析類型和內容自動選擇最適合的專家模式
  • 專業提示詞設計:每個專家都有量身定制的分析提示詞
  • 智能內容管理:自動保存分析結果供後續 Word 操作使用
  • 繁體中文優化:使用 OpenCC 確保輸出為標準繁體中文
  • 完整錯誤處理:包含 API 配額管理和用戶友善的錯誤訊息

核心程式碼解析

檔案內容分析主函數

def analyze_file_content_tool(self, analysis_type: str = "詳細分析", expert_type: str = "學術分析專家", expert_prompt: str = "") -> str:
    """分析已上傳的檔案內容,根據AI智能判斷的專家身份進行分析"""
    try:
        # 檢查是否有已上傳的檔案
        if not self.app_instance or not hasattr(self.app_instance, 'last_uploaded_file_content'):
            return "請先上傳檔案再進行分析。"
        
        file_content = self.app_instance.last_uploaded_file_content
        filename = getattr(self.app_instance, 'last_uploaded_filename', '未知檔案')
        
        if not file_content.strip():
            return "檔案內容為空,無法進行分析。"

主函數特色:

  • 狀態檢查機制:確保檔案已上傳且內容可用
  • 檔案內容驗證:檢查檔案內容是否為空
  • metadata 獲取:取得檔案名稱用於分析回饋
  • 預設參數設計:提供合理的預設值確保系統穩定性

六大專家模式詳細實作

1. 數學專家模式

if "數學專家" in expert_type and ("解題" in analysis_type or "解答" in analysis_type or "求解" in analysis_type):
    analysis_prompt = f"""{expert_prompt}

請仔細分析並解決以下檔案中的數學題目或問題:

檔案名稱:{filename}
檔案內容:
{file_content}

請以數學專家的身份提供:
1. 問題識別和理解
2. 詳細的解題步驟
3. 計算過程(如果需要)
4. 最終答案
5. 驗證或檢查(如果適用)
6. 相關的數學概念解釋

請用繁體中文回應,步驟要清晰易懂,展現專業的數學知識。"""

數學專家特色:

  • 智能觸發條件:同時檢查專家類型和分析類型
  • 問題導向分析:專注於問題識別和解題流程
  • 步驟化輸出:提供清晰的解題步驟和計算過程
  • 概念解釋:不只給答案,還解釋相關數學概念
  • 驗證機制:提供答案檢查和驗證方法

2. 文學專家模式

elif "文學專家" in expert_type:
    analysis_prompt = f"""{expert_prompt}

請根據以下檔案內容寫出專業的文學分析:

檔案名稱:{filename}
檔案內容:
{file_content}

請以文學專家的身份提供:
1. 作品主題和文學意義
2. 寫作技巧和文學手法分析
3. 人物形象和情節發展
4. 語言風格和修辭特色
5. 個人的專業見解和評價
6. 文學價值和啟發

請用繁體中文回應,展現深度的文學洞察力。"""

文學專家特色:

  • 多層次分析:從主題到技巧到價值的全方位分析
  • 專業術語使用:運用文學批評的專業詞彙
  • 主觀與客觀結合:既有專業分析也有個人見解
  • 啟發性思考:不只分析現象,更探討深層意義

3. 翻譯專家模式

elif "翻譯專家" in expert_type:
    analysis_prompt = f"""{expert_prompt}

請將以下檔案內容進行專業翻譯:

檔案名稱:{filename}
檔案內容:
{file_content}

請以翻譯專家的身份提供:
1. 準確且自然的翻譯
2. 重要術語的翻譯說明
3. 文化背景的適當處理
4. 語言風格的保持

請提供高品質的專業翻譯。"""

翻譯專家特色:

  • 準確性優先:確保翻譯的準確性和完整性
  • 術語處理:特別處理專業術語的翻譯
  • 文化適應:考慮文化背景的差異
  • 風格保持:維持原文的語言風格和語調

4. 資訊整理專家模式

elif "信息整理專家" in expert_type and ("總結" in analysis_type or "摘要" in analysis_type or "重點" in analysis_type):
    analysis_prompt = f"""{expert_prompt}

請對以下檔案進行專業的信息整理:

檔案名稱:{filename}
檔案內容:
{file_content}

請以信息整理專家的身份提供:
1. 核心主題和關鍵概念
2. 重要信息的結構化整理
3. 關鍵數據和事實
4. 需要特別注意的要點
5. 邏輯清晰的總結

請用繁體中文回應,以專業的方式進行信息整理。"""

資訊整理專家特色:

  • 條件觸發:結合專家類型和分析關鍵詞
  • 結構化思維:強調邏輯清晰的資訊組織
  • 重點突出:識別和強調關鍵資訊
  • 數據處理:特別關注數據和事實的整理

5. 科學專家模式

elif "科學專家" in expert_type:
    analysis_prompt = f"""{expert_prompt}

請對以下科學相關檔案進行專業分析:

檔案名稱:{filename}
檔案內容:
{file_content}

請以科學專家的身份提供:
1. 科學概念和理論背景
2. 實驗設計和方法分析
3. 數據解釋和結論評估
4. 科學意義和應用價值
5. 可能的改進建議
6. 相關的科學知識擴展

請用繁體中文回應,展現嚴謹的科學分析能力。"""

科學專家特色:

  • 理論基礎:強調科學概念和理論背景
  • 方法論分析:評估實驗設計和研究方法
  • 批判性思維:對結論進行批判性評估
  • 應用導向:關注科學發現的實際應用價值
  • 知識擴展:提供相關的科學知識補充

6. 商業分析專家模式

elif "商業分析專家" in expert_type:
    analysis_prompt = f"""{expert_prompt}

請對以下商業相關檔案進行專業分析:

檔案名稱:{filename}
檔案內容:
{file_content}

請以商業分析專家的身份提供:
1. 商業模式和策略分析
2. 市場環境和競爭分析
3. 財務和營運評估
4. 風險和機會識別
5. 專業的商業建議
6. 未來發展趨勢預測

請用繁體中文回應,展現專業的商業洞察力。"""

商業分析專家特色:

  • 策略思維:從商業模式和策略角度分析
  • 市場導向:關注市場環境和競爭態勢
  • 財務視角:包含財務和營運層面的評估
  • 風險管理:識別潛在風險和機會
  • 前瞻性思考:預測未來發展趨勢

7. 預設學術分析專家模式

else:
    # 預設使用學術分析專家
    analysis_prompt = f"""{expert_prompt}

請對以下檔案進行學術層面的專業分析:

檔案名稱:{filename}
檔案內容:
{file_content}

請以學術分析專家的身份,根據檔案的具體內容類型(如論文、報告、文獻等),提供相應的學術分析:
1. 內容主題和學術意義
2. 方法論和研究設計評估
3. 論證邏輯和證據分析  
4. 學術貢獻和創新點
5. 批判性思考和改進建議
6. 相關領域的學術價值

請用繁體中文回應,展現嚴謹的學術分析能力。"""

學術分析專家特色:

  • 預設安全選項:當其他專家都不適用時的保險選擇
  • 通用性分析:適用於各種學術內容的分析
  • 嚴謹性要求:強調學術的嚴謹性和邏輯性
  • 批判性思維:提供建設性的批判和建議

分析結果處理系統

AI 內容生成與處理

# 使用Gemini模型進行內容分析
response = self.content_model.generate_content(analysis_prompt)
analysis_result = response.text

# 轉換為繁體中文
analysis_result = self.opencc_converter.convert(analysis_result)

處理流程特色:

  • AI 模型整合:使用 Gemini 模型進行深度分析
  • 語言標準化:確保輸出為標準繁體中文
  • 提示詞工程:精心設計的提示詞確保分析品質

結果保存與狀態管理

# 保存分析結果到app_instance,供後續Word操作使用
if self.app_instance:
    import time
    self.app_instance.last_analysis_result = analysis_result
    self.app_instance.last_analysis_time = time.time()
    print(f"[DEBUG] 已保存分析結果到app_instance,長度: {len(analysis_result)},時間戳: {self.app_instance.last_analysis_time}")

return f"📋 {expert_type}分析結果:{filename}\n\n{analysis_result}"

狀態管理特色:

  • 結果持久化:保存分析結果供其他工具使用
  • 時間戳記錄:記錄分析時間用於版本控制
  • 除錯支援:詳細記錄保存過程的狀態資訊
  • 格式化輸出:提供清楚的標題和結構化輸出

錯誤處理與用戶體驗

API 配額管理

except Exception as e:
    # 當API配額用完時,提示用戶
    if "quota" in str(e).lower() or "429" in str(e):
        return f"檔案分析功能暫時不可用(API配額已用完)。請稍後重試或考慮升級API方案。原始錯誤:{str(e)}"
    else:
        return f"分析檔案內容時發生錯誤: {e}"

錯誤處理特色:

  • 特殊錯誤識別:特別處理 API 配額耗盡的情況
  • 用戶友善訊息:提供清楚的解決建議
  • 詳細錯誤資訊:保留原始錯誤供除錯使用
  • 服務可用性提示:明確告知服務暫停原因

輸入驗證機制

# 檢查是否有已上傳的檔案
if not self.app_instance or not hasattr(self.app_instance, 'last_uploaded_file_content'):
    return "請先上傳檔案再進行分析。"

file_content = self.app_instance.last_uploaded_file_content
filename = getattr(self.app_instance, 'last_uploaded_filename', '未知檔案')

if not file_content.strip():
    return "檔案內容為空,無法進行分析。"

驗證機制特色:

  • 前置條件檢查:確保必要的數據已準備就緒
  • 安全屬性存取:使用 getattr 避免屬性不存在的錯誤
  • 內容有效性檢查:確保檔案內容不為空
  • 清楚的錯誤回饋:告知用戶具體的問題和解決方法

# 數學專家的條件觸發
if "數學專家" in expert_type and ("解題" in analysis_type or "解答" in analysis_type or "求解" in analysis_type):

# 資訊整理專家的條件觸發  
elif "信息整理專家" in expert_type and ("總結" in analysis_type or "摘要" in analysis_type or "重點" in analysis_type):
  • 雙重條件檢查:同時檢查專家類型和分析類型
  • 靈活匹配機制:支援多種關鍵詞觸發
  • 擴展性設計:容易增加新的專家類型和觸發條件
  • 預設保護:確保總有適當的專家可以處理請求

每個專家模式都有專門設計的提示詞結構:

  • 角色定義:明確告訴 AI 扮演什麼角色
  • 分析框架:提供結構化的分析框架
  • 輸出要求:指定輸出的格式和語言
  • 專業要求:強調專業性和深度
# 轉換為繁體中文
analysis_result = self.opencc_converter.convert(analysis_result)
# 多重狀態保存
self.app_instance.last_analysis_result = analysis_result
self.app_instance.last_analysis_time = time.time()

同步機制特色:

  • 即時狀態更新:分析完成後立即更新狀態
  • 時間戳管理:精確記錄每次分析的時間
  • 工具間協作:為其他工具提供必要的狀態資訊

與其他系統的整合

與檔案上傳系統整合

  • 直接使用上傳系統提供的檔案內容
  • 狀態共享:共享檔案名稱和上傳時間等 metadata
  • 自動觸發:上傳完成後可立即進行分析

與 Word 操作系統整合

  • 結果傳遞:分析結果自動保存供 Word 工具使用
  • 格式適配:輸出格式適合直接寫入 Word 文件
  • 版本控制:時間戳確保使用最新的分析結果

與內容生成系統整合

  • 參考資料:分析結果可作為內容生成的參考
  • 風格學習:從分析中學習特定的寫作風格
  • 主題延伸:基於分析結果生成相關內容

總結

六大專家智能分析系統是智能助手的「專業大腦」,它:

  • 提供多元化的專業分析服務,涵蓋數學、文學、翻譯、科學、商業等領域
  • 實現智能的專家身份切換,根據內容類型和用戶需求自動選擇最適合的專家
  • 建立完整的分析工作流程,從內容讀取到專家分析到結果保存
  • 確保高品質的分析輸出,通過精心設計的提示詞和繁體中文優化

這個系統讓 AI 助手不再是通用的對話機器人,而是能夠提供專業級分析服務的智能專家團隊,真正實現了「一個助手,多種專業」的理想。

下一篇,我們將探討 Word 文件操作系統,看看 AI 如何將分析結果完美整合到文件編輯功能中。


上一篇
DAY 19
系列文
我的 AI 助手開發20
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言