# 接手網站卻找不到登入程式？用 graphify 先找入口，再核對原始碼

- 網址：https://blog.valenvan.uk/posts/graphify-labs-graphify.html
- 發布日期：2026-10-26
- 測試設備：Mac mini M4 Pro（12 核、64GB）
- 專案：Graphify-Labs/graphify（https://github.com/Graphify-Labs/graphify），Apache-2.0 授權
- 測試版本：2026-10-26 實錄；未保存套件精確版號
- 實測影片：https://www.youtube.com/shorts/wLyD-DUynj4

## 重點摘要

- Flask 的 24 個 Python 檔共 347,908 位元組，graphify 約 1.2 秒建成 892 個節點、1,816 條連線。
- 登入記憶查詢列出 sessions.py 第 284 行，僅定位候選程式，未測試登入修復。
- 6,689 位元組輸出只顯示 174 個候選中的 78 個，不能當成實際 AI 費用節省率。
- 問沒有內建的信用卡付款仍回傳 317 個候選，必須閱讀原始碼核對。
- **結論：** 適合先定位陌生專案，再讀程式核對。
- **適合：** 接手陌生專案、需要查程式位置的人
- **不適合：** 期待它直接修復登入、或保證回答正確的人

| 實測項目 | 結果 |
|---|---|
| 建圖 | 約 1.2 秒／24 個 Python 檔 |
| 輸入量 | 347,908 位元組 |
| 節點／連線 | 892／1,816 |
| 查詢輸出 | 6,689 位元組；78/174 候選 |
| 付款反例 | 317 個候選；未提示找不到 |

網站剛交到你手上，使用者一直被登出。想請 AI 幫忙，卻連登入狀態放在哪個檔案都不知道。這時需要的第一步是找到相關程式，才有辦法判斷問題。graphify 把程式的檔案、類別與關係整理成可查詢的索引，像翻目錄一樣提供閱讀入口。

影片開場是用途情境；下面才是實際跑過的 Flask 測試。我們沒有修復某個真實網站的登入問題，也沒有量到 AI 帳單降低多少。測試設備是 Mac mini M4 Pro（12 核、64GB）。沿用 2026 年 10 月 26 日實錄，受測來源是當時主線，專案頁更新日期為 10 月 23 日；未保存精確套件版號，不把日期當作可完全重現的版本鎖定。

## 第一步：安裝，對程式資料夾建圖

套件名稱是 `graphifyy`，結尾兩個 y；執行指令是 `graphify`。在適合執行陌生程式的測試環境操作，別拿正式網站或私人資料當第一份樣本。以下用公開的 Flask 示範：

```bash
pip install graphifyy
git clone --depth 1 https://github.com/pallets/flask.git
cd flask
graphify update src
cd src
```

建圖輸出在 `src/graphify-out/`。上面的最後一步先進入 `src`，後續查詢才會找到正確路徑。原測試安裝約 11.17 秒；建圖實錄約 1.2 秒，產生 892 個節點與 1,816 條連線。資料量為 24 個 Python 檔、347,908 **位元組**，是 `wc -c` 的結果，不是字數。報告顯示 `Token cost: 0 input · 0 output`，這只證明這次程式碼建圖未使用模型額度。

![Flask 建圖實錄](https://blog.valenvan.uk/img/graphify-labs-graphify-article_1.png)

## 第二步：把需求問成要找的程式位置

登入狀態如何放進瀏覽器，是接手時可能先查的問題。實測指令：

```bash
graphify query "how are sessions stored in cookies" --graph graphify-out/graph.json
```

結果列出 `src/flask/sessions.py` 的 `SecureCookieSessionInterface`，位置是第 284 行。接著回到編輯器，開啟該檔案讀附近實作，再讓 AI 對照問題找原因。這是查到候選入口，沒有證明它已找到所有登入故障原因。

本次輸出為 6,689 位元組；完整原始碼為 347,908 位元組，約五十二分之一。但結果也標示：174 個候選節點只顯示 78 個。輸出短包含截斷的效果，不能拿來當作相同資訊量的比較，更不能直接推論實際省下多少模型額度。找不到時先縮小問題、核對路徑與原始碼，再考慮調整輸出預算。

## 第三步：別把有結果當成功

```bash
graphify query "how does Flask process credit card payments" --graph graphify-out/graph.json
```

Flask 沒有內建信用卡收款流程，這個問題卻仍找出 317 個候選節點，起點包含 `Flask` 與 `.process_response()`，沒有「找不到」提示。不能因為清單很長，就認為專案具備付款能力。

![不存在的付款功能仍回傳候選節點](https://blog.valenvan.uk/img/graphify-labs-graphify-article_2.png)

正確順序是：先查索引、開啟候選程式、閱讀確認，最後才決定怎麼改與怎麼測。適合接手陌生專案、想先知道從哪讀的人；期待直接得到正確答案或自動修好網站的人，仍需要後續判斷。

## 測試範圍

本次沿用程式碼建圖、查詢與反例實錄。雲端版、文件與 PDF 的語意抽取沒有測試；官方雲端版省八成額度的宣稱也沒有驗證。這些限制保留在本文，不拿宣傳數字當實測結論。

專案：[Graphify-Labs/graphify](https://github.com/Graphify-Labs/graphify)。授權：Apache-2.0。測試樣本：[pallets/flask](https://github.com/pallets/flask)。
