← 返回所有標籤
用 Postgres + pgvector 做一個會標出處的 RAG

用 Postgres + pgvector 做一個會標出處的 RAG

AI |

RAG 拆開就三件事:切塊存起來、依問題找相關的塊、把塊餵給模型生成。資料量還沒到上千萬筆,你已經在用的 Postgres 加上 pgvector 就夠了,還能少維運一個外部服務。這篇用 TypeScript 從零做一個會標出處的 RAG:用 Postgres 存向量、一句 <=> 檢索、一次帶 citations 的生成,答案直接對回原文。

換一個模型只改一行:把 LLM 呼叫收進單一抽象層

換一個模型只改一行:把 LLM 呼叫收進單一抽象層

AI |

模型換得比套件還快,但只要把所有 LLM 呼叫收進單一抽象層,換模型、換供應商對你的應用程式就只是改一個設定值。這篇用中立介面、轉接器、工廠三個步驟,把供應商細節擋在商業邏輯外面,附上可以直接抄的 Anthropic SDK 範例,也講清楚這個做法的邊界。

一個 AI 不夠用的時候:認識 Dynamic Workflows

一個 AI 不夠用的時候:認識 Dynamic Workflows

AI |

有些事一個 AI、一份 SOP 扛不住:掃整個專案的 bug、搬幾百個檔案、查一個要交叉比對幾十個來源的問題。Dynamic Workflows 讓 AI 照一份腳本,調度幾十上百個分身幫你做事,中間成果它自己收著,只把結論交給你。這篇用工頭調班的比喻,帶你認識它是什麼、何時該用、跟 skill 和子代理差在哪,不寫程式也能懂。

我用 Claude 管 Obsidian 的三個月

我用 Claude 管 Obsidian 的三個月

AI |

把整個 Obsidian 知識庫交給 AI 管三個月後,我最大的體悟是:AI 好不好用,八成取決於我,不是它。這篇帶你看我的分層、frontmatter、CLAUDE.md、skill 與記憶,談一個觀念—模型只是引擎,環境才是讓它能託付職責的底盤。

停止重寫 Prompt,開始設計 Skills

停止重寫 Prompt,開始設計 Skills

AI |

Karpathy 的 skills 專案、addyosmani 的 agent-skills 連續上 GitHub 熱門榜。Prompt 用完即丟、Skills 是版本化的工作流。這篇從我自己的 ~/.claude/skills vault 出發,談 Prompt 與 Skill 的差別、Memory 配對、3 個設計原則,與什麼時候不該寫 skill。

給 MCP Server 加上 OAuth - 一個實作全紀錄

給 MCP Server 加上 OAuth - 一個實作全紀錄

AI |

想讓使用者在 Claude Desktop 點一下就接上 MCP server、不用複製貼上 API token?關鍵在 OAuth。這篇走過我在 Minglion 實作 OAuth 2.1 的完整路徑,涵蓋 metadata、Dynamic Client Registration、PKCE、token 驗證,含 5 個踩過的坑。

Claude Code Telegram Bot 設定教學

Claude Code Telegram Bot 設定教學

AI |

最近發現 Claude Code 可以透過 Telegram Plugin 直接用手機跟它互動,等於隨時隨地都能讓 Claude Code 幫你做事。這篇完整記錄從零開始的設定流程。

Claude Code 使用心得

Claude Code 使用心得

AI |

還記得第一次聽到 Claude Code 時,我心想:「又一個 AI 工具?」直到真正用過後,才發現這不只是工具,更像是找到了一個真正理解你程式碼的開發夥伴。

安裝 Dify

安裝 Dify

AI |

Dify 是一個開源的 LLM 應用開發平台。他提供了從 Agent 建置到 AI workflow 、 RAG 檢索、模型管理等能力,輕鬆建置和營運生成式 AI 原生應用程式,因為更佳的視覺化,所以對於 AI 新手來說,會比 LangChain 更容易來的使用。

初次串接 Open AI 提供的 Assistant API

初次串接 Open AI 提供的 Assistant API

AI |

Assistants API 允許我們在自己的應用程式裡面去建立一個 AI 助理。一個助理可以擁有自己的提示 ,而且還可以利用 model 、tool 和 匯入自己的資料來去回應使用者查詢。