iT邦幫忙

2025 iThome 鐵人賽

DAY 6
0
AI & Data

從RAG到EmoRAG:讓AI真正聽懂你的心聲系列 第 6

第6天:LangGraph基礎與EmoRAG Graph設計

  • 分享至 

  • xImage
  •  

LangGraph和LangChain的比較

適用場景分析

LangChain 的優勢場景

  • 快速原型開發和概念驗證
  • 線性或簡單分支的工作流程
  • 文件摘要、翻譯或內容生成等一次性轉換任務
  • 標準的RAG系統和問答機器人
  • 需要廣泛第三方整合的項目
  • 它的豐富組件庫和成熟的生態系統讓開發者能夠快速上手,特別適合初學者或需要快速交付的專案 。

LangGraph 的強項領域

  • 複雜的多智能體系統
  • 需要動態決策和狀態管理的應用
  • 長期運行的互動式系統
  • 需要重試機制和錯誤恢復的關鍵任務應用
  • 社交網路分析、詐騙檢測等複雜工作流程

開發體驗對比

從開發角度來看,LangChain 注重的是基於插件的擴展性,開發者主要是配置現有組件而非構建自定義工作流程邏輯 。這種方式讓快速開發變得容易,但在需要精細控制時就會受限。

LangGraph 強調的是自定義工作流程設計,開發者可以創建針對特定業務需求量身定做的複雜控制流程 。雖然學習曲線較陡,但提供了更大的靈活性和控制力 。

性能與可視化

LangGraph 的一個顯著優勢是其視覺化工作流程設計能力,讓複雜的任務依賴關係變得容易理解和維護 。加上內建的詳細除錯工具,開發者可以更容易地追蹤和優化系統行為 。

LangChain 雖然有基本的日誌功能,但在複雜工作流程的可視化和除錯方面就相對簡陋了 。

實作

實作目標: 使用LangGraph建立EmoRAG工作流程

LangGraph圖形:

LangGraph圖形
成果分析:
有別於正統RAG將關鍵字檢索+向量檢索作配比成混合檢索,這一次嘗試了將混合檢索+關鍵字檢索+向量檢索一起作分析,原本期望讓準確度提高,誰知卻反而走下坡,日後可能會回歸正統RAG的模式,再來做比較。
從隨機輸入測試結果看來在使用lansinuote/ChnSentiCorp 資料集訓練過後,"正面"幾乎都能辨識出來,但是"負面"準確度還是太差,也常常因為資料集沒出現過而被分類成中性。

範例:

問題:生成的程式碼一直報錯我好煩躁喔
應該是負面,結果辨識成正面。

請輸入您的問題 (或輸入 'quit' 退出): 生成的程式碼一直報錯我好煩躁喔
情緒分類結果: 正面 (信心度: 0.700)

BM25檢索完成: 找到 5 個相關文档
BM25 Retriever Node returning state: 
'detected_emotion': '正面', 'emotion_confidence': 0.7, 

向量檢索完成: 找到 5 個相關文档
Vector Retriever Node returning state: 
'detected_emotion': '正面', 'emotion_confidence': 0.7,

混合檢索完成: 找到 10 個最佳匹配文档
Hybrid Retriever Node returning state: 
'detected_emotion': '正面', 'emotion_confidence': 0.7, 

使用混合檢索結果進行重排序
重排序完成: 最終選出 5 個高品質文档

偵測情緒: 正面 (信心度: 0.700)
最終回答: 我能理解你現在的煩躁感,程式碼報錯確實會讓人感到沮喪。不過,這也是學習和成長的一部分!每次錯誤都是一次寶貴的經驗,幫助你更深入地理解程式碼的運作。

就像許多作家和創作者在面對挑戰時所經歷的那樣,他們的作品往往是在不斷的嘗試和修正中誕生的。比如,有些讀者在閱讀作品時,會因為故事的曲折和人物的成長而感到共鳴,這正是創作的魅力所在。

如果你需要幫助來解決程式碼的問題,隨時告訴我!我們可以一起來看看錯誤的原因,並找到解決方案。保持積極的心態,相信你一定能克服這個挑戰!

實作放在colab


上一篇
第5天:混合檢索與情緒加權
下一篇
第7天:文字EmoRAG基礎測試與評估
系列文
從RAG到EmoRAG:讓AI真正聽懂你的心聲8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言