這個專案展示了一個網頁應用程式,使用內容安全檢查,在透過模型上下文協議 (MCP) 將使用者提示傳送至計算器服務之前進行篩選。
- 使用者輸入:使用者在網頁介面中輸入計算提示
- 內容安全篩選(輸入):提示透過 Azure 內容安全 API 進行分析
- 安全決策(輸入):
- 如果內容安全(所有類別的嚴重程度 < 2),則繼續進入計算器
- 如果內容被標記為可能有害,則流程停止並返回警告
- 計算器整合:安全內容由 LangChain4j 處理,並與 MCP 計算器伺服器溝通
- 內容安全篩選(輸出):機器人的回應透過 Azure 內容安全 API 進行分析
- 安全決策(輸出):
- 如果機器人的回應是安全的,則顯示給使用者
- 如果機器人的回應被標記為可能有害,則以警告取代
- 回應:結果(如果安全)將與兩次安全分析一起顯示給使用者
這個專案展示了如何使用模型上下文協議 (MCP) 從 LangChain4j 呼叫計算器 MCP 服務。實作使用在埠 8080 上運行的本地 MCP 伺服器提供計算器操作。
在使用內容安全功能之前,你需要建立 Azure 內容安全服務資源:
- 登入 Azure Portal
- 點擊「建立資源」並搜尋「Content Safety」
- 選擇「Content Safety」並點擊「建立」
- 為你的資源輸入一個唯一名稱
- 選擇你的訂閱和資源群組(或建立一個新的)
- 選擇支援的地區(詳情請檢查 Region availability)
- 選擇適當的定價層級
- 點擊「建立」以部署資源
- 部署完成後,點擊「前往資源」
- 在左側窗格下的「資源管理」中,選擇「金鑰和端點」
- 複製任一金鑰和端點 URL 以便在下一步中使用
設定 GITHUB_TOKEN 環境變數以進行 GitHub 模型身份驗證:
export GITHUB_TOKEN=<your_github_token>對於內容安全功能,設定:
export CONTENT_SAFETY_ENDPOINT=<your_content_safety_endpoint>
export CONTENT_SAFETY_KEY=<your_content_safety_key>這些環境變數由應用程式使用,以便與 Azure 內容安全服務進行身份驗證。如果這些變數未設定,應用程式將使用佔位值進行演示,但內容安全功能將無法正常運作。
在運行客戶端之前,你需要在 localhost:8080 上以 SSE 模式啟動計算器 MCP 伺服器。
這個專案展示了模型上下文協議 (MCP) 與 LangChain4j 的整合以呼叫計算器服務。主要功能包括:
- 使用 MCP 連接到計算器服務以進行基本數學運算
- 對使用者提示和機器人回應進行雙層內容安全檢查
- 通過 LangChain4j 與 GitHub 的 gpt-4.1-nano 模型整合
- 使用伺服器發送事件 (SSE) 進行 MCP 傳輸
專案包括全面的內容安全功能,以確保使用者輸入和系統回應均無有害內容:
-
輸入篩選:所有使用者提示在處理前均需分析是否包含仇恨言論、暴力、自殘和性內容等有害類別。
-
輸出篩選:即使使用可能未經審查的模型,系統也會通過相同的內容安全過濾器檢查所有生成的回應,然後再顯示給使用者。
這種雙層方法確保系統無論使用哪種 AI 模型,均保持安全,保護使用者免受有害輸入和可能有問題的 AI 生成輸出。
應用程式包括一個使用者友好的網頁介面,允許使用者與內容安全計算器系統互動:
- 簡單直觀的表單用於輸入計算提示
- 雙層內容安全驗證(輸入和輸出)
- 提示和回應安全的即時反饋
- 易於解讀的彩色安全指示器
- 清晰、響應式設計,適用於各種設備
- 提供範例安全提示以指導使用者
-
啟動應用程式:
mvn spring-boot:run
-
打開瀏覽器並導航至
http://localhost:8087 -
在提供的文字區域中輸入計算提示(例如,「計算 24.5 和 17.3 的和」)
-
點擊「提交」以處理你的請求
-
查看結果,其中包括:
- 你的提示的內容安全分析
- 計算結果(如果提示安全)
- 機器人回應的內容安全分析
- 如果輸入或輸出被標記則顯示任何安全警告
網頁客戶端自動處理內容安全驗證過程,確保所有互動均安全且適當,無論使用哪種 AI 模型。
免責聲明: 本文件使用 AI 翻譯服務 Co-op Translator 進行翻譯。儘管我們努力確保準確性,但請注意自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵信息,建議使用專業人工翻譯。我們對使用本翻譯而引起的任何誤解或誤釋不承擔責任。