与大模型的对话,如果之后其他人非当前用户的问题如果与之前的用户问的问题类似,可迅速从缓存中取出,无需再走LLM。
使用ai网关Higress,此动作在服务端Higress中完成,客户端无需任何代码。
在milvus的vector db中新加collection,名称:
ai_higress_cache,和以下字段:
Field, Type, Index Name, Index Type, Index Parameters
id,auto id, Int64
vector, FloatVector(4096), vector, metric_type:COSINE
question, VarChar(5000)
answer, VarChar(5000)
#这三个字段vector, question, answer是必需的,且名字不能改
前期需要配置做embedding的服务,VECTOR DB的服务,均可在服务来源中完成。
在“ai路由管理”中,点击某个路由的策略,点击配置,输入以下yaml配置
embedding:
apiKey: "sk-xxxxxxx"
model: "nvidia/llama-embed-nemotron-8b"
path: "/v1/embeddings"
serviceName: "llm-vllm-nvidia--llama-embed-nemotron-8b.internal.static"
servicePort: 80
type: "openai"
vector:
apiKey: "empty-key"
collectionID: "ai_higress_cache"
serviceName: "my-milvus.static"
servicePort: 80
type: "milvus"
cacheKeyFrom: "messages.@reverse.0.content"
cacheKeyPrefix: "openai_gpt_oss_20b_"
cacheStreamValueFrom: "choices.0.delta.content"
cacheValueFrom: "choices.0.message.content"
returnResponseTemplate: |
{"id":"from-cache","choices":[{"index":0,"message":{"role":"assistant","content":"%s"},"finish_reason":"stop"}],"model":"gpt-4o","object":"chat.completion","usage":{"prompt_tokens":0,"completion_tokens":0,"total_tokens":0}}
returnStreamResponseTemplate: |-
data:{"id":"from-cache","choices":[{"index":0,"delta":{"role":"assistant","content":"%s"},"finish_reason":"stop"}],"model":"gpt-4o","object":"chat.completion","usage":{"prompt_tokens":0,"completion_tokens":0,"total_tokens":0}}
data:[DONE]
参照:
https://higress.ai/docs/latest/user/plugins/ai/api-provider/ai-cache/
安装命令
curl -LsSf https://astral.sh/uv/install.sh | sh
同步项目环境,并指定python版本
aihubmix,能开发票,有Claude code, Gemini 3.1等最新模型
要把一个已有的 Python 项目(带有 )转成 uv project(即使用 uv 作为包管理器和项目配置),可以按以下步骤操作:
步骤一:初始化 uv 项目
在项目根目录运行:
uv init
#建立项目级的虚拟环境
uv venv
这会生成一个 pyproject.toml,作为 uv 的配置入口。
步骤二:导入 requirements.txt
uv 提供了直接从 安装依赖的方式:
uv add -r requirements.txt
这个命令会解析 requirements.txt 中的每一行(支持带版本的规范如 requests==2.31.0),并将其添加到 pyproject.toml 的 [project.dependencies] 中,同时生成/更新 uv.lock 锁文件。
步骤三:检查并整理依赖
• 打开 pyproject.toml,确认依赖是否正确写入 [tool.uv.dependencies]。
• 如果有开发依赖(如测试框架),可以用:
•
删除旧的 requirements.txt,以后只需要维护 pyproject.toml 和 uv.lock。
步骤四:处理开发依赖(可选)
如果 requirements.txt 中包含仅用于开发的依赖(如 pytest),可以将它们移到 [dependency-groups] 中(uv 支持类似 PEP 735 的开发依赖分组):
uv add --dev pytest
步骤五:同步环境
运行以下命令根据 pyproject.toml 和 uv.lock 创建虚拟环境并安装所有依赖:
uv sync
这会创建一个 .venv 文件夹(如果不存在),并安装精确版本的依赖。
步骤六:后续使用
激活虚拟环境:source .venv/bin/activate(Windows 使用 .venv\Scripts\activate)
运行脚本:uv run python script.py
添加新依赖:uv add requests
更新依赖:uv sync --upgrade
✅ 总结:
-
uv 会生成一个 uv.lock 文件,用于锁定所有传递依赖的精确版本,确保环境可重现。建议将其提交到版本控制。
-
如果项目原本有其他构建工具配置(如 setup.py、setup.cfg),uv init 会尝试合并,但建议手动检查 pyproject.toml 的内容。
-
转换后,原有的 requirements.txt 可以保留作为参考,但后续应使用 pyproject.toml 和 uv.lock 管理依赖。
Planning-with-Files 是一个用于 Claude Code 的 Agent Skill,其核心价值并不是让模型本身变得更聪明,而是通过文件化和结构化的方法,解决 AI 在复杂、长期、多步骤任务中容易出现的上下文遗忘和目标漂移问题。在传统对话式使用 AI 的过程中,随着任务时间拉长,模型往往会偏离最初目标,缺乏清晰的阶段划分和整体进度意识,进而导致反复返工和效率下降。该 Skill 的关键做法,是将任务计划、执行步骤、中间结果以及复盘内容写入本地文件,通常以 Markdown 形式存在。模型在每一次执行前都会读取这些文件,从而重新加载当前任务状态,持续理解整体目标与所处阶段。这种方式本质上是一种工程化的上下文管理手段,把原本依赖模型短期记忆的内容,转移到可持久保存、可检查、可调整的外部结构中,并提升复杂任务的稳定性和可控性。在多步骤协作场景中尤为明显。适合长期使用。效果稳定。
安装
/plugin marketplace add OthmanAdi/planning-with-files
/plugin install planning-with-files@planning-with-files
安装命令
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git
初始化项目
#这个会在项目根目录下建立.claude/commands,并创建相关命令如speckit.plan,在命令行里输入这个就能干活
specify init . --ai claude
输入项目需求
#这个会根据输入建立spec.md的需求文档
speckit.specify
项目计划和设计
#建立项目计划和设计文档
speckit.plan
规划任务
#建立相应的任务,并有check box,完成则打✅
speckit.tasks
项目执行
#逐项执行任务,并标状态
speckit.implement