動態

詳情 返回 返回

Higress v2.1.8:30 項引擎更新 + 4 項控制枱更新 - 動態 詳情

💡 目錄

01  Higress 引擎更新

02  Higress 控制枱更新

Higress 引擎更新

📋 本次發佈概覽

本次發佈包含 30 項更新,涵蓋了功能增強、Bug 修復、性能優化等多個方面。

更新內容分佈

  • 新功能: 13項
  • Bug 修復: 7項
  • 重構優化: 5項
  • 文檔更新: 4項
  • 測試改進: 1項

⭐ 重點關注

本次發佈包含 2 項重要更新,建議重點關注:

  • feat: add rag mcp server ([#2930]): 通過引入 RAG MCP 服務器,為用户提供了一種新的方式來管理與檢索知識,增強了系統的功能性和實用性。
  • refactor(mcp): use ECDS for golang filter configuration to avoid connection drain ([#2931]): 採用 ECDS 進行過濾器配置避免了直接嵌入 golang 過濾器配置帶來的不穩定因素,提高了系統的穩定性和可維護性,對用户而言減少了不必要的服務中斷。

詳細信息請查看下方重要功能詳述部分。

🌟 重要功能詳述

以下是本次發佈中的重要功能和改進的詳細説明:

1. feat: add rag mcp server

相關PR: #2930 | 貢獻者: @2456868764

使用背景

在現代應用中,知識管理和檢索變得越來越重要。許多系統需要快速、準確地從大量文本數據中提取和檢索信息。RAG (Retrieval-Augmented Generation) 技術結合了檢索和生成模型,能夠有效提升知識管理的效率和準確性。本 PR 引入了一個 Model Context Protocol (MCP) 服務器,專門用於知識管理和檢索,滿足了用户對高效信息處理的需求。目標用户羣體包括需要處理大量文本數據的企業和開發者,尤其是在自然語言處理(NLP)和機器學習領域。

功能詳述

該 PR 實現了 RAG MCP 服務器,新增了多個功能模塊,包括知識管理、塊管理、搜索和聊天功能。核心功能包括:

  1. 知識管理:支持從文本創建知識塊。
  2. 塊管理:提供列表顯示和刪除知識塊的功能。
  3. 搜索:支持基於關鍵詞的搜索功能。
  4. 聊天功能:允許用户發送聊天消息並獲取響應。 技術實現上,該服務器使用了多種外部庫,如github.com/dlclark/regexp2、github.com/milvus-io/milvus-sdk-go/v2和github.com/pkoukk/tiktoken-go,這些庫提供了正則表達式處理、向量數據庫管理和文本編碼等功能。關鍵代碼變更包括新增 HTTP 客户端、配置文件和多個處理函數,確保了系統的靈活性和可配置性。

使用方式

啓用和配置 RAG MCP 服務器的步驟如下:

  1. 在 higress-config 配置文件中啓用 MCP 服務器,並設置相應的路徑和配置項。
  2. 配置 RAG 系統的基礎參數,如分塊器類型、塊大小和重疊等。
  3. 配置 LLM(大語言模型)提供商及其 API 密鑰、模型名稱等。
  4. 配置嵌入模型提供商及其 API 密鑰、模型名稱等。
  5. 配置向量數據庫提供商及其連接信息。 示例配置如下:
rag: 
  splitter:
    type:"recursive"
    chunk_size:500
    chunk_overlap:50
top_k:5
threshold:0.5
llm:
provider:"openai"
api_key:"your-llm-api-key"
model:"gpt-3.5-turbo"
embedding:
provider:"openai"
api_key:"your-embedding-api-key"
model:"text-embedding-ada-002"
vectordb:
provider:"milvus"
host:"localhost"
port:19530
collection:"test_collection"

注意事項:

  • 確保所有配置項正確無誤,特別是 API 密鑰和模型名稱。
  • 在生產環境中,建議對超時時間等參數進行適當調整以適應不同網絡環境。

功能價值

RAG MCP 服務器為用户提供了一套完整的知識管理和檢索解決方案,提升了系統的智能化和自動化水平。具體好處包括:

  1. 提高效率: 通過集成的知識管理和檢索功能,用户可以快速處理和檢索大量文本數據,節省時間和資源。
  2. 增強準確性: 結合 RAG 技術,系統能夠更準確地提取和檢索信息,減少錯誤率。
  3. 靈活配置: 提供了豐富的配置選項,用户可以根據實際需求進行靈活調整,滿足不同場景下的需求。
  4. 擴展性強: 支持多種提供商和模型,方便用户根據業務需求選擇合適的組件和技術棧。
  5. 穩定性提升: 通過詳細的配置驗證和錯誤處理機制,確保系統的穩定性和健壯性。

2. refactor(mcp): use ECDS for golang filter configuration to avoid connection drain

相關PR: #2931 | 貢獻者: @johnlanni

使用背景

當前實現中,Golang 過濾器配置直接嵌入在 HTTP_FILTER 補丁中,這會導致配置更改時出現連接耗盡的問題。主要原因是 Go map 在 map[string]any 字段中的排序不一致,以及 HTTP_FILTER 更新觸發的監聽器配置更改。這個問題影響了系統的穩定性和用户體驗。目標用户羣體是使用 Higress 進行服務網格管理的開發者和運維人員。

功能詳述

此PR將配置分為兩部分:HTTP_FILTER 僅包含帶有 config_discovery 的過濾器引用,而 EXTENSION_CONFIG 則包含實際的 Golang 過濾器配置。通過這種方式,配置更改不會直接導致連接耗盡。具體實現包括更新 constructMcpSessionStruct 和 constructMcpServerStruct 方法以返回與 EXTENSION_CONFIG 兼容的格式,並更新單元測試以匹配新的配置結構。核心技術創新在於利用 ECDS 機制分離配置,使配置更改更加平滑。

使用方式

啓用和配置這個功能不需要額外的操作,因為它是在後台自動處理的。典型的使用場景是在 Higress 中配置 Golang 過濾器時,系統會自動將其分為 HTTP_FILTER 和 EXTENSION_CONFIG 兩部分。用户只需按照常規方式配置 Golang 過濾器即可。需要注意的是,在升級到新版本時,確保所有相關的配置文件都已更新,並且在生產環境中進行充分的測試,以確保配置更改不會引入其他問題。

功能價值

通過分離配置並使用 ECDS,此功能消除了配置更改時的連接耗盡問題,顯著提高了系統的穩定性和用户體驗。此外,這種設計使得配置更易於管理和維護,減少了因配置更改引起的潛在問題。對於大規模的服務網格部署,這一改進尤為重要,因為它可以減少因配置更改導致的服務中斷,從而提高整體系統的可靠性和可用性。

📝 完整變更日誌

🚀 新功能 (Features)

  • Related PR: #2926
    Contributor: @rinfx
    Change Log: 此 PR 在 vertex-ai 中添加了對多模態、函數調用和思考的支持,涉及引入正則表達式庫及處理邏輯的改進。
    Feature Value: 通過增加新功能,使得 vertex-ai 能夠更好地支持複雜場景下的應用需求,如多模態數據處理和更靈活的功能調用方式,提升了系統的靈活性與實用性。
  • Related PR: #2917
    Contributor: @Aias00
    Change Log: 此次 PR 新增了對 Fireworks AI 的支持,擴展了 AI 代理插件的功能,包括必要的配置文件和測試代碼的添加。
    Feature Value: 增加對 Fireworks AI 的支持使用户能夠利用該平台提供的 AI 功能,拓寬了應用程序可以集成的 AI 服務範圍,增強了用户體驗。
  • Related PR: #2907
    Contributor: @Aias00
    Change Log: 此 PR 升級了 wasm-go 以支持 outputSchema 功能,涉及 jsonrpc-converter 和 oidc 插件的依賴更新。
    Feature Value: 通過支持 outputSchema,增強了 wasm-go 插件的功能性和靈活性,使用户能夠更方便地處理和定義輸出數據結構。
  • Related PR: #2897
    Contributor: @rinfx
    Change Log: 此次 PR 為 ai-proxy bedrock 添加了多模態支持及 thinking 功能,通過擴展 bedrock.go 中的相關代碼來實現。
    Feature Value: 新增的多模態和 thinking 支持豐富了 ai-proxy 的功能集,使得用户能夠利用更先進的AI技術處理複雜場景,提升了系統的靈活性與實用性。
  • Related PR: #2891
    Contributor: @rinfx
    Change Log: 此 PR 在 AI 內容安全插件中添加了針對不同消費者配置特定檢測服務的功能,允許用户根據需求自定義請求和響應的檢查規則。
    Feature Value: 通過支持為不同消費者設置獨立的檢測服務,該功能增強了系統的靈活性與安全性,使用户能夠更精確地控制內容審查過程,從而滿足多樣化的安全策略需求。
  • Related PR: #2883
    Contributor: @Aias00
    Change Log: 此 PR 為美團 Longcat 增加了支持,包括實現與 Longcat 平台的集成和相關的單元測試。
    Feature Value: 新增對美團 Longcat 的支持擴展了插件的功能範圍,使得用户能夠利用更多 AI 服務提供商的技術,增強了應用的靈活性和多樣性。
  • Related PR: #2867
    Contributor: @Aias00
    Change Log: 此 PR 新增了 Gzip 配置支持,並更新了默認設置。通過在 Helm 配置文件中添加 gzip 選項,用户可以自定義壓縮參數以優化響應性能。
    Feature Value: 增加了對 Gzip 配置的支持,使得用户可以根據需求調整 HTTP 響應的壓縮級別,有助於減少傳輸的數據量,加快頁面加載速度,提升用户體驗。
  • Related PR: #2844
    Contributor: @Aias00
    Change Log: 此 PR 通過支持 useSourceIp 增強了負載均衡的一致性哈希算法,修改了相關的 Go 代碼文件以及添加了一個示例配置文件。
    Feature Value: 新增的 useSourceIp 選項允許用户基於源IP地址進行一致性哈希負載均衡,這有助於提高服務在特定網絡條件下的穩定性和可靠性。
  • Related PR: #2843
    Contributor: @erasernoob
    Change Log: 此 PR 為 AI 代理插件添加了 NVIDIA Triton 服務器支持,包括相關配置説明和代碼實現。
    Feature Value: 新增對 Triton 服務器的支持擴展了 AI 代理插件的功能集,使用户能夠利用高性能的機器學習推理服務。
  • Related PR: #2806
    Contributor: @C-zhaozhou
    Change Log: 此 PR 使 ai-security-guard 兼容 MultiModalGuard 接口,增加了多模態 API 的支持,並更新了相關文檔。
    Feature Value: 通過支持多模態 API,增強了 ai-security-guard 的功能,使其能夠處理更復雜的內容安全場景,提升了用户體驗和安全性。
  • Related PR: #2727
    Contributor: @Aias00
    Change Log: 本 PR 為 OpenAI 添加了端到端測試支持,包括非流式和流式請求的測試用例。
    Feature Value: 新增的 OpenAI 端到端測試有助於確保系統在處理不同類型的請求時保持穩定性和準確性,提升了用户體驗。
  • Related PR: #2593
    Contributor: @Xscaperrr
    Change Log: 增加了 WorkloadSelector 字段以限制 EnvoyFilter 的作用範圍,確保在存在開源 istio 環境下不影響同命名空間的其他組件。
    Feature Value: 通過限定 EnvoyFilter 僅作用於 Higress Gateway,避免了對環境內其他 istio gateway/sidecar 造成干擾,提升了配置的安全性和隔離性。

🐛 Bug修復 (Bug Fixes)

  • Related PR: #2938
    Contributor: @wydream
    Change Log: 此 PR 修復了 MultiModalGuard 模式下因缺少 AttackLevel 字段支持而導致的提示攻擊檢測失效問題,確保所有級別的攻擊都能被正確識別。
    Feature Value: 通過增加對 AttackLevel 字段的支持,提高了系統安全性,防止高風險級別的提示攻擊未被攔截的情況發生,保障了用户體驗和安全。
  • Related PR: #2904
    Contributor: @johnlanni
    Change Log: 修復了在處理 HTTP 請求時,原始 Authorization 頭可能被覆蓋的問題。通過無條件保存並檢查非空後再寫入上下文,確保認證信息的準確性和安全性。
    Feature Value: 該修復提升了系統的安全性和穩定性,避免了因認證信息丟失而導致的潛在認證失敗或安全漏洞問題,增強了用户體驗和信任度。
  • Related PR: #2899
    Contributor: @Jing-ze
    Change Log: 此 PR 對 MCP 服務器進行了優化,包括提前解析主機模式以減少運行時開銷和移除未使用的 DomainList 字段。同時修復了 SSE 消息格式問題,特別是處理多餘換行符的問題。
    Feature Value: 通過提高模式匹配效率和內存使用率,以及修正 SSE 消息中的錯誤,提升了用户體驗和服務穩定性,確保了數據傳輸的正確性和完整性。
  • Related PR: #2892
    Contributor: @johnlanni
    Change Log: 修正了 Claude API 返回數組格式 content 時的 JSON 解組錯誤,並移除了重複的代碼結構,提升了代碼質量和維護性。
    Feature Value: 解決了由於不正確的數據類型而導致的消息解析失敗問題,增強了系統的穩定性和用户體驗,對於使用數組作為 content 格式的用户來説,這修復確保了消息處理流程的順暢。
  • Related PR: #2882
    Contributor: @johnlanni
    Change Log: 解決了 Claude 流式響應轉換邏輯中的 SSE 事件分塊問題,改進了協議自動轉換和工具調用狀態跟蹤。
    Feature Value: 提高了 Claude 與 OpenAI 兼容提供者之間的雙向轉換可靠性,避免了連接阻塞,增強了用户體驗。
  • Related PR: #2865
    Contributor: @Thomas-Eliot
    Change Log: 該PR解決了當 SSE 事件被分割成多個 chunk 時,SSE 連接會被阻塞的問題。通過在代理 mcp server 場景下增加緩存機制來確保數據流處理的連續性。
    Feature Value: 修復了可能導致 SSE 連接中斷的問題,增強了系統的穩定性和用户體驗。用户不再會因為網絡條件或服務器響應方式而遇到數據接收不完整的情況。
  • Related PR: #2859
    Contributor: @lcfang
    Change Log: 此 PR 通過在 mcpbridge 中新增 vport 元素,解決了當註冊服務實例端口不一致時路由配置失效的問題。主要改動包括更新 CRD 定義、protobuf 文件及相關生成代碼。
    Feature Value: 該功能確保了即使後端實例端口發生變化,服務的路由配置也能保持有效,從而提高了系統的穩定性和兼容性,為用户提供了更加可靠的服務體驗。

♻️ 重構優化 (Refactoring)

  • Related PR: #2933
    Contributor: @rinfx
    Change Log: 移除了 bedrock 和 vertex 中重複的 think 標籤,減少了冗餘代碼,提高了代碼的可讀性和維護性。
    Feature Value: 通過去除不必要的重複代碼,提升了項目的整體質量和開發效率,使得代碼結構更加清晰,方便後續的維護和擴展。
  • Related PR: #2927
    Contributor: @rinfx
    Change Log: 此 PR 修改了 ai-statistics 插件中 API 名稱提取邏輯,將檢查條件從固定長度 5 調整為至少 3 個部分,以提高靈活性和兼容性。
    Feature Value: 通過放寬 API 字符串分割的限制條件,增強了系統對不同格式 API 字符串的支持能力,提升了系統的適應性和穩定性。
  • Related PR: #2922
    Contributor: @daixijun
    Change Log: 該 PR 將項目中引用的 Higress SDK 包名從github.com/alibaba/higress升級為github.com/alibaba/higress/v2,以兼容最新版本。
    Feature Value: 通過更新包名,確保項目可以引入並使用 Higress 的最新功能和改進,提升開發效率和代碼質量。
  • Related PR: #2890
    Contributor: @johnlanni
    Change Log: 重構了 matchDomain 函數,引入 HostMatcher 結構及匹配類型,替換正則表達式以簡單字符串操作提高性能,並實現端口剝離邏輯。
    Feature Value: 通過優化主機匹配邏輯提高了系統性能和代碼可維護性,使得處理包含端口號的主機頭更加準確高效,提升了用户體驗。

📚 文檔更新 (Documentation)

  • Related PR: #2915
    Contributor: @a6d9a6m
    Change Log: 修復了 README_JP.md 中的一個失效鏈接,並在 README.md 中添加了缺失的部分,使多語言文檔內容更加一致。
    Feature Value: 提高了文檔的準確性和一致性,幫助用户更容易地找到相關信息,提升了用户體驗。
  • Related PR: #2912
    Contributor: @hanxiantao
    Change Log: 優化了 hmac-auth-apisix 插件的英文和中文文檔,增加了更多配置説明細節,提升了文檔清晰度。
    Feature Value: 通過更詳細的文檔解釋,幫助開發者更好地理解和使用 hmac-auth-apisix 插件,提高了用户體驗。
  • Related PR: #2880
    Contributor: @a6d9a6m
    Change Log: 此 PR 修復了 README.md、README_JP.md 和 README_ZH.md 文件中的語法錯誤,確保文檔的正確性和一致性。
    Feature Value: 通過修正文檔中的語言錯誤,提升了文檔的質量與可讀性,幫助用户更好地理解項目信息。
  • Related PR: #2873
    Contributor: @CH3CHO
    Change Log: 此 PR 在非崩潰安全漏洞問題模板中增加了獲取 Higress 運行時日誌和配置的方法,幫助更好地調查問題。
    Feature Value: 通過提供更詳細的日誌和配置信息,用户可以更容易地診斷和解決問題,提高了問題處理的效率和準確性。

🧪 測試改進 (Testing)

  • Related PR: #2928
    Contributor: @rinfx
    Change Log: 該 PR 更新了 ai-security-guard 組件的測試代碼,增加了新的測試用例並調整了一些現有的測試邏輯。
    Feature Value: 通過改進 ai-security-guard 的測試覆蓋率和準確性,提高了整個項目的穩定性和可靠性,有助於開發者更好地理解和維護相關功能。

📊 發佈統計

  • 🚀 新功能: 13項
  • 🐛 Bug修復: 7項
  • ♻️ 重構優化: 5項
  • 📚 文檔更新: 4項
  • 🧪 測試改進: 1項

總計: 30項更改(包含2項重要更新)

Higress 控制枱

📋 本次發佈概覽

本次發佈包含 4 項更新,涵蓋了功能增強、Bug 修復、性能優化等多個方面。

更新內容分佈

  • 新功能: 1項
  • Bug 修復: 2項
  • 文檔更新: 1項

⭐ 重點關注

本次發佈包含 1 項重要更新,建議重點關注:

  • feat: Support using a known service in OpenAI LLM provider (#589): 該功能允許用户在 OpenAI LLM 提供者中利用現有的服務資源,從而擴展了系統的靈活性和可用性,為用户提供更多選擇。

詳細信息請查看下方重要功能詳述部分。

🌟 重要功能詳述

以下是本次發佈中的重要功能和改進的詳細説明:

1. feat: Support using a known service in OpenAI LLM provider

相關PR: #589 | 貢獻者: @CH3CHO

使用背景

在許多應用場景中,開發者可能希望使用自定義的 OpenAI 服務實例,而不是默認的服務。這可能是由於特定的安全要求、性能優化或基礎設施限制。此 PR 通過引入對已知服務的支持,滿足了這些需求。目標用户羣體包括需要高度定製化配置的企業級用户和技術專家。此功能解決了用户無法靈活選擇和配置 OpenAI 服務的問題,提升了系統的適應性和用户體驗。

功能詳述

該 PR 主要實現了以下功能:1. 允許用户在配置 OpenAI LLM 提供者時指定自定義的服務。2. 修改了 OpenaiLlmProviderHandler 類,添加了 buildServiceSource 和 buildUpstreamService 方法,以處理自定義服務的邏輯。3. 在 WasmPluginInstanceService 接口中新增了帶 internal 參數的刪除方法,以支持更細粒度的控制。4. 更新了前端國際化資源文件,增加了與自定義服務相關的提示信息。核心技術要點在於對現有架構的擴展,使得系統能夠識別並使用用户提供的自定義服務,同時保持了向後兼容性。

使用方式

啓用和配置這個功能非常簡單。首先,在創建或更新 LLM 提供者時,選擇“自定義 OpenAI 服務”選項,並填寫相應的服務主機和服務路徑。然後,系統會自動使用這些自定義配置來連接 OpenAI 服務。典型的使用場景包括企業內部部署的 OpenAI 服務實例,或者需要特定安全策略的環境。注意事項包括確保輸入的 URL 是有效的,並且服務主機和服務路徑正確。最佳實踐是進行充分的測試,確保自定義配置能夠正常工作。

功能價值

這一新功能顯著提升了系統的靈活性和可配置性,使用户能夠根據自身需求選擇最合適的 OpenAI 服務。對於需要高度定製化的企業級用户來説,這種靈活性尤為重要。此外,通過支持自定義服務,系統可以更好地集成到現有的基礎設施中,提高了整體的穩定性和性能。這對於維護和擴展大型應用系統具有重要意義。總體而言,這一功能不僅增強了用户體驗,還為系統帶來了更高的可擴展性和可靠性。

📝 完整變更日誌

🐛 Bug 修復 (Bug Fixes)

  • Related PR: #591
    Contributor: @CH3CHO
    Change Log: 此 PR 修復了在啓用路由重寫配置時未正確驗證必填字段的問題,確保 host 和 newPath.path 都必須提供有效值以避免配置錯誤。
    Feature Value: 通過修正路由重寫的驗證邏輯,防止因配置不完整而導致的潛在錯誤,提升了系統的穩定性和用户體驗。
  • Related PR: #590
    Contributor: @CH3CHO
    Change Log: 修正了 Route.customLabels 處理邏輯中的錯誤,確保內置標籤在更新時能夠被正確排除。
    Feature Value: 解決了自定義標籤與內置標籤衝突的問題,保證了用户在更新路由設置時的靈活性和準確性。

📚 文檔更新 (Documentation)

Related PR: #595

Contributor: @CH3CHO

Change Log: 移除了 README.md 中與項目無關的描述,並添加了代碼格式指南,使得文檔更加專注於項目本身。

Feature Value: 通過更新 README.md,使用户能夠更清晰地瞭解項目的結構和代碼規範要求,有助於新貢獻者快速上手。

📊 發佈統計

  • 🚀 新功能: 1項
  • 🐛 Bug 修復: 2項
  • 📚 文檔更新: 1項

總計: 4項更改(包含1項重要更新)

感謝所有貢獻者的辛勤付出!🎉

點擊此處,查看本次更新詳情。

user avatar jzxstudio 頭像 meituanjishutuandui 頭像 fannaodeshafa 頭像
點贊 3 用戶, 點贊了這篇動態!
點贊

Add a new 評論

Some HTML is okay.