AI 大模型、生成式技术、SKILL.md、Stable Diffusion、Gemini API、中转站
AI LLM API 开发必看/避坑
由于大模型训练资料包罗万象,必须确立人设三观才能友好辅助,故先用 System Prompt 给 AI 定下角色:“你是个专业的 AI 助手。”。
其次,每次请求的上下文长度是有限的,故可总结下 5 轮之前的历史对话,放入当次 System Prompt 角色设定之后,请求时去掉这些老对话,但 UI 上则应保持显示。
OpenAI Responses API 是 OpenAI Chat Completions API 的新一代接口,但后者兼容性更好。
Java 智能体标准 - https://jakartaee.github.io/agentic-ai/
LangChain4j 比 openai-java 在能力上更丰富。
LangChain4j - AI 对话响应实体为 ChatResponse,但内部包含敏感字段,不能直接序列化给前端,可直接响应 Markdown 文本,或自定义下格式:
id: string; role: 'system' | 'user' | 'assistant' | 'data'; content: string;
各大模型 API
千问 API:
流式输出 - https://docs.bailian.console.aliyun.com/zh/model-studio/stream
注意: Java 示例需切换为 DashScope 选项卡。
通用
vLLM 云侧并发场景的显存复用比端侧的 llama.cpp 更高效。
Chrome 端侧 AI 检测及自动下载:(实例)
LanguageModel.availability({ expectedInputs: [{ type: 'text', languages: ['en'] }], expectedOutputs: [{ type: 'text', languages: ['en'] }] }).then(r=>console.log(r));
const session = await LanguageModel.create({
monitor(m) { // 约 4GiB;chrome://settings/ai -> 设备端 AI -> 关闭。
m.addEventListener("downloadprogress", ({ loaded, total }) => {
console.log(`Model download: ${Math.round((loaded / total) * 100)}%`);
});
},
});
可到 chrome://on-device-internals/ 查看详情。
Android 离线 Agent - https://developer.android.com/ai/adk?hl=zh-cn#on-device-models-with-gemini-nano
依赖 AI Core 应用 - https://play.google.com/store/apps/details?id=com.google.android.aicore&hl=zh-cn
打字机流式渲染应首选 Markdown 格式,Markdown 补全库:
[基于 React] https://github.com/vercel/streamdown
streamdown 补全库也能单独使用 - https://streamdown.ai/docs/termination#using-remend-standalone
[支持主流 JS 框架] https://github.com/Simon-He95/markstream-vue
及近2MiB的纯JS库 https://juejin.cn/post/7595847940621697074
Android/iOS 库 - https://github.com/antgroup/FluidMarkdown
Gemini
AI 大模型函数调用 - https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/tools/function-calling?hl=zh-cn
接地 - Google 搜索接地免费额度为 5000 次,自建 SIMPLE_SEARCH 则功能费+Token费双收,且无免费额度。
Gemini 网页版输入框用 @ 起头,会感知已创建的 SKILL 技能名,显式触发该技能,定时器指令框也支持:@java-code-defaults 用代码问好。
技能示例:---
name: java-code-defaults
description: 强制将所有代码生成和技术解答的默认编程语言设为 Java。当用户要求编写代码、设计架构或询问通用编程问题(未指定其他语言)时触发。
---
# Java Code Generation Standards
当生成、修改或讲解任何代码时,必须将 **Java(建议 JDK 25+ LTS)** 作为默认的编程语言。
## 核心规则与约束
1. **默认语言**:
* 除非用户在提示词中显式指定其他语言(如 Python、Go、JavaScript 等),否则所有代码示例必须使用 Java 实现。
2. **代码风格与规范**:
* 类名采用 `PascalCase`,方法与变量名采用 `camelCase`,常量采用 `UPPER_SNAKE_CASE`。
* 优先使用现代 Java 特性(如 `record`、 Sealed Classes、Stream API、Optional 及 Pattern Matching)。
3. **输出要求**:
* 提供完整可编译的类或方法片段,并包含必要的 `import` 语句。
Stable Diffusion
版本:最新版为 SD 3.5(不足100万美元可免费商用),普通用户部署首选 Stable Diffusion 3.5 Medium;UI 首选 ComfyUI,次选 Stable Diffusion web UI。
竞品 - Black Forest Labs(黑森林实验室) 的 Flux(比SD更强更开放?)、只线上服务的Midjourney
硬件要求:
8G显存虽慢但能跑,建议12G;内存24G;亲测 16G 内存跑 SDXL-base-1.0,在 Load Model 阶段就把内存和交换空间吃完而卡死,而 SD-2.1-768 渲染出图只占用 8G 内存。
安装:
Windows:
桌面版 - https://www.comfy.org/download 下载 *.exe(约110MiB) 后点击安装;无需翻墙,安装时会自动下载安装PyTorch(约5分钟)、CUDA、Python(*.exe 已内置3.12),非 *.exe 方式则需手动安装这些。
启动日志 C:\Users\pc\AppData\Roaming\ComfyUI\logs\comfyui.log
确认 ComfyUI 的 python 环境能力:
cd C:\Users\pc\Documents\ComfyUI\
./.venv/Scripts/Activate.ps1 由Astral工具uv所管理
python --version
pip3 show torch
python -c "import torch; print(torch.cuda.is_available())"
启动报错 -
[Could not find module 'C:\Users\pc\Documents\ComfyUI\.venv\Lib\site-packages\torchaudio\lib\libtorchaudio.pyd'] - 去掉 _torchaudio.pyd 的前缀;不解决也不影响使用。
下载模型(需页面填邮箱等)放入目录(默认空) C:\Users\pc\Documents\ComfyUI\models\checkpoints\ 或自定义 F:\big\comfyui\stable-diffusion-webui\models\Stable-diffusion\sd3.5_medium.safetensors
修改 ComfyUI 模型目录: Help -> Open Folder -> Open extra_model_paths.yaml(Windows 名为 extra_models_config.yaml / a111 是 stable-diffusion-webui 专用配置),追加:
a111:
base_path: F:\big\comfyui\stable-diffusion-webui
checkpoints: models/Stable-diffusion
clip: models/CLIP/
wget --header="Authorization: Bearer HuggingFaceToken" https://huggingface.co/stabilityai/stable-diffusion-3.5-medium/resolve/main/sd3.5_medium.safetensors?download=true
下载 CLIP Text Encoder 模型 clip_g.safetensors, clip_l.safetensors, t5xxl_fp16.safetensors(或低内存版本) 并放入(默认空) models/clip/
打开 SD3.5M_example_workflow.json 并设置:
TripleCLIPLoader 依次选中 clip_g.safetensors, clip_l.safetensors, t5xxl_fp16.safetensors
Load Checkpoint 选中 sd3.5_medium.safetensors 后输入提示词(仅支持English),点击 Queue 进行生图,会占内存14.6G,GPU占17G,持续30秒出图。
CUDA:
nvidia-smi 待安装的CUDA版本必须小于或等于该命令输出的CUDA版本
sudo apt install nvidia-cuda-toolkit 约2.6G大小
安装后用CUDA的工具来查看CUDA版本: nvcc --version
PyTorch:
注意 - Stable Diffusion 锁死了 Python 3.11(测下FaceFusion的Python 3.12) + torch==2.0.1 版本!
sudo apt install python3-pip
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
sudo apt install git
拉取latest(约90MiB),后续考虑是否通过版本号克隆:
git clone https://github.com/Stability-AI/generative-models.git
cd generative-models
解决未生成 .pt2/bin/activate 文件:
sudo apt install python3-venv
[避免太旧] pip install --upgrade pip
[首次不用] rm -rf .pt2/
python3 -m venv .pt2
source .pt2/bin/activate 退出输入 deactivate
未被墙,3分钟安装完毕;此处的CUDA 11.8版本可低于系统已装CUDA版本;cu124 找不到 torchaudio 包
亲测可用版本 - https://pytorch.org/get-started/previous-versions/#linux-and-windows-26
注意 - Python版本必须是3.11,才能从url里检索到2.0.1版本(2G大小):
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118
[可选?] 移除 requirements/pt2.txt 内未使用的 triton==2.0.0 行 https://github.com/Stability-AI/generative-models/issues/41
vim.tiny requirements/pt2.txt
[tokenizers 报 error: casting `&T` to `&mut T`] export RUSTFLAGS="-A invalid_reference_casting"
未完全被墙,但会从 https://github.com/openai/CLIP.git 构建,拉取失败就多试几次;或改为 https://gh-proxy.com/https://github.com/openai/CLIP.git
pip3 install -r requirements/pt2.txt
注意 - xformers会从0.0.20下载至0.0.29版本,挺浪费宽带流量的!
export PYTHONPATH=$(pwd) Windows 则用 $ENV:PYTHONPATH=$PWD
streamlit run scripts/demo/sampling.py --server.port 12345 选中 SDXL-base-1.0 勾上 Load Model 或指定目录:
vim.tiny configs/inference/sd_xl_base.yaml 在 conditioner_config 中 version 值 laion2b_s39b_b160k 改为 /home/aw/sd/CLIP-ViT-bigG-14-laion2B-39B-b160k/open_clip_pytorch_model.bin
分词器下载 https://huggingface.co/openai/clip-vit-large-patch14 放入 generative-models/openai/clip-vit-large-patch14/model.safetensors 等十几个文件
pip install -U "huggingface_hub[cli]" 无需登录
huggingface-cli download openai/clip-vit-large-patch14 --local-dir hf-dir
[A module that was compiled using NumPy 1.x cannot be run in NumPy 2.1.0 as it may crash.]降版本 - pip install numpy==1.26.4
[The shape of the 2D attn_mask is torch.Size([77, 77]), but should be (1, 1)] pip install open-clip-torch==2.24.0
[访问网页报 - ModuleNotFoundError: No module named '_bz2'、'_lzma']
sudo apt install liblzma-dev libbz2-dev Debian之外包名为bzip2-devel?
安装后需要重新编译Python
[只用于训练/暂时用不着] pip3 install -e git+https://github.com/Stability-AI/datapipelines.git@main#egg=sdata
[can't find Rust compiler]
解决 Rust 编译时报 [pkg-config command could not be found.] sudo apt install pkg-config
Linux - https://www.rust-lang.org/tools/install 提问回车选择 1) Proceed with standard installation
export PATH="$HOME/.cargo/bin:$PATH"
rustc --version
Windows - https://visualstudio.microsoft.com/zh-hans/visual-cpp-build-tools/
[大约3GB] 单个组件Tab搜索MSVC勾上MSVC v143 - VS 2022 C++ x64/x86 build tools (Latest)
https://www.rust-lang.org/tools/install 选 64-bit
rustc --version # rustup default stable-msvc
解决ModuleNotFoundError: No module named 'torch'
pip3 install --upgrade setuptools wheel
Python
编译:
[libssl-dev安装后Python构建时就不需要指定--with-openssl了?]
wget https://www.openssl.org/source/openssl-3.5.0.tar.gz
tar -zxvf openssl-3.5.0.tar.gz
cd openssl-3.5.0
./config --prefix=/usr/local/openssl/
make
sudo make install
[fatal error: ffi.h] sudo apt install libffi-dev
[Could not build the ssl module!] sudo apt install libssl-dev
https://www.python.org/downloads/release/python-3110/
wget https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tgz
tar -xzvf Python-3.11.0.tgz
cd Python-3.11.0
[可省略?]sudo vim.tiny /etc/ld.so.conf.d/my-openssl.conf 执行 ldconfig 使其生效?
/usr/local/openssl/lib
指定安装目录,否则会覆盖本机Python版本:
./configure --prefix=/usr/local/python311/ --with-openssl=/usr/local/openssl/ --with-openssl-rpath=auto
make
sudo make install
/usr/local/python311/pip3
/usr/local/python311/python3 -m venv .pt2
查看版本 cat .pt2/pyvenv.cfg
其他
AI 厂商通常会禁止“在不增加价值的情况下转售原始API访问权”,故“AI 中转站”首当其冲。
Qwen3.8-Flash-Next-GSQ-RCO-abliterated-IQ3_S @ 2080Ti 22G魔改版 + 64 内存 + Ubuntu 22.04.5 LTS + 256K上下文拉满 + 4bit-KV-cache = 45+ tokens/sec.