在重複性強的 AI 請求情境,AI網關現已全面升級緩衝能力,通過Redis精確緩衝與DashVector語義緩衝的雙引擎協同,實現對大語言模型(LLM)調用的降本增效。本文將為您解析語義化緩衝策略和精確緩衝策略的功能優勢及配置方法。
語義化緩衝關鍵概念說明
為協助您更好理解語義化緩衝機制,以下為關鍵概念的說明:
向量嵌入
-
語義緩衝的核心在於通過向量技術實現"意圖級"匹配。當使用者發起新請求時,系統首先會將文本通過文本向量化轉化為高維向量,這個過程稱為向量嵌入。
-
這些向量能夠精準捕捉文本的語義特徵,比如"蘋果手機"和"iPhone"雖然文字不同,但它們的向量距離會非常接近。這種向量化表示突破了傳統精確緩衝對文字完全一致的限制,讓系統能理解"明天北京天氣"與"北京未來24小時氣象預報"的語義關聯。
向量比較
-
在向量產生後,系統會通過餘弦相似性演算法計算新請求與歷史緩衝的向量夾角。當相似性達到預設閾值(建議0.8~0.9,可按需調整),就會觸發緩衝響應。
-
這種機制讓系統能智能識別同義表達,例如在電商客服情境中,使用者輸入"這個快遞什麼時候到?""預計送達時間是什麼時候?"等不同表述,系統都能匹配到同一緩衝答案:"根據物流資訊,您的包裹將在明天下午3點前送達。"
向量資料庫
為了實現高效的向量管理,我們採用DashVector向量資料庫。這類資料庫通過分層聚類演算法(HNSW)實現百萬級向量的毫秒級檢索,同時具備動態更新能力。相比傳統精確緩衝,語義緩衝不僅支援無限語義變體的匹配,還能通過共用相似語義的儲存空間提升資源使用率。
策略對比
|
對比維度 |
傳統精確緩衝 |
語義化緩衝 |
|
匹配方式 |
字串完全一致。 |
向量空間距離判定(餘弦相似性)。 |
|
容錯能力 |
不識別同義/近義表達。 |
支援同義字、句式變體等模糊比對。 |
|
響應速度 |
毫秒級(本地Key-Value查詢)。 |
毫秒級(向量資料庫近鄰搜尋)。 |
|
典型情境 |
標準FAQ、固定參數介面調用。 |
自然語言指令、多輪對話、模糊查詢。 |
|
成本效益 |
適合高頻重複請求。 |
適合語義多樣性高、意圖相近的情境。 |
功能優勢
-
雙模緩衝體系:根據業務需求靈活選擇兩種緩衝並動態調整匹配閾值。
-
精確緩衝:基於Redis的Key-Value儲存架構,對完全相同的請求實現毫秒級響應。
-
語義緩衝:通過DashVector向量資料庫(阿里雲向量檢索服務),對語義相近請求進行智能匹配(相似性閾值可調),突破傳統字串匹配局限。
-
-
減少重複計算:對於相同的AI請求,直接返回緩衝中的響應資料,避免重複調用大語言模型。
-
效能提升維度:通過快速從緩衝中擷取結果,顯著降低回應時間以及後端伺服器的負載壓力。通過語義緩衝可以實現"意圖級"響應,顯著提升使用者的滿意度和體驗。
-
情境覆蓋擴充:適配客服系統、知識庫查詢等標準情境,支援自然語言指令的變體處理(如"明天天氣""未來24小時氣象預報")。
-
日誌監控:提供快取命中率指標分析。
操作步驟
開啟AI網關控制台實例頁面,在頂部功能表列選擇目標執行個體所在地區,並單擊目標執行個體ID。
在左側導覽列,單擊Model API,然後單擊目標API名称進入API详情頁面。
-
單擊策略与插件,開啟緩存開關並配置相關參數。
AI 網關已全面升級緩衝能力,支援语义化缓存和精确缓存,您需要根據策略對比選擇適合的緩衝方式。
語義化緩衝
重要攜帶要求標頭
x-higress-skip-ai-cache: on時,當前請求將不會使用緩衝中的內容,而是直接轉寄給後端服務,同時也不會緩衝該請求返迴響應的內容。-
缓存键生成策略:選擇控制台預設的只取最新提问,或根據需要選擇整合历史提问。
-
文本向量化配置:
-
AI 服务:選擇您建立好的AI 服務。若沒有AI 服務,單擊建立服務,建立一個新的AI 服務。
-
模型名称:選擇您計劃使用的模型名稱。
-
超时时间:設定逾時時間,預設5000ms。
-
-
向量資料庫配置:
-
服务提供者类型:若之前沒有開通向量檢索服務Dashvector,單擊前往控制台,跳轉至向量檢索服務的服務開通頁面進行開通。具體流程為:,記錄Collection名稱用於後續參數設定。
重要建立Collection時距離度量方式選擇
Cosine,向量維度要與文本向量化模型的維度對應。文本與多模態向量化可以查看到百鍊平台文本向量化模型的輸出向量維度。 -
服务地址:輸入您的Dashvector服務地址。
-
Collection名稱:輸入您建立好的Collection的名稱。
-
API Key:訪問憑證。可以參考API-KEY管理。
-
向量相似度阈值:該值決定系統對查詢和緩衝內容的匹配的嚴格程度。取值範圍為(0,1),建議您取值為0.8或者0.9,較大的值表示更大的語義相似性。詳細資料,請參考向量相似性閾值配置指南。
-
超时时间:設定逾時時間,預設3000ms。
-
精確緩衝
重要-
請前往Redis控制台添加白名單。在Redis控制台中,您需要將網關執行個體的VPC網段添加至白名單。
-
攜帶要求標頭
x-higress-skip-ai-cache: on時,當前請求將不會使用緩衝中的內容,而是直接轉寄給後端服務,同時也不會緩衝該請求返迴響應的內容。
-
缓存键生成策略:選擇控制台預設的只取最新提问,或根據需要選擇整合历史提问。
-
Redis緩衝配置:
-
Redis服务地址:輸入您的Redis服務地址。
-
端口号:輸入您的連接埠號碼。
-
访问方式:選擇Redis服務訪問方式,支援帳號+密碼登入、密碼登入、免密登入三種方式。
-
数据库账号:若選擇帳號+密碼登入的訪問方式,需要您輸入資料庫帳號。
-
数据库密码:若選擇帳號+密碼登入或密碼登入的訪問方式,需要您輸入資料庫密碼。
-
数据库编号:指定的資料庫編號。
-
缓存时长(秒):緩衝時間長度預設為1800秒,在緩衝時間長度內,如果API接收到相同的AI請求,則會跳過LLM請求,直接返回緩衝的響應資料。
-
-
-
確認配置資訊並單擊保存。
向量相似性閾值配置指南
核心概念
向量相似性閾值是控制語義緩衝匹配靈敏度的關鍵參數,決定系統匹配查詢與緩衝內容的嚴格程度。
-
取值範圍:介於0.0(完全不相似)到1.0(完全相似)之間。
-
建議範圍:0.8 ~ 0.9(根據業務需求調整),不建議低於0.8。
-
閾值越低(如0.75):即使使用者表述方式不同,只要語義相近就會返回緩衝結果。
-
閾值越高(如0.99):僅當使用者使用幾乎完全相同的表述才返回緩衝結果。
為什麼建議不低於0.8?
當閾值低於0.8時,系統可能將不相關的查詢誤判為匹配。這會引發 "假陽性" 問題(系統錯誤地返回不相關結果),影響使用者體驗或業務準確性。
效果對比樣本
|
樣本配置 |
相似性 |
查詢樣本 |
特徵說明 |
|
1.0 |
“我的快遞什麼時候到?” |
以此條目作為比較基準。 |
|
0.89 |
“我的快遞預計送達時間是什麼時候?” |
匹配“我的快遞什麼時候到?”,命中。 |
|
|
0.86 |
“我的快遞今天能不能送到?” |
匹配“我的快遞什麼時候到?”,命中。 |
|
|
0.83 |
“我的快遞今天能送到哪裡?” |
不能命中。 |
調優建議
-
基準測試:您可以從預設值0.8開始,逐步降低或升高閾值觀察快取命中情況變化。
-
情境適配:
-
對時效性敏感的查詢(如即時物流跟蹤):建議相似性閾值高些。
-
對標準化回答要求高的情境(如常見問題應答):建議相似性閾值低些。
-
-
效能平衡:降低閾值,將增加LLM調用次數。
典型問題
Q:如何判斷最優閾值?
A:通過A/B測試對比:
-
計算快取命中率 vs LLM調用成本。
-
收集使用者對重複內容的投訴率(如"為什麼我的新問題返回了舊答案?")。
-
監控關鍵查詢的回應時間波動(如"即時查詢" vs "歷史查詢")。
建議定期(如每月)根據最新業務資料重新評估閾值設定,特別是在高峰期,可適當降低閾值以應對激增的查詢量。
快取命中率
請確保在查詢之前已經開通了Log Service,只能查到開通Log Service之後的快取命中率資訊。
快取命中率查詢條件(目前支援的查詢粒度為網關層級),以下是查詢範例程式碼:
cluster_id:{your-gatewayId} and inner-ai-cache-{your-gatewayId} | SELECT
SUM(CASE WHEN content LIKE '%cache hit for key%' OR content LIKE '%key accepted%' THEN 1 ELSE 0 END) AS hit_count,
SUM(CASE WHEN content LIKE '%cache miss for key%' OR content LIKE '%score not meet the threshold%' THEN 1 ELSE 0 END) AS miss_count,
SUM(CASE WHEN content LIKE '%cache hit for key%' OR content LIKE '%key accepted%' THEN 1 ELSE 0 END) * 100.0 /
NULLIF(SUM(CASE WHEN content LIKE '%cache hit for key%' OR content LIKE '%key accepted%' OR content LIKE '%cache miss for key%'
OR content LIKE '%score not meet the threshold%' THEN 1 ELSE 0 END), 0) AS hit_rate
-
{your-gatewayId}替換為您的網關執行個體ID,注意前一處替換需要保留gw-首碼,後一處替換不用保留。從緩衝開關按鈕處進入外掛程式日誌查詢日誌系統查詢方塊內會內建cluster_id限制,此時只需將後續的查詢語句粘貼到其後即可。在監控(AI 緩衝)頁面中,單擊查看日誌進入日誌查詢介面,日誌源為apig-plugin-log,將上述查詢語句輸入查詢欄並執行。 -
快取命中率查詢效果。
查詢結果顯示:
hit_count(快取命中次數)為 7,miss_count(緩衝未叫用次數)為 6,hit_rate(命中率)約為 53.85%。
效果展示
-
當開啟精確緩衝時,只匹配完全相同的查詢:在策略對比中,當使用者發送相同語義的查詢(如"你是誰")時,若未命中緩衝,模型正常消耗 token(輸入 tokens: 127,輸出 tokens: 40);若命中精確緩衝(from-cache),則輸入 tokens 和輸出 tokens 均為 0,直接返回緩衝結果,有效降低 token 消耗。
-
當開啟語義化緩衝時,語義相似的查詢也可以匹配,語義相似性低於閾值則不匹配:
語義快取命中時,相似問題直接複用緩衝中的回複,輸入和輸出 tokens 均為 0,不消耗模型推理資源。
例如,使用者提問
我的快遞今天能送到哪裡?時,該問題與已緩衝的問題語義差異較大,緩衝未命中,模型qwen-max正常產生回複並消耗 tokens。