大促采购季,新用户首购低至5折点此了解

语义缓存

发布时间 2025-03-03


场景描述

AI网关支持精确缓存及语义缓存推理的结果上下文,对于常见的相似/重复的问题节省Token并减小时延,从而提升调用体验。

AI网关通过在内存数据库中缓存 LLM 响应,并以网关插件的形式来改善推理的延迟和成本,在网关层自动缓存对应用户的历史对话,在后续对话中自动填充到上下文,从而实现大模型对上下文语义的理解。

部署Higress.AI

本指南中基于docker部署,如您需要其他部署方式(k8s、helm等),请参照快速开始

执行以下命令:

Terminal window
curl -sS https://higress.cn/ai-gateway/install.sh | bash

按照指引可以分别录入 Aliyun Dashscope或其他API-KEY;也可以键入回车后跳过,之后在控制台中修改。

上述命令的默认的HTTP的服务端口为8080,HTTPS的服务端口为8443,控制台的服务端口为8001。如您需要使用其他端口,可使用 wget https://higress.cn/ai-gateway/install.sh下载部署脚本后,修改DEFAULT_GATEWAY_HTTP_PORT/DEFAULT_GATEWAY_HTTPS_PORT/DEFAULT_CONSOLE_PORT结果;然后是使用bash执行脚本。

部署完成后,会出现以下界面:

控制台配置

通过浏览器访问控制台界面http://localhost:8001/,首次登录需要配置管理员及密码。

在AI服务提供者管理界面,可以配置已集成供应商的API-KEY。当前已集成的供应商有阿里云、DeepSeek、Azure OpenAI、OpenAI、豆包等。这里我们为阿里云配置API-KEY,如您在上一步中已经配置,则直接忽略。

配置向量缓存服务

Higress语义缓存调用文本向量化服务进行embedding、调用向量数据库服务进行向量存储及检索;这里以阿里云百炼text-embedding-v3文本向量化服务、阿里云DashVector向量检索服务为例,需要在阿里云控制台开通对应的服务及权限:阿里云百炼Embedding向量检索服务。其中,向量检索服务需要创建cluster及存储向量的collection;创建的collection配置的向量维度为1024(text-embedding-v3对应维度),度量距离为Cosine。

在控制台服务来源界面中,创建服务来源。

在服务来源的界面,填写对应的字段:

  • 类型:DNS域名
  • 服务端口:443
  • 域名列表:
    • 阿里云文本向量化服务:dashscope.aliyuncs.com
    • 阿里云向量数据库服务:对应cluster的端点地址,在向量检索服务控制台-cluster-collection中查看
  • 服务协议:HTTPS
  • SNI:和域名列表相同

配置AI路由策略

在AI路由管理界面中,为阿里云配置插件策略,选择AI缓存。

在AI缓存插件配置界面中,参考以下字段填写:

vector:
type: dashvector
serviceName: "aliyun-dashvector.dns"
collectionID: "XXXXX" #存储向量的collection名称
serviceHost: "vrs-cn-xxxxxx.dashvector.cn-hangzhou.aliyuncs.com" #存储cluster的端点地址
apiKey: "sk-xxxxxxxxxxxxxxxxxx" #向量检索api-key
threshold: 0.12
embedding:
type: dashscope
serviceName: "aliyun-embedding.dns"
apiKey: "sk-xxxxxxxxxx" #阿里云百炼api-key
model: "text-embedding-v3" #使用的embedding模型

调试

打开系统自带命令行,通过以下命令进行请求(如HTTP服务未部署在8080端口上,修改为对应端口即可)

curl 'http://localhost:8080/v1/chat/completions' \
-H 'Content-Type: application/json' \
-d '{
"model": "qwen-max",
"messages": [
{
"role": "user",
"content": "星星是什么"
}
]
}'

可以尝试以下问题:

  • 星星是什么
  • 什么是星星
  • 星星通常指什么

请求结果示例:

结果观测

在AI监控面板界面,可以对AI请求进行观测。观测指标包括每秒输入输出Token数量、各供应商/模型Token使用数量等。

如您在部署过程中遇到问题,可在 Higress Github Issue 中留下您的信息。

如您对 Higress 后续更新感兴趣,或希望给 Higress 提供反馈,欢迎 Star Higress Github Repo