Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124

FinSight-AI 是 MIT 開源、後端為主的 AI 股票投研參考架構(Java 17+Spring Boot 3.3+PostgreSQL/pgvector+Redis+RabbitMQ,GitHub 約 1,110 顆星)。它把文件攝取、指標計算、檢索、報告生成拆成可恢復的冪等工作流,每條 AI 結論都綁回原始文件(證據追蹤),報告依資料快照版本化,還內建 RAG 品質評估做回歸把關。投研語境以中國 A 股為主,但這套架構跨市場適用,換成台股或美股只要改資料來源;適合想學「怎麼蓋可信賴 AI 研究系統」的開發者,不適合直接拿來選股。
用 AI 摘要這篇文章:
FinSight-AI 不是一款給散戶問「這檔股票能不能買」的工具,而是一套開源的 AI 投研參考架構:它示範的是怎麼把財報、公告、研究筆記、市場行情這類素材,餵進一個能交代證據、能版本控管、能自我評估的 AI 研究系統。專案在 GitHub 有約 1,110 顆星,MIT 授權;架構上分成兩半,主工作流後端用 Java 17 加 Spring Boot 3.3,另外有一個 Python 加 FastAPI 的 AI sidecar 負責模型呼叫與嵌入,周邊搭配 PostgreSQL 的 pgvector、Redis、RabbitMQ、Elasticsearch 與 MinIO。它真正值得看的,是模型外面那一圈讓研究結果可信、可重現、可恢復的基礎建設。
TL;DR:FinSight-AI(GitHub 約 1,110 顆星/59 forks,MIT 開源,2026 年 5 月建立、5 月底最後更新,無正式 release)是一套後端為主、以「證據為本」的開源 AI 股票投研代理。主工作流後端用 Java 17+Spring Boot 3.3,另有一個 Python+FastAPI 的 AI sidecar 負責模型呼叫(沒裝 Ollama 也會退回確定性規則分析,離線也能跑 Demo),底層是 PostgreSQL/pgvector+Redis+RabbitMQ+Elasticsearch+MinIO。它把整條研究流程拆成可恢復的冪等工作流,每條 AI 結論都綁回原始檔案段落,報告依資料快照版本化,還內建 RAG 品質評估做回歸把關。投研語境以中國 A 股為主,但這套架構跨市場適用,換成台股或美股只要改資料來源;適合想學「怎麼蓋一個可信賴 AI 研究系統」的開發者與架構師,不適合想直接拿來選股的人。
目錄
把一間公司的財報丟給〈ChatGPT 這類通用對話框〉,拿到的是一段沒有出處、無法回溯、每次問都可能不一樣的文字。FinSight-AI 想解決的正是這種「AI 講得頭頭是道但不知道它憑什麼」的問題,它的核心是讓每一條研究結論都能綁回原始檔案。你可以把它和同樣是「B2B AI 代理」的〈OpenBidKit 易標〉擺在一起看:兩者都是把 RAG(檢索增強生成)和知識庫收進一個有紀律的工作區,差別在 OpenBidKit 服務的是寫標書、FinSight-AI 服務的是讀財報做投研。
FinSight-AI 刻意把重心放在「讓一套 AI 研究系統可靠」的那些工程環節:長時間執行、有明確狀態轉移的代理工作流;避免重複執行的冪等控制;綁定資料快照而非隨便一段 prompt 的報告快取;能把每個結論追到原文段落的證據層;以及用來防止模型退化的品質評估。這些就是它和一個「調 API 的殼」最根本的距離,把三者擺在一起比較更清楚:
| 方案 | 證據追蹤 | 報告版本化 | 容錯工作流 | RAG 評估 | 適合對象 |
|---|---|---|---|---|---|
| FinSight-AI | 有 | 有 | 有 | 有 | 開發者/架構師借鏡 |
| ChatGPT 直接問 | 無 | 無 | 無 | 無 | 快速得到一段看法 |
| 一般 RAG 展示 | 部分 | 無 | 無 | 無 | 學習檢索概念 |
FinSight-AI 的檢索層用 PostgreSQL 的 JSONB、全文檢索加上 pgvector 向量嵌入做混合召回,並把檔案去重成一個個可引用的證據片段。這一層同時支撐四件事:RAG 問答、報告引用、幻覺風險檢查,以及評估用的回歸案例。模型生成出來的任何一個論點,都能回頭指到是哪一份財報、哪一段公告裡的原文,而不會憑空捏造數字。

報告本身也做了版本化處理。它會算出 contextHash、資料的快照雜湊(dataSnapshotHash)和報告版本(reportVersion),把報告快取綁在「這份資料快照」上,而不是綁在一段鬆散的 prompt 字串。好處是當你問的是同一份底層資料,系統會直接命中快取、回放同一份報告;一旦財報更新、資料快照變了,報告才會重新生成。研究結論因此是可重現的,不同時間點拿到相同資料會得到相同結果,這對需要對帳與稽核的投研流程很關鍵。
一套要處理大量檔案、跑很久的 AI 工作流,最怕的是中途失敗、重試時又把同一份任務重複執行一遍。FinSight-AI 從資料進來到報告吐出,中間經過攝取、計算、索引、情報組裝、AI 報告生成幾道關卡,每道關卡都帶有狀態與可恢復點;耗時的階段則交給 RabbitMQ 排成非同步任務佇列,HTTP 請求送出後即可返回,工作在背景推進,這也是它「能跑很久」又不卡住前端的底層機制。
並行控制同樣下了工程功夫:每個任務帶有冪等鍵(idempotency key),同一個請求重複送進來不會被執行兩次;並行靠 Redis 的 Lua 腳本做 single-flight 租約,再配上 fencing token 和本地一個 fallback 鎖。fencing token 是分散式系統裡防止「搶到過期租約的節點繼續寫入」的常見手法,通常搭配單調遞增序號來擋掉過時寫入,FinSight-AI 在這裡採用了它。失敗恢復也是顯式設計過的,工作流有任務狀態機和階段追蹤,重試、死信狀態、逾時接管排程器都明白寫在架構裡,而不是靠開發者臨場補丁。對一套想接進真實投研流程、可能需要處理大量檔案的系統來說,這層容錯設計才是它「敢上線」的底氣。
檢索品質直接決定投研結論的品質,所以 FinSight-AI 不只做檢索,還做檢索的評估。它內建一套 RAG 與代理品質的評估指標:命中率、證據覆蓋率、答案覆蓋率、幻覺風險、結論一致性、信心校準、延遲。這些指標的用途是回歸把關:當你改了模型、換了嵌入或調了 prompt,可以拿評估結果確認品質沒有悄悄退步,而不是憑感覺判斷「好像還行」。
這層評估在一般 AI 工具裡很少見,卻是 RAG 系統能不能長期維運的關鍵。一個沒有評估迴路的 RAG,模型升級後可能默默開始抓錯段落、結論變得不穩,而你毫無察覺;FinSight-AI 把這條迴路明確蓋進系統裡,等於把「品質保證」當成架構的一等公民來設計。
很多後端為主的專案會隨便附一個敷衍的介面,FinSight-AI 反過來把後台那些信任機制做成看得到的東西。它隨專案附帶一個機構投研示範主控台(需要自己跑起來,不是官方託管的網站),分幾個工作區:市場研究區把個股報價狀態、價格趨勢、均線、量能和 AI 研判摘要放進同一個畫面,AI 簡報會給出評級、信心水準、逐條論點與風險論點,而不是一段沒結構的聊天答案,每條論點還能點開背後的證據片段。

更有意思的是工作流與報告追蹤區,它直接把研究任務的狀態機攤開來,每個任務露出冪等鍵、嘗試次數、租約持有者、fencing token 這些欄位,把並行控制從程式碼搬到畫面上;報告追蹤則顯示報告版本、資料快照雜湊、快取命中狀態、模型來源、生成時間,以及綁在報告上的證據片段。它用介面示範「一個可信賴的 AI 系統該讓使用者看到哪些東西」,這本身就是一份 UI 層級的設計參考。值得一提的是,就算你沒裝本地 Ollama,AI sidecar 也會回傳確定性的規則分析結果,讓 Demo 離線也能完整跑通,這是它在工程上為「可展示性」預留的設計。

對開發者來說,FinSight-AI 的價值在於它是一份「把難的事情真的做出來」的範例。Redis Lua single-flight 租約怎麼搭配 fencing token、怎麼在本地準備一個 fallback 鎖當 Redis 故障時的備援、報告快取的 contextHash 和 dataSnapshotHash 該怎麼設計才不會在資料沒變時重複呼叫模型;這些在一般教學檔案裡多半點到為止的設計,這裡有可跑的實作可以對照。
它也示範了完整的失敗恢復鏈:任務狀態機、階段追蹤、重試、死信狀態、逾時接管排程器。這套組合在金融這類「不能漏單、不能重複算」的場景裡是硬需求,而它把它們整合在一個有範例資料、能跑起來的專案裡,比讀十篇分散的架構文章更容易吸收。它還附上 Actuator 和 Prometheus 的監控指標,連維運層都照顧到,這在多數開源 RAG 專案裡是很少見的完整度。這種把工作流紀律做完整的思路,和〈CodexBar 把開發者工作流程整理出紀律〉是同一個方向的事;想先打好 ChatGPT 這類工具的基礎認識,也可以參考〈ExplainThis 的 ChatGPT 指南〉。
想實際看它動,門檻其實不算高。基本流程是把專案原始碼clone 下來,跑 docker compose up,它會把 MinIO、PostgreSQL/pgvector、RabbitMQ、Redis、Elasticsearch、Spring Boot 後端和 FastAPI sidecar 一次拉起來;想看架構全貌,docs/architecture.md 有完整的圖與資料流說明。Ollama 是可選的:裝了會走真實模型推論,沒裝就退回確定性規則分析,所以即使手邊沒有 GPU 或 API key,整套 Demo 也能離線跑通,這對面試展示或本地評估很友善。第一次建置會比較慢,因為 Maven 和 Python 的相依套件要在首跑時下載。

先把話講清楚:FinSight-AI 從中國的股票投研環境長出來,它示範用的資料、市場行情、公告格式都是 A 股那一套,內附的 A 股示範資料是透過公開搜尋介面同步而來,跑 Demo 沒問題,但若要商業化或長期內部使用,資料來源的授權邊界與介面穩定性得自行核對,不能直接搬上線。
但它真正有價值的那層架構(證據追蹤、版本化報告、冪等容錯工作流、RAG 評估)是跨市場的。換成台股,只要把資料來源改接台灣的公開資訊觀測站、券商 API 或財報資料庫,一套可信賴的 AI 投研流程就能搬過來用;換成美股也是同樣道理。一個台灣投研團隊想借鏡它的可行路徑是:先用 Docker 跑起來、用內附範例資料理解整條工作流,再把 A 股的資料接頭換成台灣來源(例如把觀測站財報抓下來轉成它期待的格式餵進攝取階段),模型改接本地或合規的私有化 LLM 避免財報外流,重點是把它當骨架逐段換上台股的資料與合規要求。它的「投研語境」是中國的,但它的「工程藍圖」是普世的。
定位要先講清楚:FinSight-AI 是給開發者與架構師的參考實作,不是給一般投資人裝來選股的產品,也別把它輸出的報告當成投資建議。它適合三種情境:一是想學「怎麼蓋一個能交代證據、能版本控管的 AI 研究系統」的工程師,把它的原始碼當教材;二是金融科技團隊想內部搭建投研知識庫,借鏡它的容錯與評估設計;三是做 RAG 系統的人,想看一個把品質評估和工作流紀律做完整的範例。它目前沒有發布正式的版本號 release、也沒有官方託管的線上服務,要嘛讀原始碼、要嘛自己 Docker 跑,是一份「拿來讀、拿來借鏡、拿來改」的工程藍圖,而不是開箱即用的產品。
如果你只是想快速得到一段股票看法,通用對話框就夠了;但若你關心的是「這段看法憑什麼、能不能重現、模型會不會偷偷退化」,那 FinSight-AI 示範的那一圈基礎建設,正是多數 AI 應用最缺、也最值得學的一塊。