Эх сурвалжийг харах

vault backup: 2026-08-19 09:20:11

zhensolid 2 долоо хоног өмнө
parent
commit
c20819c69b
100 өөрчлөгдсөн 6961 нэмэгдсэн , 0 устгасан
  1. 11 0
      01-AI与模型/AI应用/AI小智指南.md
  2. 18 0
      01-AI与模型/AI应用/AI技术支持.md
  3. 258 0
      01-AI与模型/AI应用/AI服务部署.md
  4. 19 0
      01-AI与模型/AI应用/Ai部署.md
  5. 839 0
      01-AI与模型/AI应用/Claude_Obsidian.md
  6. 50 0
      01-AI与模型/AI应用/Cursor无限制.md
  7. 108 0
      01-AI与模型/AI应用/DeerFlow.md
  8. 18 0
      01-AI与模型/AI应用/Dify+Ollama.md
  9. 28 0
      01-AI与模型/AI应用/Dify.md
  10. 39 0
      01-AI与模型/AI应用/Dify技巧.md
  11. 116 0
      01-AI与模型/AI应用/Firecrawl.md
  12. 21 0
      01-AI与模型/AI应用/Grok-bate.md
  13. 257 0
      01-AI与模型/AI应用/Hermes Agent.md
  14. 20 0
      01-AI与模型/AI应用/MCP.md
  15. 292 0
      01-AI与模型/AI应用/MinerU.md
  16. 74 0
      01-AI与模型/AI应用/Ollama.md
  17. 259 0
      01-AI与模型/AI应用/Olmocr.md
  18. 16 0
      01-AI与模型/AI应用/Open-webui.md
  19. 25 0
      01-AI与模型/AI应用/Ragflow.md
  20. 309 0
      01-AI与模型/AI应用/Windows 本地 AI 又升级了!llama.cpp 官方支持 CUDA 13 Vulkan HIP SYCL,一键跑 GGUF 无审查模型!.md
  21. 269 0
      01-AI与模型/AI应用/chatwoot+n8n+dify.md
  22. 21 0
      01-AI与模型/AI应用/微信MCP.md
  23. 62 0
      01-AI与模型/AI应用/查看操作实例.md
  24. 13 0
      01-AI与模型/AI绘画/ComfyUI+Wan2.1.md
  25. 20 0
      01-AI与模型/AI绘画/Laman-clear/CUDA详细安装.md
  26. 4 0
      01-AI与模型/AI绘画/Laman-clear/Laman 启动指令.md
  27. 21 0
      01-AI与模型/AI绘画/Laman-clear/Laman-clear安装教程.md
  28. 28 0
      01-AI与模型/AI绘画/Stable Diffusion WebUl/C站使用教程.md
  29. 2 0
      01-AI与模型/AI绘画/Stable Diffusion WebUl/Stable Diffusion远程控制.md
  30. 16 0
      01-AI与模型/AI绘画/Stable Diffusion WebUl/【模型】推荐.md
  31. 2 0
      01-AI与模型/AI绘画/Stable Diffusion WebUl/安装&用法.md
  32. 7 0
      01-AI与模型/AI绘画/Stable Diffusion WebUl/插件合计.md
  33. 2 0
      01-AI与模型/AI绘画/Stable Diffusion WebUl/炼丹.md
  34. 8 0
      01-AI与模型/API密钥/DeepSeek-Api.md
  35. 13 0
      01-AI与模型/API密钥/MiniMax-Api.md
  36. 26 0
      01-AI与模型/API密钥/百度API.md
  37. 2 0
      01-AI与模型/API密钥/腾讯云ASR-Api.md
  38. 67 0
      01-AI与模型/Ai 量化/Gemma 分析数据.md
  39. 443 0
      01-AI与模型/OpenClaw/OpenClaw 企业微信机器人部署与Skills指南.md
  40. 8 0
      01-AI与模型/OpenClaw/OpenClaw.md
  41. 17 0
      01-AI与模型/OpenClaw/Openclaw For Windows.md
  42. 136 0
      01-AI与模型/OpenClaw/Openclaw Skill.md
  43. 243 0
      01-AI与模型/OpenClaw/Openclaw 手册.md
  44. 35 0
      01-AI与模型/OpenClaw/Openclaw 技巧.md
  45. 7 0
      01-AI与模型/提示词/AI 提示词.md
  46. 59 0
      01-AI与模型/提示词/提示词指南.md
  47. 7 0
      01-AI与模型/提示词/提示词模板.md
  48. 21 0
      01-AI与模型/模型配置/Grok-beta.md
  49. 39 0
      01-AI与模型/模型配置/Llama.cpp本地模型运行.md
  50. 9 0
      01-AI与模型/模型配置/模型教程.md
  51. 73 0
      02-家庭实验室/Docker服务/Adguardhome.md
  52. 15 0
      02-家庭实验室/Docker服务/Bitwarden部署.md
  53. 34 0
      02-家庭实验室/Docker服务/Cloudflare.md
  54. 44 0
      02-家庭实验室/Docker服务/Docker Cli.md
  55. 25 0
      02-家庭实验室/Docker服务/Docker-compose合集/CloudSaver.md
  56. 30 0
      02-家庭实验室/Docker服务/Docker-compose合集/Clouddrive2.md
  57. 25 0
      02-家庭实验室/Docker服务/Docker-compose合集/Cloudsaver操作指南.md
  58. 21 0
      02-家庭实验室/Docker服务/Docker-compose合集/Frp.md
  59. 71 0
      02-家庭实验室/Docker服务/Docker-compose合集/Frp/Frp配置文件.md
  60. 63 0
      02-家庭实验室/Docker服务/Docker-compose合集/Gogs.md
  61. 46 0
      02-家庭实验室/Docker服务/Docker-compose合集/Gogs配置文档.md
  62. 39 0
      02-家庭实验室/Docker服务/Docker-compose合集/Gogs重置密码.md
  63. 9 0
      02-家庭实验室/Docker服务/Docker-compose合集/IPTV-API.md
  64. 24 0
      02-家庭实验室/Docker服务/Docker-compose合集/Jackett.md
  65. 57 0
      02-家庭实验室/Docker服务/Docker-compose合集/Jira.md
  66. 36 0
      02-家庭实验室/Docker服务/Docker-compose合集/Lxmusic-sync.md
  67. 146 0
      02-家庭实验室/Docker服务/Docker-compose合集/MAXUN.md
  68. 26 0
      02-家庭实验室/Docker服务/Docker-compose合集/MeTube.md
  69. 22 0
      02-家庭实验室/Docker服务/Docker-compose合集/Memos.md
  70. 36 0
      02-家庭实验室/Docker服务/Docker-compose合集/Memos操作文档.md
  71. 80 0
      02-家庭实验室/Docker服务/Docker-compose合集/Memos界面配置.md
  72. 17 0
      02-家庭实验室/Docker服务/Docker-compose合集/OmniTools.md
  73. 17 0
      02-家庭实验室/Docker服务/Docker-compose合集/PanHub.md
  74. 26 0
      02-家庭实验室/Docker服务/Docker-compose合集/Portainer.md
  75. 30 0
      02-家庭实验室/Docker服务/Docker-compose合集/Portainer_agent.md
  76. 144 0
      02-家庭实验室/Docker服务/Docker-compose合集/Portainer远程管理.md
  77. 45 0
      02-家庭实验室/Docker服务/Docker-compose合集/Reader阅读配置文件.md
  78. 74 0
      02-家庭实验室/Docker服务/Docker-compose合集/Rustdesk.md
  79. 13 0
      02-家庭实验室/Docker服务/Docker-compose合集/StreamCap.md
  80. 24 0
      02-家庭实验室/Docker服务/Docker-compose合集/Tailscale.md
  81. 95 0
      02-家庭实验室/Docker服务/Docker-compose合集/Tailscale配置说明.md
  82. 24 0
      02-家庭实验室/Docker服务/Docker-compose合集/UmbrelOS.md
  83. 50 0
      02-家庭实验室/Docker服务/Docker-compose合集/Vnstat.md
  84. 64 0
      02-家庭实验室/Docker服务/Docker-compose合集/Watchtower.md
  85. 280 0
      02-家庭实验室/Docker服务/Docker-compose合集/ZeroTier.md
  86. 195 0
      02-家庭实验室/Docker服务/Docker-compose合集/ZeroTier/ZeroTier路由器配置文档.md
  87. 20 0
      02-家庭实验室/Docker服务/Docker-compose合集/aipan-netdisk-search.md
  88. 55 0
      02-家庭实验室/Docker服务/Docker-compose合集/copyparty.md
  89. 12 0
      02-家庭实验室/Docker服务/Docker-compose合集/dailyhot.md
  90. 63 0
      02-家庭实验室/Docker服务/Docker-compose合集/epicgames-config配置文件.md
  91. 24 0
      02-家庭实验室/Docker服务/Docker-compose合集/epicgames-freegames.md
  92. 31 0
      02-家庭实验室/Docker服务/Docker-compose合集/immich.md
  93. 30 0
      02-家庭实验室/Docker服务/Docker-compose合集/minio.md
  94. 35 0
      02-家庭实验室/Docker服务/Docker-compose合集/minio文档.md
  95. 74 0
      02-家庭实验室/Docker服务/Docker-compose合集/mopidy.md
  96. 27 0
      02-家庭实验室/Docker服务/Docker-compose合集/musicn-container.md
  97. 57 0
      02-家庭实验室/Docker服务/Docker-compose合集/node_exporter+Prometheus+grafana.md
  98. 18 0
      02-家庭实验室/Docker服务/Docker-compose合集/orcmyPDF.md
  99. 60 0
      02-家庭实验室/Docker服务/Docker-compose合集/phpipam.md
  100. 51 0
      02-家庭实验室/Docker服务/Docker-compose合集/readerwebview.md

+ 11 - 0
01-AI与模型/AI应用/AI小智指南.md

@@ -0,0 +1,11 @@
+---
+notion-id: 256ca4d7-cb7b-80fc-adb4-e12eaa5019e7
+---
+## 零、小智控制面板【通过语言:你好小智,获取设备码绑定】
+[https://xiaozhi.me/](https://xiaozhi.me/)
+## 一、小智AI聊天机器人百科全书
+[https://ccnphfhqs21z.feishu.cn/wiki/F5krwD16viZoF0kKkvDcrZNYnhb](https://ccnphfhqs21z.feishu.cn/wiki/F5krwD16viZoF0kKkvDcrZNYnhb)
+## 二、小智AI固件
+[https://ccnphfhqs21z.feishu.cn/wiki/W14Kw1s1uieoKjkP8N0c1VVvn8d](https://ccnphfhqs21z.feishu.cn/wiki/W14Kw1s1uieoKjkP8N0c1VVvn8d)
+## 三、小智常见问题
+[https://rcnv1t9vps13.feishu.cn/wiki/JiQowaSe1itt07kyVvZcHFcQnee](https://rcnv1t9vps13.feishu.cn/wiki/JiQowaSe1itt07kyVvZcHFcQnee)

+ 18 - 0
01-AI与模型/AI应用/AI技术支持.md

@@ -0,0 +1,18 @@
+---
+notion-id: 1d1ca4d7-cb7b-8057-b4af-c4ed9f61ec4d
+---
+[[MCP]]
+[[Ollama]]
+[[Dify]]
+[[Ragflow]]
+[[Dify技巧]]
+[[Cursor无限制]]
+
+| 模型 | 版本 | 效果 | 备注 |
+| --- | --- | --- | --- |
+| gemma3 | 4b | 拥有图片识别功能 | 无法进行思维 |
+| qwen3 | 8b | 推理模型 |   |
+| deepseek-r1 | 8b | 推理模型 | 效果比qwen3好用 |
+| [**deepseek-coder-v2**](https://ollama.com/library/deepseek-coder-v2) |   | 推理模型 |   |
+| zincles/sakura-1.5b-qwen2.5-v1.0-q5ks |   | 翻译模型 | 用来进行日语翻译 |
+

+ 258 - 0
01-AI与模型/AI应用/AI服务部署.md

@@ -0,0 +1,258 @@
+---
+notion-id: 232ca4d7-cb7b-80e1-a013-fe1f3f9be378
+---
+### **执行摘要**
+**核心挑战**: 您的 Radeon VII 显卡(`gfx906` 架构)已被 AMD 官方在新版的 ROCm 驱动中停止支持。这意味着官方的 vLLM 推理框架无法直接在您的硬件上正常工作。
+**解决方案**: 我们将采用一个由社区维护的、专门为 `gfx906` 硬件优化的 vLLM 分支 (`nlzy/vllm-gfx906`)。此方案将通过预构建的 Docker 容器来部署,以最大程度地简化安装流程并规避复杂的依赖问题。通过张量并行技术,我们将把 `Qwen3-32B-AWQ` 模型分片到您的两张 Radeon VII 显卡上,实现高效推理。
+**系统版本**: ubuntu 22.04.5,如使用其他操作系统请自行通过AI修改相关命令。
+
+---
+### **第一部分:系统底层环境配置**
+在安装任何 AI 软件栈之前,必须确保操作系统和 BIOS 已为多 GPU 计算环境正确配置。这些步骤虽常被忽视,但至关重要。
+1. **BIOS/UEFI 设置**
+
+您需要进入服务器的 BIOS/UEFI 设置界面,进行以下两项关键修改。这些设置是让操作系统正确识别和管理多个无头(headless)计算卡的先决条件。
+- **启用 "Above 4G Decoding"**: 此设置允许 64 位操作系统正确映射多个 GPU 所需的巨大内存地址空间,是避免资源冲突和硬件识别失败的关键。请在 "PCIe Subsystem Settings" 或 "Advanced" 菜单中找到并启用它。
+- **禁用 "Compatibility Support Module (CSM)"**: 禁用 CSM 会强制系统进入纯 UEFI 启动模式。由于 Radeon VII 在此场景下作为纯计算卡使用,没有视频输出,传统的 BIOS 启动模式可能会干扰其在操作系统层面的正确初始化。
+2. **安装 Docker Engine**
+
+我们将使用 Docker 来部署服务,这可以极大地简化环境配置。
+Bash
+```plain text
+# 更新您的包列表
+sudo apt update && sudo apt upgrade -y
+
+# 安装 Docker
+sudo apt install docker.io -y
+
+# 启动并设置 Docker 开机自启
+sudo systemctl start docker
+sudo systemctl enable docker
+
+---
+
+```
+### **第二部分:ROCm 驱动与验证**
+尽管 `gfx906` 已被官方弃用,但我们依赖的社区方案 (`vllm-gfx906`) 要求使用 **ROCm 6.3** 版本进行构建和运行。其底层的内核驱动仍对您的硬件保持兼容性。
+3. **安装 ROCm 6.3**
+
+我们将使用 `amdgpu-install` 脚本来精确安装所需的版本。
+Bash
+```plain text
+# 下载针对 Ubuntu 22.04 (Jammy) 的 ROCm 6.3 安装脚本
+wget <https://repo.radeon.com/amdgpu-install/6.3/ubuntu/jammy/amdgpu-install_6.3.60300-1_all.deb>
+
+# 安装该脚本
+sudo apt install ./amdgpu-install_6.3.60300-1_all.deb
+
+# 使用该脚本安装 ROCm 核心计算库# --usecase=rocm,hiplibsdk 参数确保安装了所有必要的计算库
+sudo amdgpu-install -y --usecase=rocm,hiplibsdk
+
+```
+4. **配置用户权限并重启**
+
+这是允许应用程序访问 GPU 硬件的强制步骤。
+Bash
+```plain text
+# 将当前用户添加到 render 和 video 组
+sudo usermod -a -G render,video $LOGNAME# 必须重启系统以使新安装的内核模块和用户组权限生效
+sudo reboot
+
+```
+5. **严格验证 ROCm 环境**
+
+重启后,打开一个新的终端,执行以下命令来验证 ROCm 是否已正确安装且识别出您的两张 Radeon VII 显卡。
+- **检查用户组权限**:
+- Bash
+
+```plain text
+groups
+
+```
+- 预期输出应包含 `render` 和 `video`。
+- **检查内核模块**:
+- Bash
+
+```plain text
+dkms status
+
+```
+- 预期输出应显示 `amdgpu` 模块已为当前内核成功安装 (`installed`)。
+- **检查 ROCm Agent 枚举**:
+- Bash
+
+```plain text
+rocminfo
+
+```
+- 您应该能在此命令的输出中找到 **两个**独立的 "Agent" 块,每个块的 "Name" 字段都应显示为 `gfx906`。
+- **检查硬件状态**:
+- Bash
+
+```plain text
+rocm-smi
+
+```
+- 预期输出应清晰地列出 **两张** 显卡,每张卡的 VRAM 显示为 `16384MiB`,并且状态正常。
+
+> [SUCCESS CHECKPOINT]
+在继续下一步之前,请确保以上所有验证命令均返回了预期的结果。任何一步的失败都表明底层驱动存在问题,必须先行解决。
+
+---
+### **第三部分:使用 vLLM-GFX906 部署模型**
+我们将采用社区推荐的、最直接的部署路径:使用预构建的 Docker 镜像。这个镜像封装了所有必需的补丁和依赖,包括为 `gfx906` 定制的 vLLM 和 Triton。
+6. **拉取预构建的 Docker 镜像**
+
+该镜像是 `nlzy/vllm-gfx906` 分支的作者提供的,专门为 ROCm 6.3 环境构建。
+Bash
+```plain text
+# 拉取社区报告中验证过的特定标签的镜像
+docker pull nalanzeyu/vllm-gfx906:v0.9.0-rocm6.3
+
+```
+7. **启动 vLLM 服务器**
+
+现在,我们将使用一条命令来启动 Docker 容器,并在其中运行 vLLM 服务器。该命令将配置张量并行,把 `Qwen3-32B-AWQ` 模型加载到您的两张 Radeon VII 上。
+Bash
+```plain text
+# 将 /path/to/your/models 替换为您在主机上存储模型的实际路径# 如果您希望 vLLM 自动从 Hugging Face 下载,可以省略 -v 挂载和 --model 参数中的路径部分
+
+docker run -it --rm \\
+  --network=host \\
+  --ipc=host \\
+  --shm-size=16g \\
+  --device=/dev/kfd \\
+  --device=/dev/dri \\
+  --group-add video \\
+  --cap-add=SYS_PTRACE \\
+  --security-opt seccomp=unconfined \\
+  -v /path/to/your/models:/models \\
+  nalanzeyu/vllm-gfx906:v0.9.0-rocm6.3 \\
+  vllm serve Qwen/Qwen3-32B-AWQ \\
+  --tensor-parallel-size 2 \\
+  --quantization awq \\
+  --max-model-len 5100 \\
+  --disable-log-requests \\
+  --dtype float16
+
+```
+**命令参数详解**:
+- `docker run ...`: 启动容器所需的一系列标准参数,用于正确地将 AMD GPU 设备暴露给容器。
+- `nalanzeyu/vllm-gfx906:v0.9.0-rocm6.3`: 指定我们下载的、包含所有 `gfx906` 补丁的必需镜像。
+- `vllm serve Qwen/Qwen3-32B-AWQ`: vLLM 的启动命令,指向您要服务的模型。vLLM 会自动从 Hugging Face 下载。
+- `-tensor-parallel-size 2`: **核心参数**。指示 vLLM 将模型的权重均匀地切分到您的 **2** 张 GPU 上。
+- `-quantization awq`: 明确告知 vLLM 加载的模型是 AWQ 量化格式。
+- `-max-model-len 8192`: 设置模型能处理的最大序列长度。
+- `-disable-log-requests`: 一项性能优化措施,在生产环境中建议开启。
+- `-dtype float16`: `vllm-gfx906` 分支推荐使用 `float16` 以在 `gfx906` 硬件上获得更好的性能。
+
+---
+### **第四部分:验证与客户端交互**
+服务器成功启动后,vLLM 会在日志中显示工作进程已在所有指定的 GPU (`GPU 0, 1`) 上初始化,并开始在 `localhost:8000` 上监听 API 请求。
+8. **使用**`curl`**进行快速测试**
+
+这是验证 API 端点是否正常响应的最简单方法。
+Bash
+```plain text
+curl <http://localhost:8000/v1/completions> \\
+-H "Content-Type: application/json" \\
+-d '{
+    "model": "Qwen/Qwen3-32B-AWQ",
+    "prompt": "San Francisco is a",
+    "max_tokens": 20,
+    "temperature": 0
+}'
+
+```
+如果一切正常,您将收到一个包含模型生成文本的 JSON 响应。
+9. **使用 Python 客户端进行交互**
+
+为了更方便地进行程序化访问,您可以使用 `openai` Python 库,因为它与 vLLM 提供的 API 完全兼容。
+首先,安装 `openai` 库:
+Bash
+```plain text
+pip install openai
+
+```
+然后,使用以下 Python 脚本与您的本地模型进行交互:
+Python
+```plain text
+from openai import OpenAI
+
+# 配置客户端以指向本地 vLLM 服务器# 对于本地服务,API 密钥可以是任意字符串
+client = OpenAI(
+    api_key="not-needed",
+    base_url="<http://localhost:8000/v1>"
+)
+
+# 准备聊天消息
+messages = [
+    {"role": "system", "content": "You are a helpful assistant."},
+    {"role": "user", "content": "请介绍一下什么是张量并行(Tensor Parallelism)?"}
+]
+
+print("向本地 Qwen3 模型发送请求...")
+
+try:
+    chat_completion = client.chat.completions.create(
+        model="Qwen/Qwen3-32B-AWQ",
+        messages=messages,
+        max_tokens=512,
+        temperature=0.7
+    )
+    # 解析并打印结果
+    print("\\n模型回复:")
+    print(chat_completion.choices[0].message.content)
+except Exception as e:
+    print(f"\\n发生错误: {e}")
+
+```
+### **第五部分:性能调优与故障排除**
+- **显存管理**:
+    - `-gpu-memory-utilization` (默认为 `0.90`) 控制用于存储 KV 缓存的显存比例。如果服务器日志中频繁出现 `preempted` 警告,说明 KV 缓存空间不足,可以适当降低此值(如 `0.85`)。如果显存充裕,可以适当提高(如 `0.95`)以支持更多并发请求。
+- **批处理大小**:
+    - `-max-num-batched-tokens` (默认值较高) 和 `-max-num-seqs` (默认 `256`) 共同决定了批处理的大小。调整这些值可以在吞吐量和延迟之间进行权衡。
+- **关于量化 MoE 模型的说明**:
+    - 请注意,您当前使用的 `Qwen3-32B-AWQ` **不是** MoE(混合专家)模型。如果您将来尝试部署**量化的 MoE 模型**(如 Mixtral 的量化版),`vllm-gfx906` 分支预计将无法工作。这是该社区分支的一个已知局限性。届时您可能需要转向 `llama.cpp` 等其他框架。
+
+### **第六部分:通过 Open WebUI 调用模型**
+Open WebUI 是一个功能强大且用户友好的 Web 界面,可以连接到各种 LLM 后端,包括我们刚刚部署的 vLLM 服务器。我们将使用 Docker 来运行它。
+10. **安装并运行 Open WebUI**
+
+打开一个新的终端窗口(保持 vLLM 服务器正在运行),执行以下命令来下载并启动 Open WebUI 容器:
+Bash
+```plain text
+docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
+
+```
+- `d`: 在后台运行容器。
+- `p 3000:8080`: 将主机的 3000 端口映射到容器的 8080 端口。您将通过 `http://localhost:3000` 访问 WebUI。
+- `v open-webui:/app/backend/data`: 创建一个 Docker volume 来持久化存储 Open WebUI 的数据(用户、设置等)。
+- `-name open-webui`: 为容器命名。
+- `-restart always`: 确保在 Docker 重启或服务器重启后,Open WebUI 容器能自动启动。
+11. **首次登录并配置模型**
+12. **访问 WebUI**: 在您的浏览器中打开 `http://<YOUR_SERVER_IP>:3000` (如果是本机,则为 `http://localhost:3000`)。
+13. **创建管理员账户**: 首次访问时,系统会提示您创建一个管理员账户。请按提示完成注册。
+14. **进入设置**: 登录后,点击左上角的头像,然后选择 “设置”。
+15. **连接模型**:
+    1. 在设置页面,点击左侧菜单的 “连接”。
+    2. 在 “模型名称” 字段下,输入 `Qwen/Qwen3-32B-AWQ`。
+    3. 点击 “保存”。系统会自动从 `ollama.io` 尝试拉取模型信息,但这步不重要,我们稍后会覆盖它。
+    4. 现在,您会在下方的 “已连接的模型” 列表中看到刚刚添加的模型。点击模型右侧的 **“编辑”** (铅笔图标)。
+16. **配置 API 地址**:
+    5. 在弹出的编辑窗口中,找到 **API 基础 URL** 字段。
+    6. 输入您的 vLLM 服务器的地址。因为 Open WebUI 和 vLLM 运行在同一台机器上,您可以使用 `http://host.docker.internal:8000/v1`。
+- **注意**: `host.docker.internal` 是一个特殊的 DNS 名称,它能让 Docker 容器访问到宿主机的网络。这比直接使用 `localhost` 或 `127.0.0.1` 更可靠。
+
+> 
+
+17. **API 密钥** 字段可以留空,或者填入任意字符(例如 `NA`)。
+18. **模型** 字段应保持为 `Qwen/Qwen3-32B-AWQ`。
+19. 点击 **“保存”**。
+20. **开始聊天**
+21. 返回 Open WebUI 的主界面。
+22. 点击屏幕顶部的 “选择一个模型” 下拉菜单。
+23. 您应该能看到刚刚配置好的 `Qwen/Qwen3-32B-AWQ`。选择它。
+24. 现在,您可以在下方的输入框中输入提示词,开始与您的本地大模型进行对话了!
+
+至此,您已经成功地为您的 vLLM 服务搭建了一个功能完善、易于使用的图形化界面。

+ 19 - 0
01-AI与模型/AI应用/Ai部署.md

@@ -0,0 +1,19 @@
+---
+notion-id: 1a1ca4d7-cb7b-8004-8562-e10d6ab2deb6
+---
+模型
+[[AI服务部署]]
+[[提示词模板]]
+[[提示词指南]]
+[[Dify+Ollama]]
+# Deepseek模型部署环境
+
+| 模型 | CPU | 内存 | 硬盘 | 显卡 | 适用场景 | 预估费用 |
+| --- | --- | --- | --- | --- | --- | --- |
+| DeepSeek-R1-1.5B | 4核 | 8G | 256GB+(模型文件约1.5-2GB) | 非必需(纯CPU推理,省钱小妙招) | 本地测试,简单任务 | 2000-5000 |
+| DeepSeek-R1-7B/8B | 8核 | 16G | 256GB+(模型文件约 4-5GB) | 推荐12GB+显存(RTX 3070/4060就可以) | 本地开发与测试,中等复杂度任务 | 5000-10000 |
+| DeepSeek-R1-14B | 12核 | 32G | 256GB+(模型文件约 9-10GB) | 推荐24GB+显存(RTX 4090或A5000,性能强劲) | 企业级复杂任务,长文本理解与生成 | 20000-30000 |
+| DeepSeek-R1-32B | 16核 | 64G | 256GB+(模型文件约 20-21GB) | 2-4张A100 80GB或更高 | 高精度专业领域任务,多模态任务预处理 | 40000-100000 |
+| DeepSeek-R1-70B | 32核 | 128G | 512GB+(模型文件约 43-45GB) | 多卡并行(如2x A100 80GB或4x RTX 4090,组建显卡军团) | 科研机构或大型企业,高复杂度生成任务 | 400000+ |
+| DeepSeek-R1-671B | 64核 | 512G | 1TB+(模型文件约 404GB) | 多节点分布式训练(如8x A100/H100,大机房) | 超大规模AI研究或通用AGI探索 | 2000000+ |
+

+ 839 - 0
01-AI与模型/AI应用/Claude_Obsidian.md

@@ -0,0 +1,839 @@
+---
+tags:
+  - "#Claude_Obsidian"
+created: 2026-05-11
+---
+# Claude Obsidian / Claude Canvas 插件安装排错记录
+
+> 适用环境:macOS + Claude Code v2.1.138  
+> 主题:安装 `AgriciDaniel/claude-obsidian` 与 `AgriciDaniel/claude-canvas` 过程中遇到的问题与解决方法
+
+---
+
+## 1. 安装目标
+
+本次主要安装两个 Claude Code 插件:
+
+| 插件 | 作用 |
+|---|---|
+| `claude-obsidian` | 用于 Claude Code + Obsidian,基于 Karpathy LLM Wiki 思路管理知识库 |
+| `claude-canvas` | 用于生成 / 编辑 Obsidian Canvas,可做流程图、思维导图、知识图谱、演示画布等 |
+
+最终安装结果:
+
+```text
+claude-canvas@local-claude-marketplace
+Version: 1.0.0
+Scope: user
+Status: enabled
+
+claude-obsidian@claude-obsidian-marketplace
+Version: 1.6.0
+Scope: user
+Status: enabled
+```
+
+---
+
+## 2. `claude-obsidian` 安装过程
+
+### 2.1 添加 marketplace 成功
+
+执行:
+
+```bash
+claude plugin marketplace add AgriciDaniel/claude-obsidian
+```
+
+输出:
+
+```text
+✔ Successfully added marketplace: claude-obsidian-marketplace
+```
+
+说明 marketplace 添加成功。
+
+---
+
+### 2.2 安装插件失败:GitHub SSH 22 端口被断开
+
+执行:
+
+```bash
+claude plugin install claude-obsidian@claude-obsidian-marketplace
+```
+
+报错:
+
+```text
+Connection closed by 198.18.1.34 port 22
+fatal: Could not read from remote repository.
+```
+
+### 原因
+
+`claude plugin install` 阶段尝试通过 GitHub SSH 克隆仓库,但本地网络 / 代理环境阻断了 GitHub SSH 的 22 端口。
+
+即使已经添加了 marketplace,真正安装插件时仍然需要再次 clone 仓库。
+
+---
+
+## 3. GitHub SSH 问题处理
+
+### 3.1 原先只有 Gitee SSH Key
+
+检查:
+
+```bash
+ls ~/.ssh
+```
+
+当时只有:
+
+```text
+config
+id_ed25519_gitee
+id_ed25519_gitee.pub
+```
+
+说明本机只有 Gitee 的 SSH key,没有 GitHub 专用 key。
+
+---
+
+### 3.2 创建 GitHub SSH Key
+
+执行:
+
+```bash
+ssh-keygen -t ed25519 -C "zhensolid@outlook.com" -f ~/.ssh/id_ed25519_github
+```
+
+然后复制公钥:
+
+```bash
+pbcopy < ~/.ssh/id_ed25519_github.pub
+```
+
+去 GitHub 添加 SSH Key:
+
+```text
+GitHub → Settings → SSH and GPG keys → New SSH key
+```
+
+Title 可写:
+
+```text
+MacBook Claude Code
+```
+
+---
+
+### 3.3 配置 GitHub SSH 走 443 端口
+
+因为 22 端口被断开,所以需要让 GitHub SSH 改走 443 端口。
+
+编辑配置:
+
+```bash
+nano ~/.ssh/config
+```
+
+加入或修改为:
+
+```sshconfig
+Host github.com
+  HostName ssh.github.com
+  User git
+  Port 443
+  IdentityFile ~/.ssh/id_ed25519_github
+  IdentitiesOnly yes
+
+Host gitee.com
+  HostName gitee.com
+  User git
+  IdentityFile ~/.ssh/id_ed25519_gitee
+  IdentitiesOnly yes
+```
+
+设置权限:
+
+```bash
+chmod 600 ~/.ssh/config
+chmod 600 ~/.ssh/id_ed25519_github
+```
+
+---
+
+### 3.4 测试 GitHub SSH
+
+执行:
+
+```bash
+ssh -T git@github.com
+```
+
+第一次会提示确认主机:
+
+```text
+The authenticity of host '[ssh.github.com]:443 ...' can't be established.
+Are you sure you want to continue connecting?
+```
+
+输入:
+
+```text
+yes
+```
+
+成功输出:
+
+```text
+Hi zhensolid! You've successfully authenticated, but GitHub does not provide shell access.
+```
+
+这说明 GitHub SSH 已成功通过 443 端口连接。
+
+---
+
+### 3.5 重新安装 `claude-obsidian`
+
+执行:
+
+```bash
+claude plugin install claude-obsidian@claude-obsidian-marketplace
+```
+
+成功:
+
+```text
+✔ Successfully installed plugin: claude-obsidian@claude-obsidian-marketplace
+```
+
+---
+
+## 4. `/wiki` 命令不可用的问题
+
+安装前,直接在 clone 下来的 `claude-obsidian` 文件夹里运行 Claude Code,输入:
+
+```text
+/wiki
+```
+
+报错:
+
+```text
+Unknown command: /wiki
+```
+
+### 原因
+
+直接 `git clone` 项目作为 Vault,并不一定会自动注册 slash command。
+
+clone 方式下,Claude Code 可以读取项目里的:
+
+```text
+skills/wiki/SKILL.md
+WIKI.md
+CLAUDE.md
+```
+
+但 `/wiki` 这类 slash command 只有在插件安装成功后才会注册。
+
+---
+
+### 插件安装后实际命令
+
+安装成功后,命令列表里看到的不是单独的:
+
+```text
+/wiki
+```
+
+而是:
+
+```text
+/claude-obsidian:wiki
+/wiki-ingest
+/wiki-query
+/wiki-lint
+/wiki-fold
+```
+
+对应关系:
+
+| 命令 | 作用 |
+|---|---|
+| `/claude-obsidian:wiki` | 初始化或检查 claude-obsidian wiki vault |
+| `/wiki-ingest` | 导入资料,将 source 整理进 wiki |
+| `/wiki-query` | 基于 wiki 查询问题,优先读 hot cache 和 index |
+| `/wiki-lint` | 检查 wiki 健康度,如死链、孤立页面、重复页面 |
+| `/wiki-fold` | 将 wiki log 汇总折叠成 meta 页面 |
+
+所以实际应使用:
+
+```text
+/claude-obsidian:wiki
+```
+
+而不是:
+
+```text
+/wiki
+```
+
+---
+
+## 5. `.raw/` 目录的问题
+
+### 5.1 `.raw/` 是什么?
+
+在 `claude-obsidian` 项目中:
+
+```text
+.raw/ = 原始资料目录
+wiki/ = Claude 整理后的知识库
+```
+
+`.raw/` 下放原始资料,Claude 读取它,但默认不修改它。
+
+整理后的内容会进入:
+
+```text
+wiki/
+```
+
+---
+
+### 5.2 `.raw/` 在 Obsidian 里可能看不到
+
+因为 `.raw` 是点开头目录,macOS / Obsidian 可能默认隐藏。
+
+这不是项目异常,而是隐藏目录机制导致。
+
+---
+
+### 5.3 是否建议改成 `raw/`?
+
+不太建议随便改。
+
+原因是项目可能使用:
+
+```text
+.raw/.manifest.json
+```
+
+记录已 ingest 文件的 hash,用来避免重复处理。
+
+所以更推荐保留官方默认结构:
+
+```text
+.raw/
+```
+
+如果需要在 Finder 里显示隐藏文件,可按:
+
+```text
+Command + Shift + .
+```
+
+---
+
+### 5.4 推荐目录结构
+
+```text
+claude-obsidian/
+├── .raw/
+│   ├── inbox/
+│   ├── notes/
+│   ├── articles/
+│   ├── transcripts/
+│   └── papers/
+├── wiki/
+│   ├── index.md
+│   ├── hot.md
+│   └── log.md
+```
+
+创建目录:
+
+```bash
+cd ~/Documents/claude-obsidian
+mkdir -p .raw/inbox .raw/notes .raw/articles .raw/transcripts .raw/papers
+```
+
+日常使用:
+
+```text
+/wiki-ingest .raw/inbox
+```
+
+或者自然语言:
+
+```text
+请处理 .raw/inbox 里的新增资料,已 ingest 过的跳过,整理进 wiki,并更新 index、log、hot。
+```
+
+---
+
+## 6. 是否每次都要手动输入文件路径?
+
+不一定。
+
+可以固定使用 `.raw/inbox/` 作为资料入口。
+
+日常流程:
+
+1. 把新资料丢进:
+
+```text
+.raw/inbox/
+```
+
+2. 在 Claude Code 里说:
+
+```text
+处理 .raw/inbox 里的新增资料
+```
+
+或者:
+
+```text
+/wiki-ingest .raw/inbox
+```
+
+3. 已经整理过的文件可以通过 log / manifest 跳过,避免重复处理。
+
+---
+
+## 7. 是否每次提问都会读取全部资料?
+
+不会。
+
+正常设计是:
+
+```text
+.raw/ = 原始资料,只在 ingest 时主要读取
+wiki/ = 整理后的知识库,平时 query 主要读取
+wiki/index.md = 索引
+wiki/hot.md = 高频 / 最近上下文缓存
+wiki/log.md = 操作记录
+```
+
+提问时应该是:
+
+```text
+用户提问
+    ↓
+读取 wiki/hot.md
+    ↓
+读取 wiki/index.md
+    ↓
+定位相关 wiki 页面
+    ↓
+只读取相关页面
+    ↓
+必要时才回查 .raw/
+```
+
+为了省 token,可以这样问:
+
+```text
+根据我的 wiki 回答,优先读取 hot 和 index,只打开相关 wiki 页面,不要重新读取全部 .raw/。
+```
+
+---
+
+## 8. `claude-canvas` 安装问题
+
+### 8.1 直接安装失败
+
+执行:
+
+```bash
+claude plugin install AgriciDaniel/claude-canvas
+```
+
+报错:
+
+```text
+Plugin "AgriciDaniel/claude-canvas" not found in any configured marketplace
+```
+
+原因:Claude Code 当前的插件系统不是直接用 GitHub 仓库名安装,而是从已配置 marketplace 中查找插件。
+
+---
+
+### 8.2 `marketplace add` 也失败
+
+执行:
+
+```bash
+claude plugin marketplace add AgriciDaniel/claude-canvas
+```
+
+报错:
+
+```text
+Marketplace file not found:
+.claude-plugin/marketplace.json
+```
+
+原因:`claude-canvas` 仓库是一个 plugin 仓库,但不是 marketplace 仓库。它有:
+
+```text
+.claude-plugin/plugin.json
+```
+
+但没有:
+
+```text
+.claude-plugin/marketplace.json
+```
+
+---
+
+### 8.3 `claude plugin add` 不存在
+
+执行:
+
+```bash
+claude plugin add ~/Documents/claude-canvas
+```
+
+报错:
+
+```text
+error: unknown command 'add'
+```
+
+原因:当前 Claude Code v2.1.138 不支持 `plugin add` 这个子命令。
+
+---
+
+## 9. `claude-canvas` 最终解决方案:自建本地 marketplace
+
+### 9.1 先 clone 插件
+
+```bash
+cd ~/Documents
+git clone https://github.com/AgriciDaniel/claude-canvas
+```
+
+---
+
+### 9.2 创建本地 marketplace
+
+```bash
+mkdir -p ~/Documents/local-claude-marketplace/.claude-plugin
+mkdir -p ~/Documents/local-claude-marketplace/plugins
+cp -R ~/Documents/claude-canvas ~/Documents/local-claude-marketplace/plugins/claude-canvas
+```
+
+创建 marketplace 文件:
+
+```bash
+cat > ~/Documents/local-claude-marketplace/.claude-plugin/marketplace.json <<'EOF'
+{
+  "name": "local-claude-marketplace",
+  "description": "Local marketplace for manually installed Claude Code plugins",
+  "owner": {
+    "name": "shen liang"
+  },
+  "plugins": [
+    {
+      "name": "claude-canvas",
+      "description": "AI-orchestrated visual production for Obsidian Canvas",
+      "source": "./plugins/claude-canvas"
+    }
+  ]
+}
+EOF
+```
+
+---
+
+### 9.3 添加本地 marketplace 并安装
+
+```bash
+claude plugin marketplace add ~/Documents/local-claude-marketplace
+claude plugin install claude-canvas@local-claude-marketplace
+claude plugin list
+```
+
+成功输出:
+
+```text
+✔ Successfully added marketplace: local-claude-marketplace
+✔ Successfully installed plugin: claude-canvas@local-claude-marketplace
+```
+
+插件列表:
+
+```text
+claude-canvas@local-claude-marketplace
+Version: 1.0.0
+Scope: user
+Status: enabled
+
+claude-obsidian@claude-obsidian-marketplace
+Version: 1.6.0
+Scope: user
+Status: enabled
+```
+
+---
+
+## 10. 插件安装范围
+
+两个插件都显示:
+
+```text
+Scope: user
+```
+
+说明它们是用户级安装,**不是只能在某一个文件夹使用**。
+
+也就是说:
+
+```text
+插件命令 = 全局可用
+实际处理对象 = 当前 Claude Code 所在目录
+```
+
+例如:
+
+```bash
+cd ~/Documents/claude-obsidian
+claude
+```
+
+这时插件处理的是:
+
+```text
+~/Documents/claude-obsidian
+```
+
+如果进入另一个 Obsidian Vault:
+
+```bash
+cd ~/Documents/MyVault
+claude
+```
+
+再运行插件命令,它会作用于当前这个 Vault。
+
+---
+
+## 11. 推荐最终使用方式
+
+### 11.1 进入 Obsidian Vault
+
+```bash
+cd ~/Documents/claude-obsidian
+claude
+```
+
+---
+
+### 11.2 初始化或检查 Wiki
+
+```text
+/claude-obsidian:wiki
+```
+
+---
+
+### 11.3 导入资料
+
+把资料放到:
+
+```text
+.raw/inbox/
+```
+
+然后运行:
+
+```text
+/wiki-ingest .raw/inbox
+```
+
+或者:
+
+```text
+请处理 .raw/inbox 里的新增资料,已处理过的跳过,整理进 wiki,并更新 index、log、hot。
+```
+
+---
+
+### 11.4 查询知识库
+
+```text
+/wiki-query 实时字幕方案怎么搭建?优先基于 wiki,不要重读全部 .raw。
+```
+
+---
+
+### 11.5 检查知识库
+
+```text
+/wiki-lint
+```
+
+---
+
+### 11.6 使用 Canvas
+
+进入 Claude Code 后输入:
+
+```text
+/
+```
+
+查看是否有 canvas 相关命令。
+
+可以尝试:
+
+```text
+请基于我的 wiki,生成一个“Mac 实时字幕方案”的 Obsidian Canvas 流程图。
+```
+
+---
+
+## 12. 本次关键结论
+
+1. `claude-obsidian` 推荐通过 marketplace 安装。
+2. 如果 GitHub SSH 22 端口失败,需要配置 `github.com` 走 `ssh.github.com:443`。
+3. `/wiki` 不一定存在,实际命令是 `/claude-obsidian:wiki`。
+4. `.raw/` 是官方默认 source 目录,不建议随意改名。
+5. 平时 query 不会每次读取全部 `.raw/`,正常会先查 `hot.md` 和 `index.md`。
+6. `claude-canvas` 不是 marketplace 仓库,当前环境需要自建本地 marketplace 安装。
+7. 两个插件都已安装为 user scope,全局可用。
+8. 插件全局可用,但操作对象取决于当前 `cd` 到哪个目录。
+
+---
+
+## 13. 常用命令速查
+
+```bash
+# 进入 vault
+cd ~/Documents/claude-obsidian
+claude
+```
+
+```text
+# 初始化 / 检查 wiki
+/claude-obsidian:wiki
+```
+
+```text
+# 导入资料
+/wiki-ingest .raw/inbox
+```
+
+```text
+# 查询知识库
+/wiki-query 你的问题
+```
+
+```text
+# 检查 wiki
+/wiki-lint
+```
+
+```bash
+# 查看插件
+claude plugin list
+```
+
+```bash
+# 测试 GitHub SSH
+ssh -T git@github.com
+```
+
+```bash
+# 查看 GitHub SSH 配置
+cat ~/.ssh/config
+```
+
+## 新增:清理项目与插件操作指南
+
+如果你想彻底清理 Claude-Obsidian / Canvas 项目,可以按照以下步骤操作:
+
+### 1. 卸载插件
+
+在 Claude Code 中执行:
+
+```bash
+claude plugin uninstall claude-obsidian@claude-obsidian-marketplace
+claude plugin uninstall claude-canvas@local-claude-marketplace
+```
+
+- 只会删除插件和注册命令
+- 不会删除你的 `.raw/` 或 wiki 文件
+
+### 2. 删除本地项目仓库
+
+```bash
+rm -rf ~/Documents/claude-obsidian
+```
+
+### 3. 删除本地 marketplace(如有)
+
+```bash
+rm -rf ~/Documents/local-claude-marketplace
+```
+
+### 4. 备份或删除 `.raw/` 文件夹
+
+如果想保留原始资料:
+
+```bash
+mv ~/Documents/claude-obsidian/.raw ~/Documents/备份_raw
+```
+
+### 5. 总结清理步骤
+
+1. 卸载插件
+2. 删除本地项目文件夹
+3. 删除本地 marketplace
+4. 备份或删除 `.raw/`(可选)
+
+> 完成后,你的 Vault 和插件环境将干净,同时原始资料可以选择保留或删除。
+
+### 1. 删除特定的 MCP 服务器
+
+在终端输入以下命令:
+
+Bash
+
+```
+claude mcp remove obsidian-vault
+```
+
+### 2. 如果添加时指定了作用域(Scope)
+
+因为你之前添加时使用了 `--scope user`,为了确保彻底删除,建议也带上作用域:
+
+Bash
+
+```
+claude mcp remove obsidian-vault --scope user
+```
+
+### 3. 验证是否删除成功
+
+删除后,你可以再次查看列表来确认该服务器已经消失:
+
+Bash
+
+```
+claude mcp list
+```
+
+---
+
+### 补充说明:
+
+- **只是想临时禁用?** 目前 Claude Code 的 MCP 管理主要是增删。如果你只是不想让它运行,目前最快的方法是将其删除,或者在 Obsidian 端关闭 Local REST API 插件,这样它就会显示为 `Disconnected`。
+    
+- **手动清理配置文件:** MCP 的配置通常保存在本地的 JSON 文件中。在 macOS 上,你也可以直接去这个路径编辑或删除对应的 JSON 条目: `~/Library/Application Support/claude/claude_desktop_config.json` (针对桌面端) 或 Claude Code 对应的用户配置文件。

+ 50 - 0
01-AI与模型/AI应用/Cursor无限制.md

@@ -0,0 +1,50 @@
+---
+notion-id: 1ccca4d7-cb7b-809c-a9c3-f56c5ce155ef
+---
+前提条件:
+一、管理员运行脚本*
+二、全局代理配置*
+三、注册域名
+四、配置Cloudflare
+
+操作步骤:
+一、注册域名配置Cloudflare的DNS
+```shell
+garrett.ns.cloudflare.com
+rayne.ns.cloudflare.com
+```
+二、配置Cloudflare**电子邮件路由,**
+![[image 1.png]]
+Catch-ALL编辑发送到电子邮件
+其余配置默认确认即可
+
+三、 https://github.com/chengazhen/cursor-auto-free 下载项目到本地
+windows环境需要下载exe文件到项目内
+![[image 2.png]]
+四、编辑env文件,注意使用IMAP服务,需要使用认证密码
+```shell
+DOMAIN='opentouch.top'  # 你的 Cloudflare 域名
+TEMP_MAIL=null   # 设置为 null 启用 IMAP 模式
+# 设置的PIN码
+TEMP_MAIL_EPIN=xxxxxx
+# 使用的后缀
+TEMP_MAIL_EXT=@mailto.plus
+
+# IMAP服务器配置
+IMAP_SERVER=imap.qq.com  # 例如:QQ邮箱,Gmail
+IMAP_PORT=993               # 993
+IMAP_USER=zhensolid@vip.qq.com    # 接收邮箱地址
+IMAP_PASS=uihcoztwwvvfbjde    # 邮箱授权码
+# IMAP_DIR=                  # [可选] 默认为收件箱(inbox)
+IMAP_PROTOCOL=IMAP     # 指定使用 IMAP 协议
+
+BROWSER_USER_AGENT=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.6723.92 Safari/537.36
+
+# 无头模式 默认开启
+# BROWSER_HEADLESS='True'
+
+# 使用其他浏览器(如Edge)
+# BROWSER_PATH='C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe'
+
+```
+五、在全局模式下,使用管理员权限运行EXE文件。

+ 108 - 0
01-AI与模型/AI应用/DeerFlow.md

@@ -0,0 +1,108 @@
+---
+title: DeerFlow【AI】
+date: 2025-06-11T09:50:52+08:00
+lastmod: 2025-06-24T15:24:03+08:00
+---
+
+# DeerFlow【AI】
+
+  注意事项:最好使用wsl运行项目 避免使用windows环境导致MCP服务因为python环境无法添加
+
+  docker-compose-deerflow
+
+  项目地址:https://github.com/bytedance/deer-flow
+
+```bash
+pip install uv
+
+uv sync或pip install . 
+
+.env文件配置搜索引擎
+Tavily: https://app.tavily.com/home登录网页复制api——key填写到env
+
+conf.yaml文件配置AI模型
+
+安装web服务器
+cd deer-flow/web
+pnpm install
+
+返回目录运行
+bootstrap.bat -d
+
+进入本地地址即可使用http://localhost:3000/
+```
+
+  Tavily—api:`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`
+
+  deepseek-api:`sk-e59b4dccf95a4fd19338627bdf866ba0`
+
+  URL:`https://api.deepseek.com/v1`
+
+  Model:`deepseek-chat`
+
+  ​`sudo apt install python3 python3-pip`
+
+  ​`pip install uv --break-system-packages`
+
+## 1. 问题:Error: Failed to fetch
+
+  修改.env配置把IP地址修改成`192.168.1.58:8000`
+
+  导致无法连接后端
+
+  文件路径:`deer-flow\web\src\core\sse\fetch-stream.ts`​  
+修改`url`
+
+```bash
+fetch("http://192.168.1.58:8000/api/chat/stream", ...)
+```
+
+  ​`bootstrap.sh`添加--host 0.0.0.0 --port 8000
+
+```bash
+#!/bin/bash
+
+# Start both of DeerFlow's backend and web UI server.
+# If the user presses Ctrl+C, kill them both.
+
+if [ "$1" = "--dev" -o "$1" = "-d" -o "$1" = "dev" -o "$1" = "development" ]; then
+  echo -e "Starting DeerFlow in [DEVELOPMENT] mode...\n"
+  uv run server.py --reload --host 0.0.0.0 --port 8000 & SERVER_PID=$$!
+  cd web && pnpm dev & WEB_PID=$$!
+  trap "kill $$SERVER_PID $$WEB_PID" SIGINT SIGTERM
+  wait
+else
+  echo -e "Starting DeerFlow in [PRODUCTION] mode...\n"
+  uv run server.py & SERVER_PID=$$!
+  cd web && pnpm start & WEB_PID=$$!
+  trap "kill $$SERVER_PID $$WEB_PID" SIGINT SIGTERM
+  wait
+fi
+
+```
+
+## 2. **问题:在 Next.js 开发环境下控制台出现跨域警告**
+
+```
+⚠ Cross origin request detected from 192.168.1.58 to /_next/* resource. In a future major version of Next.js, you will need to explicitly configure "allowedDevOrigins" in next.config to allow this.
+```
+
+- **原因**:
+
+  - Next.js 开发服务器检测到你的请求跨域访问了它的内部资源,默认策略提醒你需明确允许来源。
+- **解决方案**:
+
+  - 这个警告**不影响功能**,可以暂时忽略。
+  - 如果想消除警告,修改 Next.js 项目根目录 `next.config.js`:
+
+    ```js
+    /** @type {import('next').NextConfig} */
+    const nextConfig = {
+      experimental: {
+        allowedDevOrigins: ['http://192.168.1.58:3000'],
+      },
+    };
+
+    module.exports = nextConfig;
+    ```
+  - 重启 Next.js 开发服务器。

+ 18 - 0
01-AI与模型/AI应用/Dify+Ollama.md

@@ -0,0 +1,18 @@
+---
+notion-id: 1a7ca4d7-cb7b-809f-9f0b-da19d499ad31
+---
+[https://docs.dify.ai/zh-hans](https://docs.dify.ai/zh-hans)
+
+```mermaid
+graph TD
+  AI模型 -->|Ollama或API| Dify客户端
+  知识库 -->|文本分段与清洗| Dify客户端
+  Jinareader -->|网页分析| 知识库
+  搜索引擎插件 --> Dify客户端
+  自制工作流 --> Dify客户端
+  Dify客户端 --> 提示词
+	提示词 --> |创建角色|用户聊天栏
+  
+```
+
+

+ 28 - 0
01-AI与模型/AI应用/Dify.md

@@ -0,0 +1,28 @@
+---
+notion-id: 1e5ca4d7-cb7b-8083-b010-c17b202808d3
+---
+# 零、说明文档
+[https://docs.dify.ai/zh-hans/introduction](https://docs.dify.ai/zh-hans/introduction)
+# 一、安装Dify
+```javascript
+git clone https://ghproxy.net/https://github.com/langgenius/dify.git
+```
+# **二、启动 Dify**
+1. 进入 Dify 源代码的 Docker 目录
+`cd dify/docker`
+2. 复制环境配置文件
+`cp .env.example .env`
+3. 启动 Docker 容器
+根据你系统上的 Docker Compose 版本,选择合适的命令来启动容器。你可以通过 `**$ docker compose version**` 命令检查版本,详细说明请参考 [**Docker 官方文档**](https://docs.docker.com/compose/#compose-v2-and-the-new-docker-compose-command):
+    - 如果版本是 Docker Compose V2,使用以下命令:
+`docker compose up -d`
+    - 如果版本是 Docker Compose V1,使用以下命令:
+`docker-compose up -d`
+
+# **三、更新 Dify**
+进入 dify 源代码的 docker 目录,按顺序执行以下命令:
+`cd dify/docker`
+`docker compose down`
+`git pull origin main`
+`docker compose pull`
+`docker compose up -d`

+ 39 - 0
01-AI与模型/AI应用/Dify技巧.md

@@ -0,0 +1,39 @@
+---
+notion-id: 1feca4d7-cb7b-808d-bb4b-d65005ff06dc
+---
+```plain text
+你是一个乐于助人的助手
+使用以下内容作为你所学习的知识,放在<context>
+</context>XML标签内
+```
+<context>
+{{#context#}}
+</context>
+回答用户时:
+如果你不知道,就直说你不知道。如果你在不确定的时候不知道,就寻求澄清。
+避免提及你是从上下文中获取的信息。
+并根据用户问题的语言来回答。
+```
+
+```
+正则表达式排除标签内容:
+```plain text
+(?=<\/think\n)[\s\S]*
+```
+系统提示词
+```plain text
+##任务
+将用户给出的问题的内容根据关键词提取,用于检索知识库内容
+##输出
+输出多个关键字或关键词,关键字或关键词之间用空格分隔,无需生成多余的文本,禁止直接回复用户的问题
+```
+
+```plain text
+##角色
+你是一个专业的空间情绪整理大师,擅长根据知识库的内容回复客户问题
+##背景
+严格根据知识库的内容进行回复
+##任务
+严格根据知识库的内容回复用户的问题
+{{#context#}}
+```

+ 116 - 0
01-AI与模型/AI应用/Firecrawl.md

@@ -0,0 +1,116 @@
+---
+notion-id: 251ca4d7-cb7b-80ef-871f-f9545e102bb2
+---
+[https://github.com/mendableai/firecrawl](https://github.com/mendableai/firecrawl)
+克隆项目到本地
+[[查看操作实例]]
+```shell
+git clone https://github.com/mendableai/firecrawl.git
+
+cd firecrawl
+
+cp ./apps/api/.env.example .env
+```
+`USE_DB_AUTHENTICATION=false` 开启状态必须使用supabase
+`BULL_AUTH_KEY=19841122Cy!`exp:http://40.233.18.33:3002/admin/**19841122Cy**!/queues
+`TEST_API_KEY=123456`         
+```shell
+# ===== Required ENVS ======
+NUM_WORKERS_PER_QUEUE=8
+PORT=3002
+HOST=0.0.0.0
+REDIS_URL=redis://redis:6379 #for self-hosting using docker, use redis://redis:6379. For running locally, use redis://localhost:6379
+REDIS_RATE_LIMIT_URL=redis://redis:6379 #for self-hosting using docker, use redis://redis:6379. For running locally, use redis://localhost:6379
+PLAYWRIGHT_MICROSERVICE_URL=http://playwright-service:3000/scrape
+
+## To turn on DB authentication, you need to set up supabase.
+USE_DB_AUTHENTICATION=false
+
+# ===== Optional ENVS ======
+
+# SearchApi key. Head to https://searchapi.com/ to get your API key
+SEARCHAPI_API_KEY=
+# SearchApi engine, defaults to google. Available options: google, bing, baidu, google_news, etc. Head to https://searchapi.com/ to explore more engines
+SEARCHAPI_ENGINE=
+
+# Supabase Setup (used to support DB authentication, advanced logging, etc.)
+SUPABASE_ANON_TOKEN=
+SUPABASE_URL=
+SUPABASE_SERVICE_TOKEN=
+
+# Other Optionals
+# use if you've set up authentication and want to test with a real API key
+TEST_API_KEY=123456
+# set if you'd like to test the scraping rate limit
+RATE_LIMIT_TEST_API_KEY_SCRAPE=
+# set if you'd like to test the crawling rate limit
+RATE_LIMIT_TEST_API_KEY_CRAWL=
+# set if you'd like to use scraping Be to handle JS blocking
+SCRAPING_BEE_API_KEY=
+# add for LLM dependednt features (image alt generation, etc.)
+OPENAI_API_KEY=
+BULL_AUTH_KEY=19841122Cy!
+# set if you have a llamaparse key you'd like to use to parse pdfs
+LLAMAPARSE_API_KEY=
+# set if you'd like to send slack server health status messages
+SLACK_WEBHOOK_URL=
+# set if you'd like to send posthog events like job logs
+POSTHOG_API_KEY=
+# set if you'd like to send posthog events like job logs
+POSTHOG_HOST=
+
+STRIPE_PRICE_ID_STANDARD=
+STRIPE_PRICE_ID_SCALE=
+STRIPE_PRICE_ID_STARTER=
+STRIPE_PRICE_ID_HOBBY=
+STRIPE_PRICE_ID_HOBBY_YEARLY=
+STRIPE_PRICE_ID_STANDARD_NEW=
+STRIPE_PRICE_ID_STANDARD_NEW_YEARLY=
+STRIPE_PRICE_ID_GROWTH=
+STRIPE_PRICE_ID_GROWTH_YEARLY=
+
+# set if you'd like to use the fire engine closed beta
+FIRE_ENGINE_BETA_URL=
+
+# Proxy Settings for Playwright (Alternative you can can use a proxy service like oxylabs, which rotates IPs for you on every request)
+PROXY_SERVER=
+PROXY_USERNAME=
+PROXY_PASSWORD=
+# set if you'd like to block media requests to save proxy bandwidth
+BLOCK_MEDIA=
+
+# Set this to the URL of your webhook when using the self-hosted version of FireCrawl
+SELF_HOSTED_WEBHOOK_URL=
+
+# Resend API Key for transactional emails
+RESEND_API_KEY=
+
+# LOGGING_LEVEL determines the verbosity of logs that the system will output.
+# Available levels are:
+# NONE - No logs will be output.
+# ERROR - For logging error messages that indicate a failure in a specific operation.
+# WARN - For logging potentially harmful situations that are not necessarily errors.
+# INFO - For logging informational messages that highlight the progress of the application.
+# DEBUG - For logging detailed information on the flow through the system, primarily used for debugging.
+# TRACE - For logging more detailed information than the DEBUG level.
+# Set LOGGING_LEVEL to one of the above options to control logging output.
+LOGGING_LEVEL=INFO
+
+
+
+# x402 Payment Configuration
+X402_PAY_TO_ADDRESS=
+                    # ^ Address taken from -> https://portfolio.metamask.io/
+X402_NETWORK=base-sepolia
+X402_FACILITATOR_URL=https://x402.org/facilitator
+X402_ENABLED=true
+X402_VERIFICATION_TIMEOUT=30000
+
+CDP_API_KEY_ID=""
+CDP_API_KEY_SECRET=""
+                  # ^ KEYS taken from -> https://portal.cdp.coinbase.com/projects/api-keys
+
+## ENDPOINT PRICING TEST $0.01
+X402_ENDPOINT_PRICE_USD=0.01
+
+```

+ 21 - 0
01-AI与模型/AI应用/Grok-bate.md

@@ -0,0 +1,21 @@
+---
+title: Grok-bate
+date: 2024-12-18T21:45:32+08:00
+lastmod: 2024-12-18T21:48:44+08:00
+---
+
+# Grok-bate
+
+  申请账户https://x.ai/api
+
+  下载**chatbox**​**​`https://chatboxai.app/zh`​**
+
+  名称:`自定义`
+
+  API-域名:`https://api.x.ai`
+
+  API-路径:`/v1/chat/completions`
+
+  模型:`grok-beta`
+
+  密钥:`xai-BSldsktt1dD0pSJsSmPqgqLi2XBGPcBGBaTHg5dolYjMpjH8UkDc4s6nURntGYGdM1ieQD9Z3R5sArRb`

+ 257 - 0
01-AI与模型/AI应用/Hermes Agent.md

@@ -0,0 +1,257 @@
+---
+notion-id: 343ca4d7-cb7b-808d-80ff-d856a5d7bc9d
+---
+
+## **第 1 步:配置防爬浏览器(Camofox)**
+### **为什么需要**
+普通的后端浏览器(如 Chromium headless)访问大多数网站会立即被反爬机制拦截。Camofox 提供了一个「像真人一样」的浏览器环境,使 Hermes 能够:
+- 自动读取网页文章
+- 自动填写表单
+- 操作需要登录的后台系统
+- 执行复杂的网页自动化任务
+
+### **配置步骤**
+直接告诉 Hermes:
+```plain text
+帮我配置 CAMOFOX 及 CAMOFOX_URL
+```
+Hermes 会自动完成配置文件的写入,并在需要高危操作时主动请求你的授权。
+> **亮点一**:Hermes 会智能识别高危指令并请求授权,比 OpenClaw 更清晰地告知你它要做什么,而不是带着一堆无意义数字的授权请求。
+
+## **第 2 步:配置灵魂定义(SOUL.md)**
+### **什么是 SOUL.md**
+SOUL.md 是 Hermes 的人格配置文件,定义了 Agent 的思考模式、行为约束和输出风格。默认文件是空注释,需要你自己填写。
+### **最佳实践:先聊再总结**
+推荐流程:先和 Hermes 正常使用 1-2 天,展现你的工作风格和偏好,然后问:
+```plain text
+灵魂定义(SOUL.md)你有没有推荐的配置,基于我们的对话风格来建议?
+```
+Hermes 会读取历史会话,生成贴合你习惯的配置。然后让它写入:
+```plain text
+帮我编辑写入 ~/.hermes/SOUL.md
+```
+> **亮点二**:Hermes 能读取 session 历史并据此生成个性化建议,体现了其会话感知机制的价值。
+
+## **第 3 步:配置 Auxiliary 副驾模型路由**
+### **设计理念**
+Auxiliary 是 Hermes 的副驾 LLM 路由中心。核心思路:让主模型专注复杂推理,让便宜/专用的副模型承担「脏活累活」,从而节省成本、提升效率。
+### **支持配置的 8 个辅助任务**
+
+| **辅助模型** | **用途说明** |
+| --- | --- |
+| vision | 截图 / 验证码 / 图片分析 |
+| web_extract | 网页内容抓取与提炼 |
+| compression | 上下文压缩摘要(节省 Token) |
+| session_search | 历史会话搜索与摘要 |
+| approval | 高危命令审批决策 |
+| skills_hub | 技能市场搜索与安装 |
+| mcp | MCP 服务调用辅助 |
+| flush_memories | 记忆系统清理与重组 |
+
+### **配置示例**
+直接口头告知 Hermes:
+```plain text
+压缩会话的辅助模型帮我配置成 qwen3.5-plus
+```
+### **验证配置**
+```plain text
+# 手动触发压缩
+hermes compress
+
+# 查看日志确认模型路由
+tail -f ~/.hermes/logs/agent.log
+```
+日志中你应该看到类似:
+```plain text
+Auxiliary compression: using auto (qwen3.5-plus) at https://dashscope.aliyuncs.com/...
+```
+> **亮点三**:压缩阈值默认 50%,不同上下文长度的模型触发比例不同:1M 模型可分配最多 50K token 给摘要,200K 模型只有 10K。这比统一阈值更合理。
+
+## **第 4 步:配置三层记忆系统**
+Hermes 记忆系统分为三层,由浅到深,可按需启用。**建议先用第一层 + 第三层,满足需求后再考虑引入第二层。**
+### **第一层:内置记忆(默认已开)**
+编辑 `**~/.hermes/config.yaml**` 进行微调:
+```plain text
+memory:
+  memory_enabled: true        # MEMORY.md — 项目事实、踩坑记录
+  user_profile_enabled: true  # USER.md — 用户画像与偏好
+  memory_char_limit: 4000     # 默认 2200,重度使用建议调到 4000
+  user_char_limit: 1375       # 用户画像字符上限
+  nudge_interval: 5           # 每 5 轮提醒存记忆(默认 10,调小更积极)
+  flush_min_turns: 6          # 至少 6 轮才触发退出时的记忆刷新
+```
+### **第二层:外部 Memory Provider(按需)**
+支持 mem0、Zep 等 8 个外挂记忆插件。配置方式:
+```plain text
+hermes memory setup
+```
+> **注意**:开启后每轮对话会增加至少 2 次 API 调用(写入 + 搜索),根据使用频率权衡是否开启。
+> **亮点四**:密钥与配置分离,采用 YAML 格式,修改直观友好。
+
+### **第三层:Session Search(默认已开)**
+所有历史对话自动持久化到本地 SQLite,支持关键词检索 + LLM 摘要,是记忆系统的兜底机制:
+- **存储位置**:`**~/.hermes/state.db**`
+- **检索方式**:FTS5 关键词[全文搜索](https://cloud.tencent.com/product/es?from_column=20421&from=20421) + LLM 二次摘要
+- **兜底保障**:LLM 调用失败时返回原始文本前 500 字符,不会因故障而完全失效
+
+不需要额外配置,Session Search 默认开启。Agent 会根据你的问题自动判断是否需要检索历史。
+
+---
+## **第 5 步:配置 Web Search**
+### **支持的搜索引擎**
+Hermes 原生支持 4 个搜索提供商:**Exa、Tavily、Parallel、Firecrawl**。
+### **配置方式**
+直接告诉 Hermes:
+```plain text
+帮我配置 exa 搜索
+```
+Hermes 会引导你输入 API Key 并完成配置。配置成功后可以直接测试:
+```plain text
+搜索一下今天 AI 领域有什么新进展
+```
+> **亮点五**:Hermes 默认会在 IM 界面清晰打印每个 tool 调用的过程,执行过程完全透明可见。
+
+---
+## **第 6 步:配置自动化审计(Hooks)**
+### **两种扩展方式**
+Hermes 提供两套互补的扩展系统:
+- **Gateway Hooks**:事件驱动钩子,处理生命周期通知
+- **Plugin System**:插件生命周期钩子,处理功能扩展
+
+### **8 个生命周期 Hook**
+```plain text
+on_session_start      → 会话创建时
+pre_llm_call          → LLM 调用前(可注入上下文)
+pre_api_request       → 每次 API 调用前
+post_api_request      → 每次 API 调用后
+pre_tool_call         → 工具执行前
+post_tool_call        → 工具执行后
+post_llm_call         → 本轮对话结束
+on_session_end        → 会话结束
+```
+### **实战:创建终端命令审计 Hook**
+告诉 Hermes:
+```plain text
+做一个终端命令审计插件(Terminal Audit Hook):
+在每次 terminal 工具执行完毕后,自动把命令内容、
+执行结果、时间戳、会话 ID 追加到日志文件。
+```
+授权后,Hermes 会自动生成并激活这个 Hook。
+### **验证**
+```plain text
+# 执行任意命令后,检查审计日志
+tail -f ~/.hermes/audit_logs/terminal_audit.log
+```
+## **第 7 步:配置 Docker 沙箱**
+### **为什么需要沙箱**
+默认情况下 Hermes 在本地执行命令,存在一定风险。Docker 沙箱将命令执行隔离在容器中,即使 Agent 执行了危险命令,也只会影响容器内的环境。
+### **配置步骤**
+```plain text
+# 创建一个使用 Docker 沙箱的 worker profile
+hermes -p worker config set terminal.backend docker
+hermes -p worker config set terminal.docker_image python:3.11-slim
+
+# 配置 worker 使用便宜模型(沙箱任务不需要顶级模型)
+hermes -p worker config set model.provider alibaba
+hermes -p worker config set model.model qwen3.5-plus
+
+# 如果使用 Telegram,绑定独立的 Bot Token
+hermes -p worker config set gateway.telegram.bot_token "YOUR_BOT_TOKEN_B"
+hermes -p worker config set gateway.telegram.enabled true
+```
+也可以直接告诉主 Agent:
+```plain text
+参考如下命令,帮我额外配置一个 profile,sandbox 使用 docker,模型遵循主 profile 即可
+```
+### **验证沙箱隔离**
+```plain text
+# 在 worker bot 中执行(不会真正损坏宿主机)
+rm -rf /
+
+# 在宿主机验证 Docker 已启动
+docker ps
+```
+> **亮点六**:多 profile 配置非常友好,一句话就让 Hermes 完成配置。主 profile 保持安全,worker profile 承担高风险任务。
+
+---
+## **第 8 步:使用多 Agent**
+### **两种多 Agent 模式**
+- **同一 Session 内触发 Sub-Agent**:适合并行子任务
+- **完全隔离的多 Profile**:适合不同安全级别的任务分工(见第 7 步)
+
+### **触发 Sub-Agent**
+只需一句话:
+```plain text
+请 spawn 三个 subagent 来相互讨论 Hermes 的优劣势
+```
+三个 Sub-Agent 会在同一 Session 中并行工作,各自发言,最终给出汇总。这种方式适合需要多角度分析或并行处理的复杂任务。
+
+---
+## **第 9 步:建立备份体系**
+### **三层备份策略**
+- **第一层**:本地 Git(快速版本控制)
+- **第二层**:其他磁盘定时备份(防止硬盘故障)
+- **第三层**:远程备份(GitHub 私有仓库 / 对象存储)
+
+### **完整备份脚本**
+将以下脚本保存为 `**~/hermes_backup.sh**`:
+```plain text
+#!/bin/bash
+BACKUP_NAME="hermes_backup_$(date +%Y%m%d_%H%M%S)"
+BACKUP_DIR="/tmp/$BACKUP_NAME"
+DEST_DIR=~/hermes_backups
+
+mkdir -p $BACKUP_DIR/hermes $DEST_DIR
+
+echo "正在备份核心配置..."
+cp ~/.hermes/config.yaml $BACKUP_DIR/hermes/
+cp ~/.hermes/.env $BACKUP_DIR/hermes/
+cp ~/.hermes/MEMORY.md $BACKUP_DIR/hermes/ 2>/dev/null
+
+echo "正在备份数据库与会话..."
+cp ~/.hermes/state.db $BACKUP_DIR/hermes/
+cp -r ~/.hermes/sessions $BACKUP_DIR/hermes/ 2>/dev/null
+
+echo "正在备份扩展与技能..."
+cp -r ~/.hermes/plugins $BACKUP_DIR/hermes/ 2>/dev/null
+cp -r ~/.hermes/skills $BACKUP_DIR/hermes/ 2>/dev/null
+cp -r ~/.hermes/audit_logs $BACKUP_DIR/hermes/ 2>/dev/null
+
+echo "正在备份所有 Profile..."
+cp -r ~/.hermes/profiles $BACKUP_DIR/hermes/ 2>/dev/null
+
+echo "压缩中..."
+tar -czf $DEST_DIR/$BACKUP_NAME.tar.gz -C /tmp $BACKUP_NAME
+rm -rf $BACKUP_DIR
+
+echo "✅ 备份完成:$DEST_DIR/$BACKUP_NAME.tar.gz"
+echo "大小:$(du -h $DEST_DIR/$BACKUP_NAME.tar.gz | cut -f1)"
+```
+```plain text
+# 添加执行权限并运行
+chmod +x ~/hermes_backup.sh
+~/hermes_backup.sh
+
+# 可选:添加到 crontab,每天凌晨 2 点自动备份
+# 0 2 * * * ~/hermes_backup.sh
+```
+> `**.env**` 文件包含 API Key,建议加入 `**.gitignore**`,不要推送到 GitHub。
+
+---
+## **第 10 步:安装与沉淀技能(Skills)**
+### **自动技能沉淀**
+Hermes 最令人印象深刻的功能之一:它会自动将有价值的操作流程总结并固化为可复用的技能。
+触发条件:每累计 15 次工具循环(`**config.yaml**` 中的 `**creation_nudge_interval**` 参数),Hermes 会在后台启动一个 Skill Review:
+```plain text
+# Skill Review 的三种结果:
+# 1. 发现可更新的现有技能 → 自动更新补充新经验
+# 2. 发现值得新建的技能   → 创建新技能文件
+# 3. 没有值得保存的内容   → 输出 Nothing to save. 结束
+```
+整个过程在后台线程运行,不阻塞当前对话。
+### **手动安装技能**
+```plain text
+帮我安装 git 操作相关的技能
+帮我搜索并安装 Docker 管理技能
+```
+> **亮点七**:Hermes 自动将有价值的操作沉淀为永久技能,避免重复踩坑。这是它相比其他 Agent 框架最有差异化的亮点之一。

+ 20 - 0
01-AI与模型/AI应用/MCP.md

@@ -0,0 +1,20 @@
+---
+notion-id: 244ca4d7-cb7b-8089-b0ab-c6f3b771d5fd
+---
+在wsl运行mcp配置,注意command 是wsl,如果wsl使用的是windows环境的那么会报错
+必须先检查下运行环境是否在wsl,检查指令`which node`
+```shell
+{
+  "mcpServers": {
+    "filesystem": {
+      "command": "wsl",
+      "args": [
+        "npx",
+        "-y",
+        "@modelcontextprotocol/server-filesystem",
+        "/mnt/d/Github/snake_game"
+      ]
+    }
+  }
+}
+```

+ 292 - 0
01-AI与模型/AI应用/MinerU.md

@@ -0,0 +1,292 @@
+---
+title: "opendatalab/MinerU: Transforms complex documents like PDFs and Office docs into LLM-ready markdown/JSON for your Agentic workflows."
+source: https://github.com/opendatalab/MinerU/blob/master/README_zh-CN.md
+author:
+published:
+created: 2026-05-09
+description: Transforms complex documents like PDFs and Office docs into LLM-ready markdown/JSON for your Agentic workflows. - opendatalab/MinerU
+tags:
+  - clippings
+---
+[![](https://camo.githubusercontent.com/c27b0b0916f506bc307ab0375ea23e91e461e42e622db0cd2bb3b7b0d4e20dbd/68747470733a2f2f67636f72652e6a7364656c6976722e6e65742f67682f6f70656e646174616c61622f4d696e657255406d61737465722f646f63732f696d616765732f4d696e6572552d6c6f676f2e706e67)](https://camo.githubusercontent.com/c27b0b0916f506bc307ab0375ea23e91e461e42e622db0cd2bb3b7b0d4e20dbd/68747470733a2f2f67636f72652e6a7364656c6976722e6e65742f67682f6f70656e646174616c61622f4d696e657255406d61737465722f646f63732f696d616765732f4d696e6572552d6c6f676f2e706e67)
+
+[![opendatalab%2FMinerU | Trendshift](https://camo.githubusercontent.com/8e05ac968e83dbb8fbd1ff02a16b03186a2d01c3a19db633923afceebfdfe4aa/68747470733a2f2f7472656e6473686966742e696f2f6170692f62616467652f7265706f7369746f726965732f3131313734)](https://trendshift.io/repositories/11174)
+
+[English](https://github.com/opendatalab/MinerU/blob/master/README.md) | [简体中文](https://github.com/opendatalab/MinerU/blob/master/README_zh-CN.md)
+
+🚀 [MinerU 官网入口→✅ 免装在线版 ✅ 全功能客户端 ✅ 开发者API在线调用,省去部署麻烦,多种产品形态一键get,速冲!](https://mineru.net/?source=github)
+
+👋 join us on [Discord](https://discord.gg/Tdedn9GTXq) and [WeChat](https://mineru.net/community-portal/?aliasId=3c430f94)
+
+MinerU — 专为 LLM · RAG · Agent 场景构建的高精度文档解析引擎 将 PDF · DOCX · PPTX · XLSX · 图片 · 网页转为结构化 Markdown / JSON · VLM+OCR 双引擎 · 109 种语言  
+MCP Server · LangChain / Dify / FastGPT 原生集成 · 10+ 国产算力适配  
+
+**🔍 核心解析能力**
+
+- 原生支持 `DOCX` 、 `PPTX` 、 `XLSX` 解析
+- 公式 → LaTeX · 表格 → HTML,精准还原复杂版面
+- 支持扫描件、手写体、多栏布局、跨页表格合并
+- 输出符合人类阅读顺序,自动去除页眉页脚
+- VLM + OCR 双引擎,支持 109 种语言识别
+
+**🔌 接入方式**
+
+| 场景 | 方案 |
+| --- | --- |
+| AI 编程工具 | MCP Server — Cursor · Claude Desktop · Windsurf |
+| RAG 框架 | LangChain · LlamaIndex · RAGFlow · RAG-Anything · Flowise · Dify · FastGPT |
+| 开发集成 | Python / Go / TypeScript SDK · CLI · REST API · Docker |
+| 零代码 | mineru.net 在线版 · Gradio WebUI · 桌面客户端 |
+
+**🖥️ 部署生态(支持私有化 · 完全离线)**
+
+| 推理后端 | 适用场景 |
+| --- | --- |
+| pipeline | 快速稳定,无幻觉,CPU / GPU 均可运行 |
+| vlm-engine | 高精度,支持 vLLM / LMdeploy / mlx 生态 |
+| hybrid-engine | 高精度,原生文本提取,低幻觉 |
+
+国产算力:昇腾 · 寒武纪 · 燧原 · 沐曦 · 摩尔线程 · 昆仑芯 · 天数智芯 · 瀚博 · 太初元碁 · 海光 · 平头哥
+
+## 更新记录
+
+- 2026/04/18 3.1.0 发布
+	本次版本更新聚焦于 **许可协议开放性、解析精度提升与全格式原生支持** 。主要更新内容包括:
+	- 许可协议升级
+		- MinerU 已正式从 `AGPLv3` 切换至基于 `Apache 2.0` 的 [MinerU 开源许可证](https://github.com/opendatalab/MinerU/blob/master/LICENSE.md) 。
+				- 新的许可方式在兼顾开源协作与商业落地的同时,进一步降低了社区使用和商业化接入门槛,让 MinerU 更容易融入真实业务流程。
+		- VLM 主模型升级
+		- VLM 主模型正式切换为 `MinerU2.5-Pro-2604-1.2B` ,整体解析精度提升至业内领先水平。
+				- 新模型现已支持子图切分合并、图像与图表解析、截断段落合并、跨页面表格合并以及表格内图像识别,复杂版面场景下的解析能力进一步增强。
+		- 全格式原生解析支持
+		- 新增 `PPTX` 与 `XLSX` 原生解析能力。
+				- 至此,MinerU 已完整支持图片、 `PDF` 、 `DOCX` 、 `PPTX` 、 `XLSX` 全格式解析,为多类型文档统一处理提供了更完整的能力闭环。
+	通过 3.1.0 版本,MinerU 在开放性、解析精度和落地能力上进一步提升。新的许可协议降低了社区使用和商业接入门槛, `MinerU2.5-Pro-2604-1.2B` 提升了复杂内容的解析质量,而 `PPTX` 与 `XLSX` 原生解析的补齐,也让 MinerU 完成了主流文档格式的端到端覆盖。
+- 2026/03/29 3.0.0 发布
+	本次版本更新围绕 **解析能力、系统架构与工程可用性** 进行了系统升级。主要更新内容包括:
+	- `DOCX` 原生解析
+		- 正式支持 `DOCX` 原生解析,在无幻觉前提下实现高精度解析。
+				- 相较于“先将 `DOCX` 转为 `PDF` 再解析”的传统流程,端到端速度提升数十倍以上,更适合对精度与吞吐均有要求的场景。
+		- `pipeline` 后端升级
+		- `pipeline` 后端在 OmniDocBench (v1.5) 上取得 `86.2` 分,精度超过上一代主流 VLM `MinerU2.0-2505-0.9B` 。
+				- 新增表格内图片/公式解析、印章文字识别、竖排文本支持、行间公式序号识别等能力,持续提升复杂文档场景下的解析效果。
+				- 在保持高精度的同时,资源占用极低,并继续支持纯 CPU 环境推理。
+		- `API / CLI / Router` 编排升级
+		- `mineru` 现作为基于 `mineru-api` 的编排客户端运行;在未传入 `--api-url` 时,会自动拉起本地临时服务。
+				- `mineru-api` 新增异步任务接口 `POST /tasks` ,支持任务提交、状态查询与结果获取;同时保留同步解析接口 `POST /file_parse` ,以兼容老版本插件。
+				- 新增 `mineru-router` ,适用于多服务、多 GPU 的统一入口部署与任务路由;其接口与 `mineru-api` 完全兼容,并支持任务自动负载均衡。
+		- 部署与使用体验优化
+		- 解决了 `torch >= 2.8` 的兼容问题,基础镜像升级为 `vllm0.11.2 + torch2.9.0` ,统一了不同 Compute Capability 的安装路径。
+				- 通过滑动窗口优化解析链路,显著降低长文档场景下的内存峰值占用,上万页文档解析不再需要手动拆分。
+				- `pipeline` 的 batch 推理支持流式落盘,已完成的解析结果可及时写出,进一步提升长任务处理体验。
+				- 完成线程安全优化,全面支持多线程并发推理;配合 `mineru-router` ,可一键实现多卡部署,轻松构建高并发、高吞吐解析系统。
+				- 完全移除了两个 AGPLv3 模型( `doclayoutyolo` 和 `mfd_yolov8` )以及一个 CC-BY-NC-SA 4.0 模型( `layoutreader` )的使用。
+	本次更新不仅是若干功能点的补强,更是 MinerU 在系统能力上的一次关键跃迁。我们重点解决了长文档解析过程中的内存峰值占用问题,通过滑动窗口、流式落盘等链路优化,让超长文档解析从“需要手动拆分、谨慎处理”走向“稳定可跑、规模可扩展”。同时,我们完成了线程安全优化,全面支持多线程并发推理,进一步提升了单机资源利用率与高并发场景下的运行稳定性。在此基础上,基于 mineru-router 与全新的 API / CLI 编排体系,MinerU 已具备一键多卡部署、多服务统一接入、任务自动负载均衡的能力,显著降低了大规模部署难度。至此,MinerU 正在从单一的数据生产工具,进一步演进为面向高并发、高吞吐场景的大规模文档解析基座,为企业级文档数据处理提供更稳定、更高效、更易扩展的基础设施能力。
+
+> 📝 查看完整的 [更新日志](https://opendatalab.github.io/MinerU/zh/reference/changelog/) 了解更多历史版本信息
+
+## MinerU
+
+## 项目简介
+
+MinerU 是一款文档解析工具,可将 `PDF` 、图片以及 `DOCX` 、 `PPTX` 、 `XLSX` 转化为机器可读格式(如 Markdown、JSON),便于后续检索、抽取与二次处理。 MinerU诞生于 [书生-浦语](https://github.com/InternLM/InternLM) 的预训练过程中,我们将会集中精力解决科技文献中的符号转化问题,希望在大模型时代为科技发展做出贡献。 相比国内外知名商用产品MinerU还很年轻,如果遇到问题或者结果不及预期请到 [issue](https://github.com/opendatalab/MinerU/issues) 提交问题,同时 **附上相关文档或样例文件** 。
+
+pdf\_zh\_cn.mp4<video src="https://private-user-images.githubusercontent.com/11393164/351177226-4bea02c9-6d54-4cd6-97ed-dff14340982c.mp4?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzgzMjQ0NzIsIm5iZiI6MTc3ODMyNDE3MiwicGF0aCI6Ii8xMTM5MzE2NC8zNTExNzcyMjYtNGJlYTAyYzktNmQ1NC00Y2Q2LTk3ZWQtZGZmMTQzNDA5ODJjLm1wND9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA1MDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNTA5VDEwNTYxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTM3ODE4YmMzZWQzZjFmNDExZTkwZmU2MGM4NmI0MTQwOTBiMmNmMmNiY2U2OTM2M2JkMGMxODg5ZWNjMzdiNWUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT12aWRlbyUyRm1wNCJ9.QGU0mHhryPXVq1zyk5JBfetEBSk6VMRHgY9i7_JtrGg" controls="controls"></video>
+
+## 主要功能
+
+- 支持 `PDF` 、图片与 `DOCX` 、 `PPTX` 、 `XLSX` 输入
+- 删除页眉、页脚、脚注、页码等元素,确保语义连贯
+- 输出符合人类阅读顺序的文本,适用于单栏、多栏及复杂排版
+- 保留原文档的结构,包括标题、段落、列表等
+- 提取图像、图片描述、表格、表格标题及脚注
+- 自动识别并转换文档中的公式为LaTeX格式
+- 自动识别并转换文档中的表格为HTML格式
+- 自动检测扫描版PDF和乱码PDF,并启用OCR功能
+- OCR支持109种语言的检测与识别
+- 支持多种输出格式,如多模态与NLP的Markdown、按阅读顺序排序的JSON、含有丰富信息的中间格式等
+- 支持多种可视化结果,包括layout可视化、span可视化等,便于高效确认输出效果与质检
+- 内置命令行、FastAPI、Gradio WebUI,支持本地编排和多服务部署
+- 支持纯CPU环境运行,并支持 GPU/MPS加速,以及十余款国产算力平台的推理加速
+- 兼容Windows、Linux和Mac平台
+
+## 快速开始
+
+文档解析是困难且复杂的任务,尤其是对于复杂版面、扫描件、手写体等场景,解析结果可能不尽如人意。我们建议您先使用在线体验评估 MinerU 的解析效果和适用性,再根据实际需求选择合适的部署方式。 如果您有解析效果不佳的 **文档** 样例,欢迎提交上传到 [issue](https://github.com/opendatalab/MinerU/issues) ,我们会持续优化解析能力。 如果安装或使用中遇到任何问题,请先查询 [FAQ](#faq)
+
+## 在线体验
+
+### 官网在线应用
+
+官网在线版功能与客户端一致,界面美观,功能丰富,需要登录使用
+
+### 基于Gradio的在线demo
+
+基于gradio开发的webui,界面简洁,仅包含核心解析功能,免登录
+
+## 本地部署
+
+> [!warning] Warning
+> **安装前必看——软硬件环境支持说明**
+> 
+> 为了确保项目的稳定性和可靠性,我们在开发过程中仅对特定的软硬件环境进行优化和测试。这样当用户在推荐的系统配置上部署和运行项目时,能够获得最佳的性能表现和最少的兼容性问题。
+> 
+> 通过集中资源和精力于主线环境,我们团队能够更高效地解决潜在的BUG,及时开发新功能。
+> 
+> 在非主线环境中,由于硬件、软件配置的多样性,以及第三方依赖项的兼容性问题,我们无法100%保证项目的完全可用性。因此,对于希望在非推荐环境中使用本项目的用户,我们建议先仔细阅读文档以及FAQ,大多数问题已经在FAQ中有对应的解决方案,除此之外我们鼓励社区反馈问题,以便我们能够逐步扩大支持范围。
+
+<table><thead><tr><th rowspan="2">解析后端</th><th rowspan="2">pipeline</th><th colspan="2">*-auto-engine</th><th colspan="2">*-http-client</th></tr><tr><th>hybrid</th><th>vlm</th><th>hybrid</th><th>vlm</th></tr></thead><tbody><tr><th>后端特性</th><td>兼容性好</td><td colspan="2">硬件配置要求较高</td><td colspan="2">适用于OpenAI兼容服务器 <sup>2</sup></td></tr><tr><th>精度指标 <sup>1</sup></th><td>85+</td><td colspan="4">95+</td></tr><tr><th>操作系统</th><td colspan="5">Linux <sup>3</sup> / Windows <sup>4</sup> / macOS <sup>5</sup></td></tr><tr><th>纯CPU平台支持</th><td>✅</td><td colspan="2">❌</td><td colspan="2">✅</td></tr><tr><th>GPU加速支持</th><td colspan="4">Volta及以后架构GPU或Apple Silicon</td><td rowspan="2">不需要</td></tr><tr><th>显存最低要求</th><td>4GB</td><td>8GB</td><td>8GB</td><td>2GB</td></tr><tr><th>内存要求</th><td colspan="3">最低16GB以上,推荐32GB以上</td><td colspan="2">最低16GB</td></tr><tr><th>磁盘空间要求</th><td colspan="3">20GB以上,推荐使用SSD</td><td colspan="2">至少2GB</td></tr><tr><th>python版本</th><td colspan="5">3.10-3.13</td></tr></tbody></table>
+
+<sup>1</sup> 精度指标为OmniDocBench (v1.6)的End-to-End Evaluation Overall分数,基于 `MinerU` 最新版本测试  
+<sup>2</sup> 兼容OpenAI API的服务器,如通过 `vLLM` / `SGLang` / `LMDeploy` 等推理框架部署的本地模型服务器或远程模型服务  
+<sup>3</sup> Linux仅支持2019年及以后发行版  
+<sup>4</sup> 由于关键依赖 `ray` 未能在windows平台支持Python 3.13,故仅支持至3.10~3.12版本  
+<sup>5</sup> macOS 需使用14.0以上版本
+
+> [!tip] Tip
+> - 除以上主流环境与平台外,我们也收录了一些社区用户反馈的其他平台支持情况,详情请参考 [其他加速卡适配](https://opendatalab.github.io/MinerU/zh/usage/) 。
+> - 如果您有意将自己的环境适配经验分享给社区,欢迎通过 [show-and-tell](https://github.com/opendatalab/MinerU/discussions/categories/show-and-tell) 提交或提交PR至 [其他加速卡适配](https://github.com/opendatalab/MinerU/tree/master/docs/zh/usage/acceleration_cards) 文档。
+
+### 安装 MinerU
+
+#### 使用pip或uv安装MinerU
+
+```
+pip install --upgrade pip -i https://mirrors.aliyun.com/pypi/simple
+pip install uv -i https://mirrors.aliyun.com/pypi/simple
+uv pip install -U "mineru[all]" -i https://mirrors.aliyun.com/pypi/simple
+```
+
+#### 通过源码安装MinerU
+
+```
+git clone https://github.com/opendatalab/MinerU.git
+cd MinerU
+uv pip install -e .[all] -i https://mirrors.aliyun.com/pypi/simple
+```
+
+> [!tip] Tip
+> - `mineru[all]` 包含所有核心功能,兼容Windows / Linux / macOS系统,适合绝大多数用户。
+> - 如果您在 Windows 上安装后无法使用 CUDA 加速,请参考 [Windows CUDA 加速 FAQ](https://opendatalab.github.io/MinerU/zh/faq/#windows-cuda-acceleration) 。
+> - 如果您需要指定vlm模型的推理框架,或是仅准备在边缘设备安装轻量版client端,可以参考文档 [扩展模块安装指南](https://opendatalab.github.io/MinerU/zh/quick_start/extension_modules/) 。
+
+---
+
+#### 使用docker部署Mineru
+
+MinerU提供了便捷的docker部署方式,这有助于快速搭建环境并解决一些棘手的环境兼容问题。
+
+> [!tip] Tip
+> - Docker 部署仅适用于 Linux,以及支持 WSL2 的 Windows 环境;
+> - macOS 用户请直接参考前面两种方式部署安装,不要使用 Docker 部署。
+
+您可以在文档中获取 [Docker部署说明](https://opendatalab.github.io/MinerU/zh/quick_start/docker_deployment/) 。
+
+---
+
+### 使用 MinerU
+
+> [!tip] Tip
+> 默认使用托管在 `huggingface` 的模型进行解析,首次使用时会自动下载所需模型文件,后续使用将直接加载本地缓存的模型。如果您无法访问 `huggingface` ,可以通过以下命令切换至国内镜像源:
+> 
+> ```
+> export MINERU_MODEL_SOURCE=modelscope
+> ```
+
+如果您的设备满足上表中GPU加速的条件,可以使用简单的命令行进行文档解析:
+
+```
+mineru -p <input_path> -o <output_path>
+```
+
+如果您的设备不满足GPU加速条件,可以指定后端为 `pipeline` ,以在纯CPU环境下运行:
+
+```
+mineru -p <input_path> -o <output_path> -b pipeline
+```
+
+当前 `mineru` 支持本地 `PDF / 图片 / DOCX / PPTX / XLSX` 文件或目录输入,并可通过命令行、API、WebUI、 `mineru-router` 等多种方式进行文档解析,具体使用方法请参考 [使用指南](https://opendatalab.github.io/MinerU/zh/usage/) 。
+
+## FAQ
+
+- 如果您在使用过程中遇到问题,可以先查看 [常见问题](https://opendatalab.github.io/MinerU/zh/faq/) 是否有解答。
+- 如果未能解决您的问题,您也可以使用 [DeepWiki](https://deepwiki.com/opendatalab/MinerU) 与AI助手交流,这可以解决大部分常见问题。
+- 如果您仍然无法解决问题,您可通过 [Discord](https://discord.gg/Tdedn9GTXq) 或 [WeChat](https://mineru.net/community-portal/?aliasId=3c430f94) 加入社区,与其他用户和开发者交流。
+
+## All Thanks To Our Contributors
+
+[![](https://camo.githubusercontent.com/8069d469dcf247604efc2f58d49571257a1981329f52a5747a07e9929aa1baad/68747470733a2f2f636f6e747269622e726f636b732f696d6167653f7265706f3d6f70656e646174616c61622f4d696e657255)](https://github.com/opendatalab/MinerU/graphs/contributors)
+
+## License Information
+
+本仓库采用 [MinerU 开源许可证](https://github.com/opendatalab/MinerU/blob/master/LICENSE.md) 进行许可,基于 Apache 2.0 并附带额外条款。
+
+## Acknowledgments
+
+- [UniMERNet](https://github.com/opendatalab/UniMERNet)
+- [TableStructureRec](https://github.com/RapidAI/TableStructureRec)
+- [PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR)
+- [PaddleOCR2Pytorch](https://github.com/frotms/PaddleOCR2Pytorch)
+- [fast-langdetect](https://github.com/LlmKira/fast-langdetect)
+- [pypdfium2](https://github.com/pypdfium2-team/pypdfium2)
+- [pdftext](https://github.com/datalab-to/pdftext)
+- [pdfminer.six](https://github.com/pdfminer/pdfminer.six)
+- [pypdf](https://github.com/py-pdf/pypdf)
+- [magika](https://github.com/google/magika)
+- [vLLM](https://github.com/vllm-project/vllm)
+- [LMDeploy](https://github.com/InternLM/lmdeploy)
+
+## Citation
+
+```
+@article{wang2026mineru2,
+  title={MinerU2. 5-Pro: Pushing the Limits of Data-Centric Document Parsing at Scale},
+  ={Wang, Bin and He, Tianyao and Ouyang, Linke and Wu, Fan and Zhao, Zhiyuan and Chu, Tao and Qu, Yuan and Jin, Zhenjiang and Zeng, Weijun and Miao, Ziyang and others},
+  journal={arXiv preprint arXiv:2604.04771},
+  year={2026}
+}
+
+@article{dong2026minerudiffusion,
+  title={MinerU-Diffusion: Rethinking Document OCR as Inverse Rendering via Diffusion Decoding},
+  ={Dong, Hejun and Niu, Junbo and Wang, Bin and Zeng, Weijun and Zhang, Wentao and He, Conghui},
+  journal={arXiv preprint arXiv:2603.22458},
+  year={2026}
+}
+
+@article{niu2025mineru2,
+  title={Mineru2. 5: A decoupled vision-language model for efficient high-resolution document parsing},
+  ={Niu, Junbo and Liu, Zheng and Gu, Zhuangcheng and Wang, Bin and Ouyang, Linke and Zhao, Zhiyuan and Chu, Tao and He, Tianyao and Wu, Fan and Zhang, Qintong and others},
+  journal={arXiv preprint arXiv:2509.22186},
+  year={2025}
+}
+
+@article{wang2024mineru,
+  title={Mineru: An open-source solution for precise document content extraction},
+  ={Wang, Bin and Xu, Chao and Zhao, Xiaomeng and Ouyang, Linke and Wu, Fan and Zhao, Zhiyuan and Xu, Rui and Liu, Kaiwen and Qu, Yuan and Shang, Fukai and others},
+  journal={arXiv preprint arXiv:2409.18839},
+  year={2024}
+}
+
+@article{he2024opendatalab,
+  title={Opendatalab: Empowering general artificial intelligence with open datasets},
+  ={He, Conghui and Li, Wei and Jin, Zhenjiang and Xu, Chao and Wang, Bin and Lin, Dahua},
+  journal={arXiv preprint arXiv:2407.13773},
+  year={2024}
+}
+```
+
+## Star History
+
+![Star History Chart](https://camo.githubusercontent.com/40ca9c73efb26805e0af7b399b8bc91a2d7fe54e6cb313e5a7f5ce59bfd0bfab/68747470733a2f2f6170692e737461722d686973746f72792e636f6d2f7376673f7265706f733d6f70656e646174616c61622f4d696e65725526747970653d44617465)
+
+## Links
+
+- [Easy Data Preparation with latest LLMs-based Operators and Pipelines](https://github.com/OpenDCAI/DataFlow)
+- [Vis3 (OSS browser based on s3)](https://github.com/opendatalab/Vis3)
+- [LabelU (A Lightweight Multi-modal Data Annotation Tool)](https://github.com/opendatalab/labelU)
+- [LabelLLM (An Open-source LLM Dialogue Annotation Platform)](https://github.com/opendatalab/LabelLLM)
+- [PDF-Extract-Kit (A Comprehensive Toolkit for High-Quality PDF Content Extraction)](https://github.com/opendatalab/PDF-Extract-Kit)
+- [OmniDocBench (A Comprehensive Benchmark for Document Parsing and Evaluation)](https://github.com/opendatalab/OmniDocBench)
+- [Magic-HTML (Mixed web page extraction tool)](https://github.com/opendatalab/magic-html)
+- [Magic-Doc (Fast speed ppt/pptx/doc/docx/pdf extraction tool)](https://github.com/InternLM/magic-doc)
+- [Dingo: A Comprehensive AI Data Quality Evaluation Tool](https://github.com/MigoXLab/dingo)

+ 74 - 0
01-AI与模型/AI应用/Ollama.md

@@ -0,0 +1,74 @@
+---
+title: Ollama
+date: 2025-02-05T14:50:55+08:00
+lastmod: 2025-02-06T09:27:22+08:00
+---
+
+# Ollama
+
+  官方网站:https://ollama.com/
+
+  一、下载符合自己系统的应用程序
+
+  二、选择`Models`下载自己所需的AI模型
+
+  三、修改模型地址:*​`OLLAMA_MODELS`​*
+
+  **Ollama相关指令:**
+
+```shell
+Usage:
+  ollama [flags]
+  ollama [command]
+
+Available Commands:
+  serve       Start ollama
+  create      Create a model from a Modelfile
+  show        Show information for a model
+  run         Run a model
+  stop        Stop a running model
+  pull        Pull a model from a registry
+  push        Push a model to a registry
+  list        List models
+  ps          List running models
+  cp          Copy a model
+  rm          Remove a model
+  help        Help about any command
+
+Flags:
+  -h, --help      help for ollama
+  -v, --version   Show version information
+```
+
+  默认Ollama的api接口测试实现`A电脑`​→`B电脑`
+
+  注意要点:
+
+  一、防火墙规则配置完善
+
+  二、是否开启认证模式
+
+```powershell
+curl http://192.168.2.64:11434/api/tags
+
+响应地址:
+StatusCode        : 200
+StatusDescription : OK
+Content           : {"models":[{"name":"deepseek-r1:7b","model":"deepseek-r1:7b","modified_at":"2025-02-01T13:06:08.629
+                    5817+08:00","size":4683075271,"digest":"0a8c266910232fd3291e71e5ba1e058cc5af9d411192cf88b6d30e92b6e
+                    73...
+RawContent        : HTTP/1.1 200 OK
+                    Content-Length: 682
+                    Content-Type: application/json; charset=utf-8
+                    Date: Wed, 05 Feb 2025 07:02:02 GMT
+
+                    {"models":[{"name":"deepseek-r1:7b","model":"deepseek-r1:7b","modified_at":"...
+Forms             : {}
+Headers           : {[Content-Length, 682], [Content-Type, application/json; charset=utf-8], [Date, Wed, 05 Feb 2025 07
+                    :02:02 GMT]}
+Images            : {}
+InputFields       : {}
+Links             : {}
+ParsedHtml        : mshtml.HTMLDocumentClass
+RawContentLength  : 682
+```

+ 259 - 0
01-AI与模型/AI应用/Olmocr.md

@@ -0,0 +1,259 @@
+---
+notion-id: 205ca4d7-cb7b-80a2-89e6-f013bd147faf
+---
+**注意:可以更换所需模型,参考使用文档**
+**参考文章:**
+[🚀本地部署最强OCR大模型olmOCR!支持结构化精准提取复杂PDF文件内容!完美识别中英文文档、模糊扫描件与复杂表格!本地部署与实际测试全过程!医疗法律行业必备!轻松应对企业级PDF批量转换需求!](https://www.aivi.fyi/llms/deploy-olmOCR#%E6%9C%AC%E7%AF%87%E7%AC%94%E8%AE%B0%E6%89%80%E5%AF%B9%E5%BA%94%E7%9A%84%E8%A7%86%E9%A2%91)
+
+```plain text
+# 安装Miniconda(如果尚未安装)
+wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.sh ; bash ~/miniconda.sh -b -p $HOME/miniconda ; eval "$($HOME/miniconda/bin/conda shell.bash hook)" ; echo 'export PATH="$HOME/miniconda/bin:$PATH"' >> ~/.bashrc ; source ~/.bashrc
+
+conda create -n ai python=3.11 -y && conda activate ai
+
+sudo apt-get update
+sudo apt-get install poppler-utils ttf-mscorefonts-installer msttcorefonts fonts-crosextra-caladea fonts-crosextra-carlito gsfonts lcdf-typetools
+
+conda create -n olmocr python=3.11
+conda activate olmocr
+
+git clone https://github.com/allenai/olmocr.git
+cd olmocr
+pip install -e .
+
+pip install sgl-kernel==0.0.3.post1 --force-reinstall --no-deps
+pip install "sglang[all]==0.4.2" --find-links https://flashinfer.ai/whl/cu124/torch2.4/flashinfer/
+
+pip install gradio pandas
+
+python -m olmocr.pipeline ./localworkspace --pdfs tests/gnarly_pdfs/horribleocr.pdf
+
+cat localworkspace/results/output_*.jsonl  
+
+
+```
+**gradio UI代码**
+```plain text
+import os
+import json
+import gradio as gr
+import subprocess
+import pandas as pd
+from pathlib import Path
+import shutil
+import time
+import re
+
+# 创建工作目录
+WORKSPACE_DIR = "olmocr_workspace"
+os.makedirs(WORKSPACE_DIR, exist_ok=True)
+
+def modify_html_for_better_display(html_content):
+    """修改HTML以便在Gradio中更好地显示"""
+    if not html_content:
+        return html_content
+    
+    # 增加容器宽度
+    html_content = html_content.replace('<div class="container">', 
+                                       '<div class="container" style="max-width: 100%; width: 100%;">')
+    
+    # 增加文本大小
+    html_content = html_content.replace('<style>', 
+                                       '<style>\nbody {font-size: 16px;}\n.text-content {font-size: 16px; line-height: 1.5;}\n')
+    
+    # 调整图像和文本部分的大小比例
+    html_content = html_content.replace('<div class="row">', 
+                                       '<div class="row" style="display: flex; flex-wrap: wrap;">')
+    html_content = html_content.replace('<div class="col-md-6">', 
+                                       '<div class="col-md-6" style="flex: 0 0 50%; max-width: 50%; padding: 15px;">')
+    
+    # 增加页面之间的间距
+    html_content = html_content.replace('<div class="page">', 
+                                       '<div class="page" style="margin-bottom: 30px; border-bottom: 1px solid #ccc; padding-bottom: 20px;">')
+    
+    # 增加图像大小
+    html_content = re.sub(r'<img([^>]*)style="([^"]*)"', 
+                         r'<img\1style="max-width: 100%; height: auto; \2"', 
+                         html_content)
+    
+    # 添加缩放控制
+    zoom_controls = """
+    <div style="position: fixed; bottom: 20px; right: 20px; background: #fff; padding: 10px; border-radius: 5px; box-shadow: 0 0 10px rgba(0,0,0,0.2); z-index: 1000;">
+        <button onclick="document.body.style.zoom = parseFloat(document.body.style.zoom || 1) + 0.1;" style="margin-right: 5px;">放大</button>
+        <button onclick="document.body.style.zoom = parseFloat(document.body.style.zoom || 1) - 0.1;">缩小</button>
+    </div>
+    """
+    html_content = html_content.replace('</body>', f'{zoom_controls}</body>')
+    
+    return html_content
+
+def process_pdf(pdf_file):
+    """处理PDF文件并返回结果"""
+    if pdf_file is None:
+        return "请上传PDF文件", "", None, None
+    
+    # 创建一个唯一的工作目录
+    timestamp = int(time.time())
+    work_dir = os.path.join(WORKSPACE_DIR, f"job_{timestamp}")
+    os.makedirs(work_dir, exist_ok=True)
+    
+    # 复制PDF文件
+    pdf_path = os.path.join(work_dir, "input.pdf")
+    shutil.copy(pdf_file, pdf_path)
+    
+    # 构建命令并执行
+    cmd = ["python", "-m", "olmocr.pipeline", work_dir, "--pdfs", pdf_path]
+    
+    try:
+        # 执行命令,等待完成
+        process = subprocess.run(
+            cmd,
+            stdout=subprocess.PIPE,
+            stderr=subprocess.PIPE,
+            text=True,
+            check=True
+        )
+        
+        # 命令输出
+        log_text = process.stdout
+        
+        # 检查结果目录
+        results_dir = os.path.join(work_dir, "results")
+        if not os.path.exists(results_dir):
+            return f"处理完成,但未生成结果目录\n\n日志输出:\n{log_text}", "", None, None
+        
+        # 查找输出文件
+        output_files = list(Path(results_dir).glob("output_*.jsonl"))
+        if not output_files:
+            return f"处理完成,但未找到输出文件\n\n日志输出:\n{log_text}", "", None, None
+        
+        # 读取JSONL文件
+        output_file = output_files[0]
+        with open(output_file, "r") as f:
+            content = f.read().strip()
+            if not content:
+                return f"输出文件为空\n\n日志输出:\n{log_text}", "", None, None
+            
+            # 解析JSON
+            result = json.loads(content)
+            extracted_text = result.get("text", "未找到文本内容")
+            
+            # 生成HTML预览
+            try:
+                preview_cmd = ["python", "-m", "olmocr.viewer.dolmaviewer", str(output_file)]
+                subprocess.run(preview_cmd, check=True)
+            except Exception as e:
+                log_text += f"\n生成HTML预览失败: {str(e)}"
+            
+            # 查找HTML文件
+            html_files = list(Path("dolma_previews").glob("*.html"))
+            html_content = ""
+            if html_files:
+                try:
+                    with open(html_files[0], "r", encoding="utf-8") as hf:
+                        html_content = hf.read()
+                        # 修改HTML以更好地显示
+                        html_content = modify_html_for_better_display(html_content)
+                except Exception as e:
+                    log_text += f"\n读取HTML预览失败: {str(e)}"
+            
+            # 创建元数据表格
+            metadata = result.get("metadata", {})
+            meta_rows = []
+            for key, value in metadata.items():
+                meta_rows.append([key, value])
+            
+            df = pd.DataFrame(meta_rows, columns=["属性", "值"])
+            
+            return log_text, extracted_text, html_content, df
+        
+    except subprocess.CalledProcessError as e:
+        return f"命令执行失败: {e.stderr}", "", None, None
+    except Exception as e:
+        return f"处理过程中发生错误: {str(e)}", "", None, None
+
+# 创建Gradio界面
+with gr.Blocks(title="olmOCR PDF提取工具") as app:
+    gr.Markdown("# olmOCR PDF文本提取工具")
+    
+    with gr.Row():
+        with gr.Column(scale=1):
+            pdf_input = gr.File(label="上传PDF文件", file_types=[".pdf"])
+            process_btn = gr.Button("处理PDF", variant="primary")
+        
+        with gr.Column(scale=2):
+            tabs = gr.Tabs()
+            with tabs:
+                with gr.TabItem("提取文本"):
+                    text_output = gr.Textbox(label="提取的文本", lines=20, interactive=True)
+                with gr.TabItem("HTML预览", id="html_preview_tab"):
+                    # 使用更大的HTML组件
+                    html_output = gr.HTML(label="HTML预览", elem_id="html_preview_container")
+                with gr.TabItem("元数据"):
+                    meta_output = gr.DataFrame(label="文档元数据")
+                with gr.TabItem("日志"):
+                    log_output = gr.Textbox(label="处理日志", lines=15, interactive=False)
+    
+    # 使用CSS自定义HTML预览标签页和内容大小
+    gr.HTML("""
+    <style>
+    #html_preview_container {
+        height: 800px;
+        width: 100%; 
+        overflow: auto;
+        border: 1px solid #ddd;
+        border-radius: 4px;
+    }
+    #html_preview_container iframe {
+        width: 100%;
+        height: 100%;
+        border: none;
+    }
+    </style>
+    """)
+    
+    # 添加操作说明
+    gr.Markdown("""
+    ## 使用说明
+    1. 上传PDF文件
+    2. 点击"处理PDF"按钮
+    3. 等待处理完成
+    4. 查看提取的文本和HTML预览
+    
+    ### 关于HTML预览
+    - HTML预览展示原始PDF页面和提取的文本对照
+    - 可以清楚地看到OCR过程的精确度
+    - 如果预览内容太小,可以使用右下角的放大/缩小按钮调整
+    
+    ## 注意
+    - 处理过程可能需要几分钟,请耐心等待
+    - 首次运行会下载模型(约7GB)
+    """)
+    
+    # 绑定按钮事件 - 使用阻塞模式
+    process_btn.click(
+        fn=process_pdf,
+        inputs=pdf_input,
+        outputs=[log_output, text_output, html_output, meta_output],
+        api_name="process"
+    )
+
+# 启动应用
+if __name__ == "__main__":
+    app.launch(share=True)
+
+```
+
+
+装 **Miniconda**(推荐,轻量):
+```bash
+#下载Miniconda
+wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
+#安装Miniconda
+bash Miniconda3-latest-Linux-x86_64.sh
+```
+安装完执行:
+```bash
+source ~/.bashrc
+
+```

+ 16 - 0
01-AI与模型/AI应用/Open-webui.md

@@ -0,0 +1,16 @@
+---
+title: Open-webui
+date: 2025-02-05T15:05:05+08:00
+lastmod: 2025-02-05T16:31:13+08:00
+---
+
+# Open-webui
+
+  项目:https://github.com/open-webui/open-webui?tab=readme-ov-file
+
+```powershell
+docker run -d -p 8080:8080 --add-host=host.docker.internal:host-gateway -v C:\docker\open-webui-data:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
+
+```
+
+  ‍

+ 25 - 0
01-AI与模型/AI应用/Ragflow.md

@@ -0,0 +1,25 @@
+---
+notion-id: 217ca4d7-cb7b-80d0-ab43-c272c3d55f49
+---
+# 一、Docker安装
+克隆仓库
+```javascript
+git clone https://ghproxy.net/https://github.com/infiniflow/ragflow.git
+```
+进入文件
+```javascript
+cd ragflow
+```
+运行脚本
+```javascript
+docker compose -f docker-compose.yml up -d
+```
+# 二、基础操作
+访问IP地址默认是80端口,也可以配置成其他端口
+`http://localhost:80`
+配置文本识别模型`nomic-embed-text:latest`
+# 三、基础配置
+1,Dfiy配置外部知识库 API
+`http://localhost:80/api/v1/dify`
+2、知识库ID
+![[image-5.png]]

+ 309 - 0
01-AI与模型/AI应用/Windows 本地 AI 又升级了!llama.cpp 官方支持 CUDA 13 Vulkan HIP SYCL,一键跑 GGUF 无审查模型!.md

@@ -0,0 +1,309 @@
+---
+title: "Windows 本地 AI 又升级了!llama.cpp 官方支持 CUDA 13 / Vulkan / HIP / SYCL,一键跑 GGUF 无审查模型!"
+source: "https://www.freedidi.com/24211.html"
+author:
+  - ""
+published: 2026-05-18
+created: 2026-05-20
+description: "最近,llama.cpp 又迎来了一次非常重要的更新。对于经常在 Windows 上折腾本地 AI 大模型的用户来说,这次更新可以说相当实用。"
+tags:
+  - "clippings"
+---
+最近,llama.cpp 又迎来了一次非常重要的更新。对于经常在 Windows 上折腾本地 AI 大模型的用户来说,这次更新可以说相当实用。
+
+因为现在官方已经开始真正意义上的:“降低 Windows 本地 AI 的使用门槛”!
+
+![20260518064042 404956 scaled](https://www.freedidi.com/wp-content/uploads/2026/05/20260518064042_404956-scaled.webp "Windows 本地 AI 又升级了!llama.cpp 官方支持 CUDA 13 / Vulkan / HIP / SYCL,一键跑 GGUF 无审查模型! 1")
+
+![20260518110005 256951 scaled](https://www.freedidi.com/wp-content/uploads/2026/05/20260518110005_256951-scaled.webp "Windows 本地 AI 又升级了!llama.cpp 官方支持 CUDA 13 / Vulkan / HIP / SYCL,一键跑 GGUF 无审查模型! 2")
+
+以前很多人第一次接触本地大模型,最头疼的其实不是模型本身,而是各种环境问题:
+
+- CUDA 版本不匹配
+- DLL 缺失
+- 驱动不兼容
+- CMake 编译失败
+- 环境变量错误
+- Vulkan / HIP 配置复杂
+- Windows 编译过程报错
+
+尤其很多新手,教程还没看完,就已经被环境问题劝退了。
+
+但现在不一样了。
+
+在 llama.cpp 最新发布的 b9196 版本中,官方已经直接提供了多种 Windows 预编译版本,很多情况下已经可以做到:下载 → 解压 → 双击运行!这对于 Windows 本地 AI 用户来说,绝对算是一件好事。
+
+![20260518105919 469897 scaled](https://www.freedidi.com/wp-content/uploads/2026/05/20260518105919_469897-scaled.webp "Windows 本地 AI 又升级了!llama.cpp 官方支持 CUDA 13 / Vulkan / HIP / SYCL,一键跑 GGUF 无审查模型! 3")
+
+## llama.cpp 是什么?
+
+llama.cpp 官方 GitHub 是目前最流行的本地 GGUF 模型推理框架之一。
+
+![20260518064922 507431](https://www.freedidi.com/wp-content/uploads/2026/05/20260518064922_507431.webp "Windows 本地 AI 又升级了!llama.cpp 官方支持 CUDA 13 / Vulkan / HIP / SYCL,一键跑 GGUF 无审查模型! 4")
+
+## 官方下载:【点击前往】 或 【网盘下载】、【整合下载】
+
+很多大家熟悉的本地模型,其实都可以通过 llama.cpp 运行:
+
+- Qwen
+- Llama
+- DeepSeek
+- Gemma
+- Hermes
+- Dolphin
+- Mistral
+- Mixtral
+
+尤其现在 GGUF 生态越来越成熟,很多模型都会第一时间发布 GGUF 量化版本。
+
+## 视频教程:
+
+![](https://www.youtube.com/watch?v=uqsL3RcBfn8)
+
+而 llama.cpp 最大的优势就是:
+
+> 轻量  
+> 跨平台  
+> 支持 GPU  
+> 支持 CPU  
+> 支持 GGUF
+
+而且现在甚至已经支持:
+
+> 多模态  
+> 图片理解  
+> Vision 模型  
+> OpenAI 风格 API  
+> 网页聊天界面
+
+## llama.cpp 最新 Windows 版本支持什么?
+
+目前官方 Release 页面已经直接提供:
+
+- Windows x64 CPU
+- Windows x64 CUDA 12.4
+- Windows x64 CUDA 13.1
+- Windows x64 Vulkan
+- Windows x64 HIP Radeon
+- Windows x64 SYCL
+- Windows ARM64 CPU
+
+这意味着:
+
+## NVIDIA 用户
+
+可以直接选择:CUDA 12.4 或者 CUDA 13.1
+
+如果你是:
+
+- RTX 3060
+- RTX 4060
+- RTX 4070
+- RTX 4080
+- RTX 4090
+
+基本建议优先 CUDA。
+
+## AMD 用户
+
+现在终于不用完全依赖 ROCm 了。
+
+你可以:HIP 或者 Vulkan
+
+很多情况下,Vulkan 反而比 HIP 更稳定。
+
+## Intel 用户
+
+现在 Intel 核显、Arc 独显也终于有得玩了。
+
+可以尝试:SYCL 或者 Vulkan
+
+虽然性能和 NVIDIA 还有差距,但已经能正常跑很多 GGUF 小模型。
+
+## 如何启动 GGUF 模型?
+
+例如:gemma-4-31b-jang-crack-Q4\_K\_M.gguf
+
+启动方式其实非常简单。
+
+进入 llama.cpp 目录:
+
+llama-server.exe -m models\\你的模型.gguf -ngl 999
+
+llama-server.exe -m models\\你的模型.gguf -ngl 999
+
+```js
+llama-server.exe -m models\你的模型.gguf -ngl 999
+```
+
+其中:-ngl 999 代表尽量把模型全部加载到 GPU。
+
+启动成功后,浏览器打开:http://127.0.0.1:8080
+
+即可进入网页聊天界面。
+
+## 如何启动 GGUF 多模态视觉模型?
+
+加载视觉模型需要2个文件,一个是主模型文件,另外一个就是 mmproj 视觉模型加载文件
+
+目前支持较好的包括:
+
+## Qwen2-VL / Qwen2.5-VL
+
+目前中文视觉能力最强之一:
+
+- OCR
+- 截图理解
+- 网页识别
+- 中文图片问答
+
+表现都非常强。
+
+### 主模型下载:【点击前往】或 【网盘下载】、【备用下载】
+
+![20260518071309 620194](https://www.freedidi.com/wp-content/uploads/2026/05/20260518071309_620194.webp "Windows 本地 AI 又升级了!llama.cpp 官方支持 CUDA 13 / Vulkan / HIP / SYCL,一键跑 GGUF 无审查模型! 5")
+
+比如我让它给做视频封面的点击率测试,居然可以做到100%正确!当然它的功能远不止这些…….
+
+**多模态模型启用:**
+
+llama-server.exe -m "models\\主模型.gguf" --mmproj "models\\mmproj视觉模型.gguf" -ngl 999
+
+llama-server.exe -m "models\\主模型.gguf" --mmproj "models\\mmproj视觉模型.gguf" -ngl 999
+
+```js
+llama-server.exe -m "models\主模型.gguf" --mmproj "models\mmproj视觉模型.gguf" -ngl 999
+```
+
+## 无审查模型:
+
+**1、Llama3-8b-DarkIdol 是比较热门的无审查的开源大模型**
+
+**支持中文、日文和英语,非常适合角色扮演。**
+
+### 模型下载:【点击前往】或 【打包下载】打包版下载即可使用无需合并转换格式
+
+下载合并为GGUF模型格式
+
+huggingface-cli download aifeifei798/llama3-8B-DarkIdol-2.3-Uncensored-32K --local-dir DarkIdol-HF --local-dir-use-symlinks False
+
+huggingface-cli download aifeifei798/llama3-8B-DarkIdol-2.3-Uncensored-32K --local-dir DarkIdol-HF --local-dir-use-symlinks False
+
+```js
+huggingface-cli download aifeifei798/llama3-8B-DarkIdol-2.3-Uncensored-32K --local-dir DarkIdol-HF --local-dir-use-symlinks False
+```
+
+然后用 llama.cpp 转 GGUF:
+
+git clone https://github.com/ggerganov/llama.cpp
+
+cd llama.cpp
+
+pip install -r requirements.txt
+
+python convert\_hf\_to\_gguf.py../DarkIdol-HF --outtype f16 --outfile../DarkIdol-F16.gguf
+
+git clone https://github.com/ggerganov/llama.cpp cd llama.cpp pip install -r requirements.txt python convert\_hf\_to\_gguf.py../DarkIdol-HF --outtype f16 --outfile../DarkIdol-F16.gguf
+
+```js
+git clone https://github.com/ggerganov/llama.cpp
+cd llama.cpp
+pip install -r requirements.txt
+
+python convert_hf_to_gguf.py ../DarkIdol-HF --outtype f16 --outfile ../DarkIdol-F16.gguf
+```
+
+需要量化成 Q4\_K\_M的话可以命令:
+
+llama-quantize.exe../DarkIdol-F16.gguf../DarkIdol-Q4\_K\_M.gguf Q4\_K\_M
+
+llama-quantize.exe../DarkIdol-F16.gguf../DarkIdol-Q4\_K\_M.gguf Q4\_K\_M
+
+```js
+llama-quantize.exe ../DarkIdol-F16.gguf ../DarkIdol-Q4_K_M.gguf Q4_K_M
+```
+
+![20260518065228 136336](https://www.freedidi.com/wp-content/uploads/2026/05/20260518065228_136336.webp "Windows 本地 AI 又升级了!llama.cpp 官方支持 CUDA 13 / Vulkan / HIP / SYCL,一键跑 GGUF 无审查模型! 6")
+
+**2、Gemma-4-31b-jang-crack-Q4\_K\_M 是 Google 开源的无审查大模型**
+
+这是一个在本地跑:听话、高效、不乱加道德判断的AI
+
+- **推理能力扎实:在数学和代码相关任务上表现突出,尤其长上下文处理(原生支持128K,部分可扩展到256K)。你甚至可以把整个项目代码库或一本技术手册一次性喂给它,它不会轻易“失忆”。**
+- **参数效率高:**  
+	26B MoE版本激活参数不多,跑起来相对轻快,在很多基准上效率比同级别模型更好。
+- **开源友好:**  
+	Apache 2.0协议,允许修改、商用和二次分发,这对想自己折腾或做副业的朋友来说非常实用。
+
+官方版的主要问题是安全对齐层比较厚,很多正常的技术探讨或创意场景容易被挡住。越狱版通过社区技术(abliteration等)移除了这部分限制,保留了绝大部分原始能力。
+
+### 模型下载:【点击前往】或 【打包下载】、【备用下载】
+
+![20260518094514 729207](https://www.freedidi.com/wp-content/uploads/2026/05/20260518094514_729207.webp "Windows 本地 AI 又升级了!llama.cpp 官方支持 CUDA 13 / Vulkan / HIP / SYCL,一键跑 GGUF 无审查模型! 7")
+
+## 更多越狱模型:
+
+1、Hermes-3 【 **[点击下载](https://huggingface.co/NousResearch/Hermes-3-Llama-3.1-8B)** 】
+
+2、Qwen 越狱模型【 [**点击下载**](https://huggingface.co/zemelee/qwen2.5-jailbreak) 】
+
+3、Deepseek 越狱模型【 **[点击下载](https://huggingface.co/huihui-ai)** 】
+
+## 多种模态自由切换运行:
+
+如果我们同时下载了多种不同的模型,为了方便统一管理,在运行的时候我们可以使用零度的这个脚本,来实现多模型自由切换运行,注意将里面的模型名称改成你自己的!
+
+@echo off
+
+chcp 65001 >nul
+
+cd /d C:\\Users\\LINGDU\\Desktop\\llama-b9196-bin-win-cuda-13.1-x64
+
+echo 请选择模型:
+
+echo 1. Gemma 31B
+
+echo 2. Qwen VL 多模态
+
+echo 3. DeepSeek
+
+set /p choice=输入数字:
+
+if "%choice%"=="1" llama-server.exe -m "models\\gemma-4-31b-jang-crack-Q4\_K\_M.gguf" -ngl 999
+
+if "%choice%"=="2" llama-server.exe -m "models\\Qwen2.5-VL-7B-Instruct-Q4\_K\_M.gguf" --mmproj "models\\mmproj-BF16.gguf" -ngl 999
+
+if "%choice%"=="3" llama-server.exe -m "models\\deepseek.gguf" -ngl 999
+
+pause
+
+@echo off chcp 65001 >nul cd /d C:\\Users\\LINGDU\\Desktop\\llama-b9196-bin-win-cuda-13.1-x64 echo 请选择模型: echo 1. Gemma 31B echo 2. Qwen VL 多模态 echo 3. DeepSeek set /p choice=输入数字: if "%choice%"=="1" llama-server.exe -m "models\\gemma-4-31b-jang-crack-Q4\_K\_M.gguf" -ngl 999 if "%choice%"=="2" llama-server.exe -m "models\\Qwen2.5-VL-7B-Instruct-Q4\_K\_M.gguf" --mmproj "models\\mmproj-BF16.gguf" -ngl 999 if "%choice%"=="3" llama-server.exe -m "models\\deepseek.gguf" -ngl 999 pause
+
+```js
+@echo off
+chcp 65001 >nul
+cd /d C:\Users\LINGDU\Desktop\llama-b9196-bin-win-cuda-13.1-x64
+
+echo 请选择模型:
+echo 1. Gemma 31B
+echo 2. Qwen VL 多模态
+echo 3. DeepSeek
+
+set /p choice=输入数字:
+
+if "%choice%"=="1" llama-server.exe -m "models\gemma-4-31b-jang-crack-Q4_K_M.gguf" -ngl 999
+if "%choice%"=="2" llama-server.exe -m "models\Qwen2.5-VL-7B-Instruct-Q4_K_M.gguf" --mmproj "models\mmproj-BF16.gguf" -ngl 999
+if "%choice%"=="3" llama-server.exe -m "models\deepseek.gguf" -ngl 999
+
+pause
+```
+
+将上方的命令保存到文本文档里,另存为的时候选择utf-8格式,最后将txt后缀改成bat即可!双击运行即可看到下方的选项
+
+![20260518070758 415709](https://www.freedidi.com/wp-content/uploads/2026/05/20260518070758_415709.webp "Windows 本地 AI 又升级了!llama.cpp 官方支持 CUDA 13 / Vulkan / HIP / SYCL,一键跑 GGUF 无审查模型! 8")
+
+输入模型对应的数字就可以成功启动模型
+
+![20260518070850 012830 scaled](https://www.freedidi.com/wp-content/uploads/2026/05/20260518070850_012830-scaled.webp "Windows 本地 AI 又升级了!llama.cpp 官方支持 CUDA 13 / Vulkan / HIP / SYCL,一键跑 GGUF 无审查模型! 9") ![20260518070854 219316 scaled](https://www.freedidi.com/wp-content/uploads/2026/05/20260518070854_219316-scaled.webp "Windows 本地 AI 又升级了!llama.cpp 官方支持 CUDA 13 / Vulkan / HIP / SYCL,一键跑 GGUF 无审查模型! 10")
+
+![20260518110131 957575 scaled](https://www.freedidi.com/wp-content/uploads/2026/05/20260518110131_957575-scaled.webp "Windows 本地 AI 又升级了!llama.cpp 官方支持 CUDA 13 / Vulkan / HIP / SYCL,一键跑 GGUF 无审查模型! 11")

+ 269 - 0
01-AI与模型/AI应用/chatwoot+n8n+dify.md

@@ -0,0 +1,269 @@
+# Chatwoot + n8n + Dify 智能客服
+
+> 部署日期:2026-06-24~25 · 更新:2026-06-25
+
+---
+
+## 架构概览
+
+```
+用户 → Chatwoot(:3000) → Webhook → n8n(:5678) → Dify(:8088) → n8n → Chatwoot API → 用户
+                              ↑                                                    │
+                              └──────── 机器人回复不会再触发 Webhook ──────────────┘
+                                    (Filter 过滤 sender_type ≠ "contact")
+```
+
+| 组件 | 服务器 | 端口 | 路径/管理 |
+|------|--------|------|-----------|
+| Chatwoot | aliyun2 (47.109.158.218) | 3000 | `/opt/chatwoot/`,docker-compose |
+| n8n | aliyun2 | 5678 | `/www/dk_project/dk_app/n8n/n8n_zZ2Y/`,宝塔 Docker |
+| Dify | aliyun2 | 8088 | v1.11.2,12 容器 |
+
+Chatwoot 数据库端口 5433(Postgres)/ 6380(Redis),避免与 Dify 的 5432/6379 冲突。
+
+---
+
+## 一、Chatwoot 配置
+
+### 1.1 部署(已完成)
+
+```bash
+cd /opt/chatwoot
+# 管理命令
+docker-compose up -d      # 启动
+docker-compose down        # 停止
+docker-compose restart     # ⚠️ 不重读 .env!改环境变量必须 down + up -d
+docker-compose ps          # 查看状态
+```
+
+核心环境变量(`.env`):`SECRET_KEY_BASE`、`POSTGRES_PASSWORD`、`REDIS_PASSWORD`、`FRONTEND_URL`
+
+### 1.2 SMTP 邮件配置
+
+Chatwoot 必须配 SMTP,客服注册需邮箱验证。
+
+**当前使用:阿里云邮件推送**
+
+| 项目       | 值                         |
+| -------- | ------------------------- |
+| 发送地址     | `zlsh@smtp.zilanlife.com` |
+| SMTP 服务器 | `smtpdm.aliyun.com`       |
+| 端口       | 465(SSL)                  |
+| 认证方式     | plain                     |
+| 密码       | `M9LV49ujVpxvUbC`         |
+
+备选 QQ 邮箱:`zhensolid@vip.qq.com`,SMTP 密码 `ofgfjztgxvgkbiaa`,`smtp.qq.com:465`
+
+> ⚠️ 新域名邮件可能进垃圾箱,正常现象。
+
+### 1.3 创建 Webhook(机器人)
+
+Chatwoot 后台 → Settings → Integrations → Webhooks → Add new webhook:
+
+1. 将 n8n 的 **Production Webhook URL** 填入
+2. 勾选事件:`message_created`
+3. 保存
+
+Chatwoot 收到用户消息 → 推送到这个 URL → n8n 接收处理。
+
+### 1.4 获取 API 访问令牌
+
+Chatwoot 后台 → Settings → API Access → Generate new token:
+
+| 项目 | 值 |
+|------|-----|
+| 当前 Token | `mmFb9KQVxKFemRBQ168w3Tzb` |
+
+用于 n8n 回复消息时调用 Chatwoot API。
+
+---
+
+## 二、n8n 工作流配置
+
+### 节点结构
+
+```
+Webhook(触发器)
+  │  Respond: Immediately  ← 🔴 必须!否则 Chatwoot 超时重试→死循环
+  │
+  ├─ IF: message_type == "incoming"         ← 只处理用户消息
+  ├─ IF: private == false                    ← 排除私聊模式
+  └─ IF: conversation.status == "pending"   ← 客服介入后停止
+  │
+  ▼
+HTTP Request → Dify  ← 调 Dify Chat API,blocking 模式
+  │
+  ▼
+HTTP Request → Chatwoot  ← 把 Dify 回复发回对话
+```
+
+### 节点详细配置
+
+#### 节点 1:Webhook 触发器
+
+| 配置项 | 值 | 说明 |
+|--------|-----|------|
+| HTTP Method | POST | |
+| Path | 自动生成 | |
+| **Respond** | **Immediately** | 🔴 必须!Chatwoot 5s 超时,不设会重试→循环 |
+| Response Code | 200 | |
+
+生成两个 URL:**Test**(草稿测试)和 **Production**(发布后用)。
+
+Chatwoot 里填 Production URL。
+
+#### 节点 2-4:IF 过滤器(三个串连)
+
+| #   | 条件                                     | 操作符   | 值          | 目的            |
+| --- | -------------------------------------- | ----- | ---------- | ------------- |
+| 2   | `{{ $json.body.message_type }}`        | Equal | `incoming` | 只要用户消息,不要系统通知 |
+| 3   | `{{ $json.body.private }}`             | Equal | `false`    | 排除客服私聊模式      |
+| 4   | `{{ $json.body.conversation.status }}` | Equal | `pending`  | 客服接手后停止机器人    |
+
+三个都通过 → 流向 Dify。
+
+> 🔴 注意:Webhook 的 Respond 已设为 Immediately,所以即使 Filter 拦截了消息,Chatwoot 也已拿到 200,不会重试。
+
+#### 节点 5:HTTP Request → Dify
+
+| 配置项 | 值 |
+|--------|-----|
+| Method | POST |
+| URL | `http://47.109.158.218:8088/v1/chat-messages` |
+
+**Headers:**
+
+| Key | Value |
+|-----|-------|
+| Authorization | `Bearer app-ieGbmugS3yP7tzFESP56KWD7` |
+| Content-Type | `application/json` |
+
+**Body (JSON):**
+
+```json
+{
+  "inputs": {},
+  "query": "{{ $json.body.content }}",
+  "response_mode": "blocking",
+  "user": "{{ $json.body.sender.name }}"
+}
+```
+
+| 参数 | 说明 |
+|------|------|
+| `query` | 用户发来的消息文本 |
+| `response_mode` | `blocking` = 等 Dify 回复完再继续(简单可靠) |
+| `user` | 会话标识,用发送者名字区分用户 |
+
+#### 节点 6:HTTP Request → Chatwoot(回复消息)
+
+| 配置项 | 值 |
+|--------|-----|
+| Method | POST |
+| URL | `http://47.109.158.218:3000/api/v1/accounts/{{ $('Webhook').item.json.body.account.id }}/conversations/{{ $('Webhook').item.json.body.conversation.id }}/messages` |
+
+> ⚠️ 必须用 `$('Webhook')` 跨节点引用而非 `$json`。因为 Dify 返回后数据已变成 Dify 的响应结构,`$json.body` 里没有 Chatwoot 的 account_id。`$('Webhook')` 强制回到源头拿原始数据。
+
+**Headers:**
+
+| Key | Value |
+|-----|-------|
+| api_access_token | `mmFb9KQVxKFemRBQ168w3Tzb` |
+| Content-Type | `application/json` |
+
+**Body (JSON):**
+
+```json
+{
+  "content": "{{ $json.answer.replace(/<think>[\\s\\S]*?<\\/think>/g, '').trim() }}"
+}
+```
+
+`$json.answer` 是上一节点(Dify HTTP Request)返回的回复文本。正则移除 `<think>...</think>` 思考过程标签。
+
+---
+
+## 三、Dify 配置
+
+### 3.1 创建聊天应用
+
+Dify 后台(`http://47.109.158.218:8088`)→ 创建应用 → 聊天助手:
+
+1. 选择模型(如 DeepSeek)
+2. 编写系统提示词(Prompt)
+3. 可选添加知识库
+4. 发布应用
+
+### 3.2 获取 API Key
+
+应用内 → 左侧菜单 **API 访问** → 生成密钥:
+
+| 项目 | 值 |
+|------|-----|
+| API Key | `app-ieGbmugS3yP7tzFESP56KWD7` |
+| API 端点 | `http://47.109.158.218:8088/v1/chat-messages` |
+
+> 这个 Key 填到 n8n 节点 5 的 Authorization 里。
+
+---
+
+## 四、常见问题与排错
+
+### 🔴 Q1:机器人自言自语无限循环
+
+**现象**:用户发一条消息,Dify 不停回复同一句,Chatwoot 里消息不断刷。
+
+**原因**:n8n 回复给 Chatwoot 的消息又被 Chatwoot 当成新消息,再次触发 Webhook → 循环。
+
+**解决步骤:**
+
+1. Webhook 节点 → **Respond: Immediately**(Chatwoot 秒拿 200,不再重试)
+2. n8n workflow **执行历史**里查看死循环的 payload → 找 `sender_type` 字段
+3. Filter 节点加条件:`sender_type` ≠ `agent`(或等于 `contact`)
+4. ⚠️ 注意:Chatwoot Webhook payload 里代表用户的是 `contact`,机器人回复是 `agent` 或 `bot`。**先看实际 payload 里字段名再设 Filter。**
+
+如果你的 webhook payload 没有 `sender_type` 而是其他字段(如 `message_type` = `outgoing` / `incoming`),用它来区分。
+
+### 🟡 Q2:URL 里字段变成 undefined
+
+**现象**:`/accounts/undefined/conversations/...`
+
+**原因**:用了 `$json.body.account.id` 但 HTTP Request 节点拿到的 $json 不是 Webhook 的原始数据(中间有 Filter/Set 改了结构)。
+
+**解决**:改用跨节点引用 `$('Webhook').item.json.body.account.id`
+
+### 🟡 Q3:Dify 回复包含 `\<think\>` 标签
+
+已在节点 6 用正则处理:
+```js
+$json.answer.replace(/<think>[\s\S]*?<\/think>/g, '').trim()
+```
+
+如果 Dify 开启了思考模式(DeepSeek-R1 等),输出会带有推理过程。
+
+### 🟡 Q4:n8n Webhook URL 改了不生效
+
+**原因**:n8n 里有两个 URL(Test / Production),改了 Chatwoot 里填的 URL 后要确认对应的是 n8n **当前发布**版本。
+
+**检查**:n8n 右上角 → 确认已发布(Active),再看 Webhook 节点的 Production URL。
+
+---
+
+## 五、速查
+
+| 需要                 | 去哪                                                                |
+| ------------------ | ----------------------------------------------------------------- |
+| Chatwoot 后台        | `http://47.109.158.218:3000`                                      |
+| n8n 后台             | `http://47.109.158.218:5678`                                      |
+| Dify 后台            | `http://47.109.158.218:8088`                                      |
+| Chatwoot API Token | `mmFb9KQVxKFemRBQ168w3Tzb`                                        |
+| Dify API Key       | `app-ieGbmugS3yP7tzFESP56KWD7`                                    |
+| Chatwoot 重启        | `cd /opt/chatwoot && docker-compose down && docker-compose up -d` |
+| n8n 容器名            | `n8n_zz2y-n8n_zZ2Y-1`                                             |
+
+---
+
+客户连续对话:
+1、Chatwoot 需要配置自定义属性
+2、n8n 工作流需要配置 code 属性和写入 dify_id 
+

+ 21 - 0
01-AI与模型/AI应用/微信MCP.md

@@ -0,0 +1,21 @@
+---
+title: 微信MCP
+date: 2025-06-08T11:12:09+08:00
+lastmod: 2025-06-08T11:17:26+08:00
+---
+
+# 微信MCP
+
+  项目地址:[https://github.com/sjzar/chatlog](https://github.com/sjzar/chatlog)
+
+  微信历史版本:
+
+  https://github.com/cscnk52/wechat-windows-versions/releases/tag/v4.0.3.36
+
+  https://github.com/iibob/WechatWindowsVersionHistory/releases/tag/v4.0.3.36
+
+  ‍
+
+  MCP服务地址`http://127.0.0.1:5030/sse`
+
+  需要调用包含tool的模型,并且注意模型运行会修改日期,请提示词严格限制修改日期

+ 62 - 0
01-AI与模型/AI应用/查看操作实例.md

@@ -0,0 +1,62 @@
+---
+notion-id: 251ca4d7-cb7b-803d-883d-fe0d24b3c9db
+---
+[https://docs.firecrawl.dev/api-reference/endpoint/crawl-post?playground=open](https://docs.firecrawl.dev/api-reference/endpoint/crawl-post?playground=open)
+- **Scrape** → 单页抓取
+- **Crawl** → 全站爬取
+- **Map** → 网站结构
+- **Search** → 搜索功能
+- **Extract** → 数据提取
+- **Account** → 账户/使用情况
+
+### 网页查看抓取记录
+```bash
+#查看操作记录
+http://40.233.18.33:3002/admin/19841122Cy!/queues
+```
+### 查看单个抓取记录
+```bash
+#查看操作记录
+curl --request GET \
+  --url http://40.233.18.33:3002/v1/crawl/6e18d18b-51f5-41a7-adf4-4a975bea4c54 \
+  --header 'Authorization: Bearer 123456789'
+```
+### 抓取全局网页
+```bash
+#抓取页面
+curl --request POST \
+  --url http://40.233.18.33:3002/v1/crawl \
+  --header 'Authorization: Bearer 123456789' \
+  --header 'Content-Type: application/json' \
+  --data '{
+  "maxDepth": 2,
+  "ignoreSitemap": false,
+  "ignoreQueryParameters": false,
+  "limit": 10000,
+  "allowBackwardLinks": false,
+  "crawlEntireDomain": false,
+  "allowExternalLinks": false,
+  "allowSubdomains": false,
+  "scrapeOptions": {
+    "formats": [
+      "markdown"
+    ]
+  },
+  "zeroDataRetention": false,
+  "url": "https://www.3dmgame.com/"
+}'
+```
+### 抓取地图
+```bash
+curl --request POST \
+  --url http://40.233.18.33:3002/v1/map \
+  --header 'Authorization: Bearer 123456789' \
+  --header 'Content-Type: application/json' \
+  --data '{
+  "ignoreSitemap": false,
+  "sitemapOnly": false,
+  "includeSubdomains": true,
+  "limit": 5000,
+  "url": "https://www.3dmgame.com/"
+}'
+```

+ 13 - 0
01-AI与模型/AI绘画/ComfyUI+Wan2.1.md

@@ -0,0 +1,13 @@
+---
+notion-id: 1e7ca4d7-cb7b-8025-8c4c-d990095c8681
+---
+下载: https://github.com/comfyanonymous/ComfyUI 
+插件存放地址:`\ComfyUI\custom_nodes`
+插件一: https://github.com/Comfy-Org/ComfyUI-Manager 
+插件二: https://github.com/kijai/ComfyUI-WanVideoWrapper 
+插件三: https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite 
+插件四: https://github.com/kijai/ComfyUI-KJNodes 
+`\ComfyUI\models\diffusion_models` 
+`\ComfyUI\models\text_encoders`
+`\ComfyUI/models/vae`
+`\ComfyUI/models/clip_vision`

+ 20 - 0
01-AI与模型/AI绘画/Laman-clear/CUDA详细安装.md

@@ -0,0 +1,20 @@
+一、配置环境  
+1,查看CUDA版本  
+在搜索框输入NVIDIA,点击NVIDIA控制面板  
+选中“管理3D设置”,点击下方的“系统信息”  
+点击“组件”按钮,查看CUDA版本
+
+![Exported image](Exported%20image%2020260425172256-0.png)  
+
+2、根据所需版本下载,安装CUDA  
+[https://developer.nvidia.com/cuda-toolkit-archive](https://developer.nvidia.com/cuda-toolkit-archive)  
+3、下载cudnn  
+[https://developer.nvidia.com/cudnn](https://developer.nvidia.com/cudnn)  
+安装方法:解压,覆盖CUDA的文件  
+4、安装pytorch【必须在python环境下安装】  
+[https://pytorch.org/get-started/locally/](https://pytorch.org/get-started/locally/)  
+5、运行文件检查
+
+|   |   |
+|---|---|
+|参考操作|[https://blog.csdn.net/anmin8888/article/details/127910084](https://blog.csdn.net/anmin8888/article/details/127910084)|

+ 4 - 0
01-AI与模型/AI绘画/Laman-clear/Laman 启动指令.md

@@ -0,0 +1,4 @@
+常用指令:iopaint start --model=lama --device=cuda --port=8080
+   
+
+iopaint start --model=Sanster/AnyText --device=cuda --port=8080

+ 21 - 0
01-AI与模型/AI绘画/Laman-clear/Laman-clear安装教程.md

@@ -0,0 +1,21 @@
+Laman-clear安装地址CI  
+[https://github.com/Sanster/lama-cleaner](https://github.com/Sanster/lama-cleaner)
+ 
+NVIDIA CUDA 安装下载地址  
+[https://developer.nvidia.com/cuda-toolkit-archive](https://developer.nvidia.com/cuda-toolkit-archive)
+ 
+安装PyTorch支持cuda的  
+[https://pytorch.org/get-started/locally/#anaconda](https://pytorch.org/get-started/locally/#anaconda)  
+卸载当前的 PyTorch  
+pip uninstall torch torchvision torchaudio
+ 
+运行参数  
+lama-cleaner --model=lama --device=cuda --port=8080  
+插件参数  
+--enable-realesrgan --realesrgan-model RealESRGAN_x4plus --realesrgan-device cuda
+ 
+Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted  
+会将当前用户的 PowerShell 执行策略设置为无限制,这意味着可以在 PowerShell 中执行任何未经数字签名的脚本。  
+conda init --all  
+会初始化 conda 并将其添加到 shell 配置中,以便在打开新的终端时自动激活 conda 环境。这将确保 conda 在每次打开终端时都可以使用。  
+综合来说,这两个命令的效果是允许在 PowerShell 中执行未经数字签名的脚本,并且在每次打开终端时都自动激活 conda 环境

+ 28 - 0
01-AI与模型/AI绘画/Stable Diffusion WebUl/C站使用教程.md

@@ -0,0 +1,28 @@
+**A****i****模型类型**
+
+|   |   |
+|---|---|
+|Checkpoint|大模型/底模型=Dreambooth|
+|Lora|微调模型|
+|Hypernetwork|微调模型|
+|Embedding|Textual inversion=Embedding|
+|Textual inversion|基于文本的反演方法|
+
+**后缀名:**
+
+|   |   |   |
+|---|---|---|
+|Ckpt|后缀名|不受加密保护|
+|Safetensors|后缀名|收到加密保护|
+|Proued|模型版本|剪枝(参数减少),容量少|
+|Ema|模型版本|平滑模型参数|
+|Ft16,FT32|模型版本|FT32保留更多的小数,FT16精度小|
+ 
+**C****站模型使用流程关键:**
+
+|   |   |   |   |
+|---|---|---|---|
+|大模型|Stable Diffsuion|必备||
+|VAE模型|解码模型|必备|有些大模型自带VAE模型不需要额外挂载|
+|微调模型|LoRA,Embedding,Hypernetwork,Dreambooth(可作为大模型)|可选|均属于大模型基础上的微调模型,特定风格+特定人物|
+|关键词||||

+ 2 - 0
01-AI与模型/AI绘画/Stable Diffusion WebUl/Stable Diffusion远程控制.md

@@ -0,0 +1,2 @@
+高级选项→监听端口→开放远程连接  
+windows防火墙

+ 16 - 0
01-AI与模型/AI绘画/Stable Diffusion WebUl/【模型】推荐.md

@@ -0,0 +1,16 @@
+|   |   |
+|---|---|
+|Anything V5|二次元风格|
+|Counterfeit-V3.0|画风精美|
+|DreamShaper|平面维度到三维切换|
+|Rev Animated|2到3D的2.5D搭配Bindbox做IP形象|
+|Chilloumix|懂得抖动|
+|Realistic Vision|超写实|
+|ChostMix|人物魔幻的场景|
+|majicMIX lux|小姐姐|
+|Product Design  <br>(minialism-eddiemauro)|产品设计|
+|Cheese Daddy's Landscapes mix|美轮美奂的场景|
+
+|   |   |
+|---|---|
+|网址|[https://huggingface.co/](https://huggingface.co/)|

+ 2 - 0
01-AI与模型/AI绘画/Stable Diffusion WebUl/安装&用法.md

@@ -0,0 +1,2 @@
+整合包下载地址:  
+[https://www.bilibili.com/video/BV1iM4y1y7oA/?vd_source=3325b3b63259f51a5601b457e07d02cf](https://www.bilibili.com/video/BV1iM4y1y7oA/?vd_source=3325b3b63259f51a5601b457e07d02cf)

+ 7 - 0
01-AI与模型/AI绘画/Stable Diffusion WebUl/插件合计.md

@@ -0,0 +1,7 @@
+|   |   |   |   |
+|---|---|---|---|
+|名称|地址|功能|说明|
+|X/Y/Z PLOT|[https://github.com/xrpgame/xyz_plot_script](https://github.com/xrpgame/xyz_plot_script)|1、提示词替换 (替换提示词内容生产内容)  <br>2、迭代步数(查看每一步数生产的效果图)  <br>3、采样器(对比)  <br>4、图像随机种子  <br>5、X,Y,Z轴都能进行对比||
+|sd-webui-depth-lib|[https://github.com/jexom/sd-webui-depth-lib](https://github.com/jexom/sd-webui-depth-lib)|替换手部模型|抖音视频教程已收藏|
+|Controlnet|[https://github.com/lllyasviel/ControlNet](https://github.com/lllyasviel/ControlNet)<br><br>  <br><br>[https://github.com/lllyasviel/ControlNet-v1-1-nightly](https://github.com/lllyasviel/ControlNet-v1-1-nightly)|图像细节补充模型|[https://v.douyin.com/UFWy7Pf/](https://v.douyin.com/UFWy7Pf/)|
+|||||

+ 2 - 0
01-AI与模型/AI绘画/Stable Diffusion WebUl/炼丹.md

@@ -0,0 +1,2 @@
+下载地址  
+[https://www.bilibili.com/video/BV1Eo4y1w7yU/?spm_id_from=333.999.0.0&vd_source=3325b3b63259f51a5601b457e07d02cf](https://www.bilibili.com/video/BV1Eo4y1w7yU/?spm_id_from=333.999.0.0&vd_source=3325b3b63259f51a5601b457e07d02cf)

+ 8 - 0
01-AI与模型/API密钥/DeepSeek-Api.md

@@ -0,0 +1,8 @@
+
+|           名称           |                                             地址                                              |
+| :--------------------: | :-----------------------------------------------------------------------------------------: |
+| `base_url` (Anthropic) |                            `https://api.deepseek.com/anthropic`                             |
+|  `base_url` (OpenAI)   |                                 `https://api.deepseek.com`                                  |
+|    `LITELLM_MODEL`     |                                      `deepseek-v4-pro`                                      |
+|  `WECHAT_WEBHOOK_URL`  | `https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=9c550c2e-77bd-41f8-a2b9-81bb1ba552b5` |
+|          API           |                            `sk-8a62671966e1470bb1a6b223a9a549fa`                            |

+ 13 - 0
01-AI与模型/API密钥/MiniMax-Api.md

@@ -0,0 +1,13 @@
+https://www.minimaxi.com/
+
+**接口**
+
+```
+https://api.minimaxi.com/anthropic
+```
+
+**API Key**
+
+```
+sk-cp-52AdYLyq8PI-7dGh0AL5rEzrz0xRob5mqJrKfucsjPHApPXrCOKjTVhBrnINkGG54sdOWuWOCUWSM97Wm-lDEMZPZGWtdOB6qxuLijDOh55MgNvPdM1t-6U
+```

+ 26 - 0
01-AI与模型/API密钥/百度API.md

@@ -0,0 +1,26 @@
+百度OCR:
+
+网址:https://console.bce.baidu.com/ai-engine/old/#/ai/ocr/app/detail~appId=7696140
+
+```
+应用名称:zhensolid
+
+应用描述:个人学习
+
+AppID:7696140
+
+API Key:TOxLD8wDkkcGmDAKyQhI1Q7o
+
+Secret Key:pqkUBThvqAKxQoGOWlsXi67uxCTtmJJ5
+```
+
+
+百度翻译:
+
+网址:https://fanyi-api.baidu.com/manage/developer
+
+```
+APP ID:20220426001191098
+
+密钥:PkQPdRwkxUbfb1AnbjMl
+```

+ 2 - 0
01-AI与模型/API密钥/腾讯云ASR-Api.md

@@ -0,0 +1,2 @@
+APPID:1253619497
+密钥:AKID85mCKCn7AwShfMnwoPkoa5JGhrkMhlY4

+ 67 - 0
01-AI与模型/Ai 量化/Gemma 分析数据.md

@@ -0,0 +1,67 @@
+---
+title: "AI量化"
+source: "https://gemini.google.com/app/b2be0517fe8ca7d7?android-min-version=301356232&ios-min-version=322.0&is_sa=1&campaign_id=test_autosubmit&pt=9008&mt=8&_gl=1*1cjrdlk*_gcl_au*MTMzOTcwMTM0OS4xNzc0NTgyOTc2LjYxODk4Mjg2Ni4xNzc0NTgzMzk2LjE3NzQ1ODMzOTU."
+author:
+published:
+created: 2026-06-19
+description: "Gemini conversation with 4 messages"
+tags:
+  - "clippings"
+---
+## 一、 国内 A 股、期货量化:首选“老三样”与 AI 新贵
+
+国内市场受到券商接口和数据合规的限制,通常推荐以下几款:
+
+### 1\. 迅投 QMT / 国泰安极客(Ptrade)—— 散户及半专业交易者的“大杀器”
+
+- **定位:** 券商官方合作的实盘交易终端。
+- **适用人群:** 有一定 Python 基础、希望进行 **A 股/国内期货实盘**的投资者。
+- **核心优势:** 目前只要你在华泰、中信、国泰君安等大券商开户,达到一定资金门槛(通常是 10 万到 50 万人民币),券商就会**免费提供**。QMT 最大的优势在于自带高频 tick 数据和直接下单到券商柜台的能力,省去了自己搭建交易系统的麻烦。
+
+### 2\. 米筐(Ricequant)/ 聚宽(JoinQuant)—— 最友好的 Python 网页端平台
+
+- **定位:** 网页端一站式策略研究与回测平台。
+- **适用人群:** Python 初学者、策略研究员。
+- **核心优势:** 不需要你在本地安装复杂的数据库,打开网页就能用。平台自带清洗好的历史日线、分钟线数据以及财务指标,提供完善的 Python 回测框架(API 极其人性化),非常适合用来验证自己的交易想法。
+
+### 3\. BigQuant —— AI 与机器学习量化先驱
+
+- **定位:** 融合了大语言模型(LLM)与机器学习的 AI 量化平台。
+- **适用人群:** 想尝试 AI 选股、多因子合成、机器学习预测的进阶玩家。
+- **核心优势:** 2026 年 BigQuant 已经深度集成了 **QuantChat(AI量化开发助手)** 和知识库,你可以直接用自然语言让 AI 帮你写因子。它内置了诸如 DNN、LightGBM、XGBoost 以及微软的 Qlib 因子库,是目前国内做“AI+量化”最成熟的平台。
+
+## 二、 全球多资产量化(美股/Crypto/外汇):首选国际顶流
+
+如果你主要做海外市场,或者追求极端的执行速度,以下软件在国际上处于统治地位:
+
+### 1\. QuantConnect —— 2026年全球高评价的云端量化平台
+
+- **定位:** 开源、云端托管的全球多资产量化引擎(基于开源的 Lean 引擎)。
+- **支持语言:** Python、C#。
+- **核心优势:** 真正的“研究到实盘一键直达”。它直接对接了 Interactive Brokers(盈透证券)、Binance、Coinbase 等全球主流券商和交易所。数据涵盖美股、期权、期货、外汇和加密货币,回测极其精准,几乎没有滑点误差。
+
+### 2\. TradingView (Pine Script) —— 全球最火的视觉化回测与信号触发器
+
+- **定位:** 社交型图表与轻量级量化平台。
+- **适用人群:** 偏好技术指标择时、趋势追踪、不希望写太复杂代码的交易者。
+- **核心优势:** 使用自研的 **Pine Script** 语言,几行代码就能写出一个策略。TradingView 拥有全球最大的交易者社区,你可以直接复制别人的开源策略。通过 Webhook 信号,它可以轻松对接各种自动化下单机器人。
+
+### 3\. NinjaTrader / MetaTrader 5 (MT5) —— 经典专业级桌面量化软件
+
+- **定位:** 经典的硬核桌面客户端。
+- **NinjaTrader:** 主要用于**期货量化**,基于 C# / .NET 开发,具备多品种、多周期组合回测能力,市场重放(Market Replay)功能极其强大。
+- **MT5:** 全球**外汇和 CFD** 的绝对王者。使用 MQL5 语言,事件驱动机制反应极快。
+
+## 三、 纯代码极客流:完全本地化的开源框架
+
+如果你不想把策略上传到任何人的服务器上,追求 100% 的隐私和自由度,可以自己在电脑上搭建以下 Python 开源框架:
+
+- **Backtrader:** 全球最流行的 Python 离线回测框架,基于事件驱动,完美支持多品种同时回测,分析器(Analyzers)非常丰富。
+- **VeighNa (VN.py):** 国内开源量化的扛把子,专门针对**国内期货(CTP接口)**、A股和境外加密货币设计,自带图形界面,非常适合实盘挂机。
+- **QuantRocket:** Python 优先的专业级量化流水线软件,适合需要处理海量基础数据、搭建多策略投资组合的高阶散户和小型私募。
+
+### 📌 总结:你该选哪一个?
+
+- 如果你是**A股散户,有一点代码基础** ➡️ 联系你的券商客户经理,申请免费的 **QMT** 或 **Ptrade**。
+- 如果你**不想配置复杂的本地环境,只想快点写代码测试** ➡️ 登录 **米筐(Ricequant)** 或 **聚宽(JoinQuant)** 的网页端。
+- 如果你想玩**美股或加密货币自动化** ➡️ 首选 **QuantConnect**(硬核代码流)或 **TradingView**(图表技术流)。

+ 443 - 0
01-AI与模型/OpenClaw/OpenClaw 企业微信机器人部署与Skills指南.md

@@ -0,0 +1,443 @@
+---
+tags:
+  - openclaw
+  - 企业微信
+  - wecom
+  - 机器人
+  - skill
+created: 2026-07-04
+---
+
+# OpenClaw 企业微信机器人部署与 Skills 指南
+
+## 一、概述
+
+OpenClaw 企业微信插件(`@wecom/wecom-openclaw-plugin`)由腾讯企业微信团队官方维护,支持两种模式:
+
+| 模式 | 连接方式 | 消息格式 | 适用场景 |
+|------|----------|----------|----------|
+| **Bot 模式**(智能机器人) | WebSocket 长连接 | JSON | 快速接入,流式回复 |
+| Agent 模式(自建应用) | HTTP Webhook 回调 | XML 加密 | 企业应用,API 驱动 |
+
+> 本文档聚焦 Bot 模式(WebSocket),这也是最常用的方式。
+
+---
+
+## 二、前提条件
+
+- OpenClaw >= 2026.3.28
+- 企业微信管理后台创建「长连接方式」智能机器人,获取 **Bot ID** 和 **Secret**
+  - 创建入口:https://open.work.weixin.qq.com/help2/pc/cat?doc_id=21657#2.1
+
+---
+
+## 三、部署步骤
+
+### 3.1 安装插件
+
+```bash
+# 一键安装(推荐)
+npx -y @wecom/wecom-openclaw-cli install
+
+# 强制重装
+npx -y @wecom/wecom-openclaw-cli install --force
+```
+
+### 3.2 启用插件
+
+安装后插件默认处于 **disabled** 状态,需两步启用:
+
+```bash
+# 1. 将插件加入白名单
+openclaw config set plugins.allow '["deepseek","searxng","memory-core","wecom-openclaw-plugin"]'
+
+# 2. 重启 gateway
+openclaw daemon restart
+```
+
+> 验证:`openclaw plugins list | grep wecom` 应显示 `enabled`
+
+### 3.3 配置 Bot 凭证
+
+```bash
+openclaw config set channels.wecom.botId "你的BotID"
+openclaw config set channels.wecom.secret "你的Secret"
+openclaw config set channels.wecom.enabled true
+openclaw daemon restart
+```
+
+### 3.4 配置 wecom_mcp 工具白名单
+
+Skills 依赖 `wecom_mcp` MCP 工具,需确保在 `tools.alsoAllow` 中:
+
+```bash
+openclaw config set tools.alsoAllow '["wecom_mcp"]'
+```
+
+### 3.5 验证
+
+```bash
+openclaw status
+# 应看到:WeCom | ON | OK | configured
+```
+
+---
+
+## 四、配置参考
+
+### Bot 模式核心配置
+
+| 配置项 | 说明 | 默认值 |
+|--------|------|--------|
+| `channels.wecom.enabled` | 启用通道 | `false` |
+| `channels.wecom.botId` | 机器人 Bot ID | — |
+| `channels.wecom.secret` | 机器人 Secret | — |
+| `channels.wecom.connectionMode` | 连接模式 | `websocket` |
+| `channels.wecom.websocketUrl` | WebSocket 端点 | `wss://openws.work.weixin.qq.com` |
+| `channels.wecom.sendThinkingMessage` | 发送"思考中"占位 | `true` |
+
+### 访问控制
+
+| 配置项 | 说明 | 可选值 | 默认值 |
+|--------|------|--------|--------|
+| `channels.wecom.dmPolicy` | 私聊策略 | `pairing`/`open`/`allowlist`/`disabled` | `open` |
+| `channels.wecom.groupPolicy` | 群聊策略 | `open`/`allowlist`/`disabled` | `open` |
+| `channels.wecom.allowFrom` | 私聊白名单 | userid 数组 | `[]` |
+| `channels.wecom.groupAllowFrom` | 群聊白名单 | chatid 数组 | `[]` |
+
+---
+
+## 五、内置 Skills 详解(12个)
+
+> 所有 Skill 通过 `wecom_mcp` MCP 工具调用,格式:`wecom_mcp call <品类> <接口> '<JSON入参>'`
+
+### 5.1 wecom-contact — 通讯录查询
+
+**触发词**:查同事、找某人、通讯录
+
+| 接口 | 用途 |
+|------|------|
+| `get_userlist` | 获取可见范围内全部成员(userid、姓名、别名) |
+
+```
+wecom_mcp call contact get_userlist '{}'
+```
+
+### 5.2 wecom-msg — 消息管理 💬
+
+**触发词**:查看消息、看聊天记录、发消息、最近有什么消息
+
+| 接口 | 用途 | chat_type |
+|------|------|-----------|
+| `get_msg_chat_list` | 按时间范围查会话列表 | — |
+| `get_message` | 拉取会话消息(7天内) | 1=单聊 2=群聊 |
+| `get_msg_media` | 下载图片/文件/语音/视频 | — |
+| `send_message` | 发送文本消息 | 1=单聊 2=群聊 |
+
+```
+# 获取会话列表
+wecom_mcp call msg get_msg_chat_list '{"begin_time":"2026-07-01 00:00:00","end_time":"2026-07-04 23:59:59"}'
+
+# 拉取群消息
+wecom_mcp call msg get_message '{"chat_type":2,"chatid":"群ID","begin_time":"2026-07-01 00:00:00","end_time":"2026-07-04 23:59:59"}'
+
+# 发送消息
+wecom_mcp call msg send_message '{"chat_type":2,"chatid":"群ID","msgtype":"text","text":{"content":"你好"}}'
+```
+
+> **限制**:消息拉取仅支持最近 7 天,时间格式 `YYYY-MM-DD HH:mm:ss`
+
+### 5.3 wecom-doc — 文档管理
+
+**触发词**:企业微信文档、创建文档、写个文档、改写文档
+
+| 接口 | 用途 |
+|------|------|
+| `create_doc` | 新建空白文档 |
+| `get_doc_content` | 以 Markdown 读取文档内容 |
+| `edit_doc_content` | 用 Markdown 覆写文档内容 |
+
+```
+wecom_mcp call doc create_doc '{"doc_name":"会议纪要"}'
+wecom_mcp call doc get_doc_content '{"docid":"xxx"}'
+wecom_mcp call doc edit_doc_content '{"docid":"xxx","content":"# 新内容"}'
+```
+
+> 支持通过 `docid` 或文档 URL 定位。URL 格式:`https://doc.weixin.qq.com/doc/xxx`
+
+### 5.4 wecom-sheet — 在线表格
+
+**触发词**:企业微信表格、在线表格、Excel
+
+| 接口 | 用途 |
+|------|------|
+| `create_doc` | 新建在线表格(doc_type=3) |
+| `get_doc_content` | 读取为 Markdown |
+| `sheet_get_info` | 获取子表列表和基础信息 |
+
+```
+wecom_mcp call doc create_doc '{"doc_type":3,"doc_name":"数据统计"}'
+```
+
+> URL 格式:`https://doc.weixin.qq.com/sheet/xxx`
+
+### 5.5 wecom-smartsheet — 智能表格
+
+**触发词**:智能表格、smartsheet
+
+| 接口 | 用途 |
+|------|------|
+| `create_doc` | 新建智能表格(doc_type=10) |
+| `smartsheet_get_sheet` | 查询子表 |
+| `smartsheet_add_sheet` | 添加子表 |
+| `smartsheet_get_fields` | 查询字段 |
+| `smartsheet_add_fields` | 添加字段 |
+| `smartsheet_get_records` | 查询记录 |
+
+```
+wecom_mcp call doc create_doc '{"doc_type":10,"doc_name":"项目管理"}'
+```
+
+> URL 格式:`https://doc.weixin.qq.com/smartsheet/xxx`
+
+### 5.6 wecom-smartpage — 智能文档
+
+**触发词**:智能文档、智能主页
+
+| 接口 | 用途 |
+|------|------|
+| `smartpage_create` | 将 Markdown 发布为智能文档 |
+| `smartpage_export_task` | 提交导出任务(异步) |
+| `smartpage_get_export_result` | 查询导出结果 |
+
+```
+wecom_mcp call doc smartpage_create '{"doc_name":"周报","content":"# 本周工作总结"}'
+```
+
+> URL 格式:`https://doc.weixin.qq.com/smartpage/xxx`
+
+### 5.7 wecom-meeting — 会议管理
+
+**触发词**:创建会议、预约会议、查看会议、取消会议
+
+| 接口 | 用途 |
+|------|------|
+| `create_meeting` | 创建预约会议 |
+| `list_user_meetings` | 查询会议列表(±30天) |
+| `get_meeting_info` | 获取会议详情 |
+| `cancel_meeting` | 取消会议 |
+| `set_invite_meeting_members` | 更新参与人 |
+
+```
+wecom_mcp call meeting create_meeting '{"title":"项目评审","start_time":1719993600,"end_time":1719997200}'
+```
+
+### 5.8 wecom-schedule — 日程管理 📅
+
+**触发词**:创建日程、安排日程、查看日程、闲忙查询
+
+| 接口 | 用途 |
+|------|------|
+| `get_schedule_list_by_range` | 查询日程列表 |
+| `get_schedule_detail` | 获取日程详情 |
+| `create_schedule` | 创建日程 |
+| `update_schedule` | 修改日程 |
+| `cancel_schedule` | 取消日程 |
+| `check_availability` | 查询成员闲忙状态 |
+
+```
+wecom_mcp call schedule create_schedule '{"subject":"团队周会","start_time":"2026-07-05 10:00:00","end_time":"2026-07-05 11:00:00"}'
+```
+
+### 5.9 wecom-todo — 待办事项
+
+**触发词**:创建待办、分派任务、标记完成、查看待办
+
+| 接口 | 用途 |
+|------|------|
+| `search_todo_userid` | 按姓名搜索 userid |
+| `create_todo` | 创建待办 |
+| `update_todo` | 更新待办内容/时间 |
+| `change_todo_user_status` | 更改用户状态(接受/拒绝/完成) |
+| `get_todo_list` | 获取待办列表 |
+| `get_todo_detail` | 批量获取待办详情 |
+| `delete_todo` | 删除待办 |
+
+```
+wecom_mcp call todo create_todo '{"content":"完成Q3报告","follower":[{"userid":"zhangsan"}]}'
+```
+
+### 5.10 wecom-send-media — 发送文件
+
+**触发词**:发送文件、分享图片、传个文件
+
+在回复中使用 `MEDIA:` 指令发送本地文件:
+
+```
+MEDIA:/path/to/image.png
+MEDIA:/path/to/document.pdf
+```
+
+> 大小限制:图片 10MB、视频 10MB、语音 2MB(AMR)、文件 20MB。超限自动降级。
+
+### 5.11 wecom-send-template-card — 模板卡片
+
+**触发词**:发通知、投票、方案选择、多维度选择
+
+| 卡片类型 | 用途 |
+|----------|------|
+| `text_notice` | 文本通知 |
+| `news_notice` | 图文通知 |
+| `button_interaction` | 按钮交互 |
+| `vote_interaction` | 投票表决 |
+| `multiple_interaction` | 多维度选择 |
+
+```
+# 投票
+wecom_mcp call msg send_template_card '{"chat_type":2,"chatid":"群ID","template_card_type":"vote_interaction",...}'
+```
+
+### 5.12 wecom-preflight — 前置检查
+
+**用途**:首次使用前检查 `wecom_mcp` 是否已加入工具白名单。其他 Skill 会自动触发此检查。
+
+---
+
+## 六、文档品类 URL 识别速查
+
+| URL 模式 | 品类 | 对应 Skill |
+|----------|------|------------|
+| `doc.weixin.qq.com/doc/*` | 普通文档 | `wecom-doc` |
+| `doc.weixin.qq.com/sheet/*` | 在线表格 | `wecom-sheet` |
+| `doc.weixin.qq.com/smartsheet/*` | 智能表格 | `wecom-smartsheet` |
+| `doc.weixin.qq.com/smartpage/*` | 智能文档 | `wecom-smartpage` |
+
+---
+
+## 七、群消息获取
+
+### 方式一:被动接收(默认)
+
+把机器人加入群聊即可。群策略默认 `open`,所有群都能 @机器人 对话。
+
+```bash
+# 查看/设置群策略
+openclaw config get channels.wecom.groupPolicy
+openclaw config set channels.wecom.groupPolicy open
+```
+
+### 方式二:主动拉取历史消息
+
+通过 `wecom-msg` Skill 的 `get_message`(chat_type=2)拉取 7 天内的群消息:
+
+```bash
+# 先获取会话列表找到群 chatid
+wecom_mcp call msg get_msg_chat_list '{"begin_time":"2026-07-01 00:00:00","end_time":"2026-07-04 23:59:59"}'
+
+# 拉取该群消息
+wecom_mcp call msg get_message '{"chat_type":2,"chatid":"群的chatid","begin_time":"2026-07-01 00:00:00","end_time":"2026-07-04 23:59:59"}'
+```
+
+### 群消息处理流程
+
+1. `get_msg_chat_list` → 查找目标群的 chatid
+2. `get_message(chat_type=2)` → 拉取消息
+3. `wecom-contact get_userlist` → userid 转姓名
+4. 展示消息(文本 / 图片 / 文件 / 语音 / 视频)
+5. 非文本消息需调用 `get_msg_media` 下载
+
+---
+
+## 八、调试与维护
+
+### 查看状态
+
+```bash
+openclaw status                    # 快速状态
+openclaw plugins list              # 插件列表
+openclaw config get channels       # 通道配置
+openclaw doctor                    # 诊断修复
+```
+
+### 查看日志
+
+```bash
+openclaw logs --follow             # 实时日志
+openclaw logs --follow | grep wecom  # 只看 WeCom 相关
+```
+
+### 更新插件
+
+```bash
+openclaw plugins update wecom-openclaw-plugin
+```
+
+### 更新安装工具
+
+```bash
+npx -y @wecom/wecom-openclaw-cli install --force
+```
+
+### 重启 Gateway
+
+```bash
+openclaw daemon restart
+```
+
+---
+
+## 九、常见问题
+
+### Q1: 安装后机器人没反应?
+
+按以下顺序排查:
+
+1. `openclaw plugins list` — 确认 wecom-openclaw-plugin 状态为 `enabled`
+2. `openclaw config get channels.wecom` — 确认 botId/secret/enabled 已配置
+3. `openclaw status` — 确认 WeCom 通道 State=OK
+4. `openclaw logs --follow` — 查看实时日志
+
+> 常见根因:插件 installed 但 disabled,需要两步:加入 `plugins.allow` + 重启 gateway。
+
+### Q2: 插件 enabled 但仍无法使用 Skills?
+
+检查 `tools.alsoAllow` 是否包含 `wecom_mcp`:
+
+```bash
+openclaw config get tools.alsoAllow
+# 应包含 "wecom_mcp"
+```
+
+### Q3: 消息拉取不到?
+
+- 仅支持最近 **7 天** 内的消息
+- 时间格式必须为 `YYYY-MM-DD HH:mm:ss`
+- chat_type: 1=单聊, 2=群聊
+
+### Q4: Skills 调用报错?
+
+所有 Skill 需先通过 `wecom-preflight` 检查。确保 `tools.allow` 或 `tools.alsoAllow` 中包含 `wecom_mcp`。
+
+### Q5: 群消息不想所有人都能用?
+
+```bash
+# 白名单模式(仅指定群可用)
+openclaw config set channels.wecom.groupPolicy allowlist
+openclaw config set channels.wecom.groupAllowFrom '["群chatid1","群chatid2"]'
+```
+
+---
+
+## 十、参考链接
+
+- [企业微信 AI Bot 官方文档](https://open.work.weixin.qq.com/help?doc_id=21657)
+- [企业微信 CLI 开源项目](https://open.work.weixin.qq.com/help2/pc/21676)
+- [OpenClaw 文档](https://docs.openclaw.ai/)
+- [插件完整 README](https://github.com/WeCom/wecom-openclaw-plugin)
+- [WeCom 插件配置指引(腾讯文档)](https://doc.weixin.qq.com/doc/w3_AFYA1wY6ACoCNRxfnyGRJQaSa6jjJ?scode=AJEAIQdfAAo0RJmzxLAFYA1wY6ACo)
+
+## 相关笔记
+
+- [[Openclaw 手册]] — OpenClaw 基础操作
+- [[Openclaw Skill]] — 插件与技能生态
+- [[Openclaw 技巧]] — 使用技巧与提示词

+ 8 - 0
01-AI与模型/OpenClaw/OpenClaw.md

@@ -0,0 +1,8 @@
+---
+notion-id: 329ca4d7-cb7b-80b0-b278-eee2bf5dfe10
+---
+
+[[Openclaw Skill]]
+[[Openclaw 技巧]]
+[[Openclaw 手册]]
+[[Openclaw For Windows]]

+ 17 - 0
01-AI与模型/OpenClaw/Openclaw For Windows.md

@@ -0,0 +1,17 @@
+---
+notion-id: 320ca4d7-cb7b-8031-9f99-c972d0077a2f
+---
+# Openclaw官方网站
+[https://openclaw.ai/](https://openclaw.ai/)
+windows安装指令
+```powershell
+iwr -useb https://openclaw.ai/install.ps1 | iex
+
+ Set-ExecutionPolicy Unrestricted -Scope CurrentUser  #windows配置需要关闭禁用脚本
+```
+```shell
+curl -fsSL https://openclaw.ai/install.cmd -o install.cmd && install.cmd && del install.cmd
+```
+> [!warning] ⚠️
+> 如果提示无法安装手动下载`nodejs `和`git`安装包
+> npm出现无法安装的情况,先安装`pnpm`,然后通过pnpm安装`openclaw`即可

+ 136 - 0
01-AI与模型/OpenClaw/Openclaw Skill.md

@@ -0,0 +1,136 @@
+---
+notion-id: 322ca4d7-cb7b-805c-9872-e0df50d75d2c
+---
+Agent只识别自己工作区的Skill文件
+# 一、技能&插件
+技能下载网站[Clawhub](https://clawhub.ai/),[Smithery](https://smithery.ai/),[Skilhub](https://skillhub.tencent.com/#categories),[Skill-rank](https://skills-rank.com/),
+
+| 工具名称 | 功能 | 使用技巧 |
+| --- | --- | --- |
+| [openclaw-workspace](https://github.com/win4r/openclaw-workspace/blob/main/README_CN.md) | 工作区的文件审计/精炼 |   |
+| [memos-claw](https://memos-claw.openmem.net/#why) | Openclaw记忆插件 |   |
+| [**ClawTeam**](https://github.com/HKUDS/ClawTeam) | 多Agent协作工作 |   |
+| self-improving-agent | 能够自我改进的代理系统 | 需要配置,仔细预读配置 |
+| find-skills | 查找技能 | 自动查找 |
+| Summarize | 用摘要CLI来总结URL或文件 |   |
+| Skill Vetter | 技能审计 |   |
+| Agent Browser | 浏览器CLI。 |   |
+| Multi Search Engine | 多搜索引擎集成 |   |
+| Humanizer | 去除文本中人工智能生成的痕迹。 | 提示词:减少人工智能生成的痕迹,更自然 |
+|   |   |   |
+
+> [!note]+ ## **Memory-lancedb-pro:【长期记忆】**
+> ```json
+> 安装方式:
+> 
+> 对话:
+> 为我安装:https://github.com/CortexReach/memory-lancedb-pro-skill
+> 
+> 对话:
+> 【可用ollam替换】
+> jina AI的API-KEY:jina_356eeda3c8074a3c9b703e543696e872-cgnMOOLZFCTMPRjEuPO14-FsbtJ
+> 
+> 请帮我搭建:memory-lancedb-pro
+> 
+> 对话;
+> 对于这个插件还需要什么优化配置的,帮我检查下
+> ```
+> [https://github.com/CortexReach/memory-lancedb-pro-skill](https://github.com/CortexReach/memory-lancedb-pro-skill)
+> [!note]+ ## **Agency-agents-zh【多agent配置】**
+> > [!note]+ ### Agent和Skil调用参考文献
+> > ## 🔄 正确的优先级
+> > Copy
+> > ```plain text
+> > 用户请求
+> >    ↓
+> > 1️⃣ 优先匹配 agent(能独立执行任务)
+> >    ↓ 没有匹配
+> > 2️⃣ 搜索 skill(需要特定能力/指南)
+> >    ↓ 没有匹配
+> > 3️⃣ 自己执行
+> > ```
+> > 
+> > ---
+> > ## 🆚 Agent vs Skill 的区别
+> > 
+> > | **维度** | **Agent** | **Skill** |
+> > | --- | --- | --- |
+> > | **是什么** | 独立的 AI 实例 | 能力指南/文档 |
+> > | **用途** | 执行完整任务 | 指导我怎么做 |
+> > | **调用方式** | `sessions_spawn` | `skill_get` / `skill_search` |
+> > | **示例** | `marketing-seo-specialist` | `xlsx` (Excel 处理技能) |
+> > 
+> > ---
+> > ## 📋 使用场景对比
+> > ### 优先找 Agent 的场景
+> > Copy
+> > ```plain text
+> > "找个 SEO 专家分析这个网站" → marketing-seo-specialist
+> > "让前端开发写个组件" → engineering-frontend-developer
+> > "叫叙事学家写篇文章" → academic-narratologist
+> > ```
+> > ### 优先找 Skill 的场景
+> > Copy
+> > ```plain text
+> > "怎么处理 Excel 文件" → xlsx skill
+> > "如何创建 Word 文档" → docx skill
+> > "有没有处理 PDF 的技能" → pdf skill
+> > ```
+> > 
+> > ---
+> > ## ✅ 改进后的流程
+> > **你的请求** → **我的判断逻辑**:
+> > 
+> > | **请求类型** | **第一反应** | **原因** |
+> > | --- | --- | --- |
+> > | "找个/叫个/让 xxx 做..." | 匹配 agent | 明确需要独立执行者 |
+> > | "怎么处理/怎么做..." | 搜索 skill | 需要方法/指南 |
+> > | "有没有 xxx 的技能" | 搜索 skill | 明确问技能 |
+> > | 模糊请求 | 先问清楚 | 避免猜错 |
+> > 
+> > ---
+> > ## 💡 总结
+> > - **优先找 agent** = 改变第一反应路径
+> > - **不影响找 skill** = 没有 agent 匹配时仍会搜索 skill
+> > - **更准确** = 根据你的措辞判断意图
+> [https://github.com/jnMetaCode/agency-agents-zh](https://github.com/jnMetaCode/agency-agents-zh)
+> 克隆仓库之后,需要告知openclaw让他去配置调用agent调用子agent,如下
+> ```powershell
+>         "id": "main",
+>         "subagents": {
+>           "allowAgents": ["*"]
+>         }
+> ```
+> ## 🗣️ 使用方式
+> *1. 自然语言激活 — 在对话中描述需要的角色*
+> *2. sessions_spawn — 指定 agentId 调用(但这个失败了)*
+> *3. ClawTeam — 创建多 Agent 协作*
+> **可参考:**
+> ```powershell
+> # 方法 1: 使用 /subagents spawn 命令
+> /subagents spawn <任务描述>
+> 
+> # 方法 2: 在对话中请求
+> "帮我 spawn 一个 marketing-seo-specialist 来分析 SEO 数据"
+> 
+> # 方法 3: 使用 sessions_spawn API
+> sessions_spawn(agentId="marketing-seo-specialist", task="...")
+> ```
+> **直接说就行:**
+> 
+> | **你想做** | **说法示例** |
+> | --- | --- |
+> | 写代码 | "找个前端开发帮我写个登录页面" |
+> | 分析数据 | "让数据工程师分析一下这个 CSV" |
+> | 设计 UI | "叫 UI 设计师优化一下这个界面" |
+> | 写文案 | "找个营销专家写个产品描述" |
+> | 审代码 | "让代码审查员看看这个 PR" |
+> | 做翻译 | "需要翻译这份技术文档" |
+> [!note]+ ## Lossless-claw-enhanced【短期记忆】
+> [https://github.com/win4r/lossless-claw-enhanced](https://github.com/win4r/lossless-claw-enhanced)
+> 安装方式:推荐手动安装,避免ai模型导致安装错误导致bug
+> ```powershell
+> 阅读这个项目的README,为我本地的OpenClaw安装这个插件并进最佳设置:https://github.com/win4r/lossless-claw-enhanced
+> ```
+企业微信插件更新:`openclaw plugins update wecom-cpenclaw-plugin`
+飞书更新:`npx -y @larksuite/openclaw-lark update` 

+ 243 - 0
01-AI与模型/OpenClaw/Openclaw 手册.md

@@ -0,0 +1,243 @@
+---
+notion-id: 322ca4d7-cb7b-80e9-9289-f41b60f186e5
+---
+[https://openclawgithub.cc/](https://openclawgithub.cc/)
+[https://openclaw.qt.cool/](https://openclaw.qt.cool/)
+[https://docs.openclaw.ai/zh-CN](https://docs.openclaw.ai/zh-CN)
+[https://github.com/datawhalechina/hello-claw](https://github.com/datawhalechina/hello-claw)
+```powershell
+~/.openclaw/workspace/
+├── AGENTS.md       # 代理调度规则与标准作业程序
+├── BOOTSTRAP.md    # 初始化序列与核心系统提示词
+├── HEARTBEAT.md    # 定时执行逻辑与主动任务状态自检
+├── IDENTITY.md     # 代理身份定义与系统边界约束
+├── MEMORY.md       # 长期上下文数据与既定规则的持久化存储
+├── SOUL.md         # 响应语气、行为特征及输出格式配置
+├── TOOLS.md        # 工具授权注册表及调用参数规范
+├── USER.md         # 用户画像数据,包含特定偏好与交互限制配置
+├── memory/         # 日常运行日志与短期上下文存储
+└── skills/         # 已安装的第三方技能扩展目录
+```
+Openclaw常用指令:
+```powershell
+对话栏输入:/reset或/new    #新建对话
+
+openclaw gateway  #启动网关
+
+openclaw onboard --install-daemon  #新手引导并且启动守护
+
+openclaw dashboard  #启动WEB-UI
+
+openclaw agents add zhensolid --workspace ~/my-agents/zhensolid  #新建agent
+
+openclaw models list  #查看模型
+
+openclaw channels list  #查看渠道
+
+openclaw skills list  #查看技能
+
+# 生产环境启动
+openclaw gateway \
+  --port 18789 \
+  --host 0.0.0.0 \
+  --daemon \
+  --log-level warn \
+  --config /etc/openclaw/config.json
+
+
+openclaw update --channel stable #更新
+
+```
+openclaw配置实例模板
+# 默认模板
+[](IMG-20260516155631628.json)
+[](IMG-20260516155631634.json)
+```json
+{
+    "meta": {
+        "lastTouchedVersion": "2026.3.11",
+        "lastTouchedAt": "2026-03-13T07:01:23.114Z"
+    },
+    "wizard": {
+        "lastRunAt": "2026-03-11T09:01:03.991Z",
+        "lastRunVersion": "2026.3.8",
+        "lastRunCommand": "onboard",
+        "lastRunMode": "local"
+    },
+    "models": {
+        "mode": "merge",
+        "providers": {
+            "bailian": {
+                "baseUrl": "https://coding.dashscope.aliyuncs.com/v1",
+                "apiKey": "sk-sp-ca49741d09e64c439829407de26873cd",
+                "api": "openai-completions",
+                "models": [
+                    {
+                        "id": "qwen3.5-plus",
+                        "name": "qwen3.5-plus",
+                        "reasoning": false,
+                        "input": [
+                            "text",
+                            "image"
+                        ],
+                        "contextWindow": 1000000,
+                        "maxTokens": 65536
+                    },
+                    {
+                        "id": "qwen3-max-2026-01-23",
+                        "name": "qwen3-max-2026-01-23",
+                        "reasoning": false,
+                        "input": [
+                            "text"
+                        ],
+                        "contextWindow": 262144,
+                        "maxTokens": 65536
+                    },
+                    {
+                        "id": "qwen3-coder-next",
+                        "name": "qwen3-coder-next",
+                        "reasoning": false,
+                        "input": [
+                            "text"
+                        ],
+                        "contextWindow": 262144,
+                        "maxTokens": 65536
+                    },
+                    {
+                        "id": "qwen3-coder-plus",
+                        "name": "qwen3-coder-plus",
+                        "reasoning": false,
+                        "input": [
+                            "text"
+                        ],
+                        "contextWindow": 1000000,
+                        "maxTokens": 65536
+                    },
+                    {
+                        "id": "MiniMax-M2.5",
+                        "name": "MiniMax-M2.5",
+                        "reasoning": false,
+                        "input": [
+                            "text"
+                        ],
+                        "contextWindow": 204800,
+                        "maxTokens": 131072
+                    },
+                    {
+                        "id": "glm-5",
+                        "name": "glm-5",
+                        "reasoning": false,
+                        "input": [
+                            "text"
+                        ],
+                        "contextWindow": 202752,
+                        "maxTokens": 16384
+                    },
+                    {
+                        "id": "glm-4.7",
+                        "name": "glm-4.7",
+                        "reasoning": false,
+                        "input": [
+                            "text"
+                        ],
+                        "contextWindow": 202752,
+                        "maxTokens": 16384
+                    },
+                    {
+                        "id": "kimi-k2.5",
+                        "name": "kimi-k2.5",
+                        "reasoning": false,
+                        "input": [
+                            "text",
+                            "image"
+                        ],
+                        "contextWindow": 262144,
+                        "maxTokens": 32768
+                    }
+                ]
+            }
+        }
+    },
+    "agents": {
+        "defaults": {
+            "model": {
+                "primary": "bailian/qwen3.5-plus"
+            },
+            "models": {
+                "bailian/qwen3.5-plus": {},
+                "bailian/qwen3-max-2026-01-23": {},
+                "bailian/qwen3-coder-next": {},
+                "bailian/qwen3-coder-plus": {},
+                "bailian/MiniMax-M2.5": {},
+                "bailian/glm-5": {},
+                "bailian/glm-4.7": {},
+                "bailian/kimi-k2.5": {}
+            },
+            "workspace": "C:\\Users\\ZLSH\\.openclaw\\workspace",
+            "compaction": {
+                "mode": "safeguard"
+            },
+            "maxConcurrent": 4,
+            "subagents": {
+                "maxConcurrent": 8
+            }
+        },
+        "list": [
+            {
+                "id": "main",
+                "model": "bailian/MiniMax-M2.5",
+                "identity": {
+                    "theme": "default"
+                }
+            }
+        ]
+    },
+    "messages": {
+        "ackReactionScope": "group-mentions"
+    },
+    "commands": {
+        "native": "auto",
+        "nativeSkills": "auto",
+        "restart": true,
+        "ownerDisplay": "raw"
+    },
+    "session": {
+        "dmScope": "per-channel-peer"
+    },
+    "gateway": {
+        "port": 18789,
+        "mode": "local",
+        "bind": "loopback",
+        "auth": {
+            "mode": "token",
+            "token": "e1cee6f68c3a88afad81af796a4ab1c8626380b6a9fa8f58"
+        },
+        "tailscale": {
+            "mode": "off",
+            "resetOnExit": false
+        },
+        "nodes": {
+            "denyCommands": [
+                "camera.snap",
+                "camera.clip",
+                "screen.record",
+                "contacts.add",
+                "calendar.add",
+                "reminders.add",
+                "sms.send"
+            ]
+        }
+    },
+    "skills": {
+        "entries": {
+            "ai-ppt-generator": {
+                "enabled": false
+            },
+            "Powerpoint / PPTX": {
+                "enabled": false
+            }
+        }
+    }
+}
+```
+

+ 35 - 0
01-AI与模型/OpenClaw/Openclaw 技巧.md

@@ -0,0 +1,35 @@
+---
+notion-id: 326ca4d7-cb7b-8021-bdb6-d1c238f5025a
+---
+- `/openclaw agents add <name>`
+- `/status` — 查看当前状态(模型、Token 用量、会话信息)
+- `/new` 或 `/reset` — 开始新对话(清空当前会话上下文)
+- `/model` — 查看或切换当前使用的模型
+- `/reasoning` — 切换思考输出模式(off/on/stream)
+- `/stop `—  停止当前对话【飞书插件有可能无法正常启动,需要重启网关】
+- `/compact `— 
+- `/think  `— think set low【或 medium,high】
+- `/models `—模型查看并且切换【Telegram可用】
+
+> 常用:记住、必坑、学习等调教语言让openclaw学习并且长期记忆
+
+---
+
+---
+[https://github.com/hesamsheikh/awesome-openclaw-usecases?tab=readme-ov-file](https://github.com/hesamsheikh/awesome-openclaw-usecases?tab=readme-ov-file)
+**📋 记忆使用规则**
+
+| 会话类型 | 长期记忆 (MEMORY.md) |
+| --- | --- |
+| 🏠 主会话(直接聊天) | ✅ 可读取和编辑 |
+| 👥 群聊(如当前) | ❌ 不加载 |
+| 🤖 其他子会话/机器人 | ❌ 不加载 |
+
+**📁 记忆文件说明**
+
+| 文件 | 用途 | 加载范围 |
+| --- | --- | --- |
+| MEMORY.md | 长期记忆 | 仅主会话 |
+| memory/YYYY-MM-DD.md | 每日笔记 | 所有会话可读取 |
+| SOUL.md / AGENTS.md | 自我定义 | 始终加载 |
+

+ 7 - 0
01-AI与模型/提示词/AI 提示词.md

@@ -0,0 +1,7 @@
+案例一:
+先检查问题有没有错误提前,逻辑跳跃和信息缺失;
+不要迎合我,要独立判断;
+区分事实,推测和主观观点;
+涉及数字,任务和结论时尽量核实来源;
+不同意就直接指出,并给出依据,风险和替代解释;
+还要主动提醒我忽略的变量,成本和变差;

+ 59 - 0
01-AI与模型/提示词/提示词指南.md

@@ -0,0 +1,59 @@
+---
+notion-id: 1a8ca4d7-cb7b-80ba-9872-e1fe59e549d0
+---
+### **1. 角色配置的核心逻辑**
+Dify中 **提示词(Prompt)** 的核心作用之一,就是为AI模型设定“角色”。通过精心设计的提示词,您可以明确:
+- **身份**:AI是客服、医生、翻译还是其他角色?
+- **任务**:需要完成的具体工作(如回答问题、生成文案、分析数据)。
+- **风格**:回答的语气(专业、亲切、幽默等)和格式限制(如分点、Markdown)。
+
+---
+### **2. 配置角色的具体方法**
+### **步骤1:定位系统提示词(System Prompt)**
+在Dify的提示词配置界面,找到“系统提示词”或“初始指令”输入框(名称可能因版本不同略有差异)。这里是定义角色最关键的部分。
+### **步骤2:明确角色指令**
+用简洁的语言直接定义角色,例如:
+```plain text
+你是一个资深跨境电商客服,负责用中文解答欧美用户的订单咨询。回答需专业且口语化,避免使用复杂术语。
+```
+- **关键要素**:身份(客服)、领域(跨境电商)、语言风格(口语化)、限制(避免术语)。
+
+### **步骤3:补充上下文与示例(可选)**
+- **上下文增强**:添加角色背景信息,如:
+```plain text
+公司主打环保产品,回复需强调可持续性理念。退换货政策为30天内无理由免费退货。
+```
+- **示例对话(Few-shot Learning)**:提供问答示例,帮助AI理解预期反应:
+```plain text
+用户问:我的订单物流延迟了怎么办?
+你答:非常抱歉给您带来不便!由于近期极端天气影响,物流可能延迟3-5天。您可以在此链接跟踪最新状态:[链接]。如需进一步帮助,请随时告知!
+```
+
+### **步骤4:设置输出格式(如需要)**
+若需结构化输出(如JSON、表格),在提示词中明确要求:
+```plain text
+请将产品信息总结为JSON格式,包含名称、价格、环保特征三个字段。
+```
+
+---
+### **3. 常见误区与解决方法**
+- **误区1**:角色描述过于笼统
+**解决**:添加具体场景和细节。例如,将“你是一个助手”改为“你是一个专注于健康饮食的AI营养师,擅长为糖尿病患者设计低糖食谱”。
+- **误区2**:忽略限制条件
+**解决**:明确禁止行为。例如:“不要提供医疗诊断,仅建议日常保健方法”。
+- **误区3**:未测试不同输入
+**解决**:在Dify的调试界面模拟用户问题,观察AI是否符合角色设定,迭代优化提示词。
+
+---
+### **4. 高级技巧**
+- **变量注入**:使用`{{variable}}`动态插入用户信息(如用户名、订单号),增强个性化回复。
+- **多角色切换**:通过条件判断实现不同场景的角色响应。例如:
+```plain text
+{{ if 用户问题包含"投诉" }} 进入客诉处理模式,语气需格外耐心并提供补偿方案。{{ else }} 正常解答产品问题。{{ end }}
+```
+
+---
+### **5. 验证配置效果**
+- 输入测试问题,检查是否符合角色设定。
+- 观察AI是否在超出角色范围时正确拒绝(如客服被问及法律问题时应引导至相关部门)。
+

+ 7 - 0
01-AI与模型/提示词/提示词模板.md

@@ -0,0 +1,7 @@
+---
+notion-id: 1c3ca4d7-cb7b-80b8-bffb-e42edcdf897a
+---
+Webeditor
+> [!tip] 💡
+> Your task is to create a one-page website based on the given specifications, delivered as an HTML file with embedded JavaScript and CSS. The website should incorporate a variety of engaging and interactive design features, such as drop-down menus, dynamic text and content, clickable buttons, and more. Ensure that the design is visually appealing, responsive, and user-friendly. The HTML, CSS, and JavaScript code should be well-structured, efficiently organized, and properly commented for readability and maintainability.
+

+ 21 - 0
01-AI与模型/模型配置/Grok-beta.md

@@ -0,0 +1,21 @@
+---
+title: Grok-beta
+date: 2024-11-21T11:43:23+08:00
+lastmod: 2024-11-21T11:50:27+08:00
+---
+
+# Grok-beta
+
+  官方网站:[https://x.ai/](https://x.ai/)
+
+  使用Google账户注册
+
+  点击设置可`删除`
+
+  baseURL: "`https://api.x.ai/`"
+
+  model: "`grok-beta`"
+
+  注意查看文档使用手册以及API连接地址
+
+  需要搭配`https://github.com/Bin-Huang/chatbox`​使用`chatbox`

+ 39 - 0
01-AI与模型/模型配置/Llama.cpp本地模型运行.md

@@ -0,0 +1,39 @@
+仓库地址
+```shell
+https://github.com/ggml-org/llama.cpp
+```
+版本下载:
+**llama-b8925-bin-macos-arm64.tar.gz**
+解除 macOS 安全限制(关键)
+```shell
+# -c 代表清除 (clear),-r 代表递归 (recursive) 到所有子文件
+xattr -cr .
+```
+验证运行
+```shell
+./llama-cli --version
+```
+Llama.cpp下载模型并启用指令`-hf  <模型网址>`
+> 模型网址`https://huggingface.co/`
+
+```shell
+./llama-cli -hf mradermacher/gemma-4-26B-A4B-it-heretic-GGUF:Q4_K_M \
+    -p "你好,请介绍一下你自己。" \
+    --temp 1.0 --top-p 0.95
+```
+Llama.cpp启用本地模型指令 `-m <本地模型地址>`
+```shell
+./llama-cli -m ~/Library/Caches/llama.cpp/mradermacher_gemma-4-26B-A4B-it-heretic-GGUF_gemma-4-26B-A4B-it-heretic.Q4_K_M.gguf \
+    -p "你好,请介绍一下你自己,并解释一下什么是 MoE 架构。" \
+    -ngl 99 \
+    --temp 0.7
+```
+Llama.cpp部署api
+```shell
+./llama-server \
+    -m ~/Library/Caches/llama.cpp/mradermacher_gemma-4-26B-A4B-it-heretic-GGUF_gemma-4-26B-A4B-it-heretic.Q4_K_M.gguf \
+    --host 0.0.0.0 \
+    --port 8080 \
+    -ngl 99 \
+    -c 8192
+```

+ 9 - 0
01-AI与模型/模型配置/模型教程.md

@@ -0,0 +1,9 @@
+---
+aliases: []
+---
+`llama.cpp`和`lm studio` 可以共享模型
+`lm studio`模型目录注意要点必须二级目录,才能识别。
+> [!note] 📌
+> /Users/shenliang/.lmstudio/models/<作者名>/<模型名称>
+
+[[Llama.cpp本地模型运行]]

+ 73 - 0
02-家庭实验室/Docker服务/Adguardhome.md

@@ -0,0 +1,73 @@
+---
+title: Adguardhome
+date: 2024-12-26T00:40:30+08:00
+lastmod: 2024-12-26T21:02:09+08:00
+---
+
+# Adguardhome
+
+  规则:
+
+  ​`https://github.com/BlueSkyXN/AdGuardHomeRules?tab=readme-ov-file`
+
+  ​`https://github.com/5whys-adblock/AdGuardHome-rules`
+
+  ​`/etc/adguardhome.yaml`配置文件路径
+
+  在 OpenWrt 上通过 `opkg install adguardhome` 安装 AdGuard Home 后,以下是使用和配置的步骤:
+
+### 1. 启动 AdGuard Home
+
+  安装完成后,您需要启动 AdGuard Home。可以通过以下命令启动它:
+
+```bash
+/etc/init.d/adguardhome start
+```
+
+  如果您希望 AdGuard Home 开机时自动启动,可以使用以下命令:
+
+```bash
+/etc/init.d/adguardhome enable
+```
+
+### 2. 配置 AdGuard Home
+
+  AdGuard Home 安装后,会自动配置为默认运行,并启动其 Web 界面,通常可以通过浏览器访问其默认的 Web UI。访问地址为:
+
+```arduino
+http://<你的路由器IP>:3000
+```
+
+  例如,如果您的 OpenWrt 路由器 IP 是 `192.168.1.1`​,那么访问地址就是 `http://192.168.1.1:3000`。
+
+### 3. 初始设置
+
+  首次访问时,您需要进行一些基本的配置:
+
+- 设置管理员密码。
+- 配置 DNS 服务器(例如,您可以选择 AdGuard Home 提供的 DNS 过滤服务,或者配置自定义的上游 DNS 服务器)。
+- 选择是否启用广告拦截、隐私保护等功能。
+
+### 4. 配置设备使用 AdGuard Home 作为 DNS
+
+  将您的设备(如 PC、手机等)或路由器设置为使用 AdGuard Home 作为 DNS 服务器。您可以在 OpenWrt 的 DHCP 设置中修改 DNS 服务器,指向 AdGuard Home 的 IP 地址。通过 Web UI 也可以配置 AdGuard Home 使用其他 DNS 服务(例如 Google DNS、Cloudflare DNS 等)。
+
+### 5. 查看和管理日志
+
+  通过 AdGuard Home 的 Web UI,您可以查看拦截的广告和跟踪信息、调整过滤规则、查看网络流量等。UI 也提供了黑白名单的设置功能,让您能够更精细地管理过滤规则。
+
+### 6. 停止或卸载 AdGuard Home
+
+  如果需要停止 AdGuard Home,可以使用:
+
+```bash
+/etc/init.d/adguardhome stop
+```
+
+  如果要卸载 AdGuard Home,可以使用以下命令:
+
+```bash
+opkg remove adguardhome
+```
+
+  这样您就可以根据需要使用 AdGuard Home 了。如果有其他问题,随时告诉我!

+ 15 - 0
02-家庭实验室/Docker服务/Bitwarden部署.md

@@ -0,0 +1,15 @@
+---
+title: Bitwarden部署
+date: 2026-03-10T21:44:10+08:00
+lastmod: 2026-04-22T10:33:47+08:00
+---
+
+# Bitwarden部署
+
+  http://bd.opentouch.top
+
+  zhensolid@vip.qq.com
+
+  19841122Cy!!!
+
+  ‍

+ 34 - 0
02-家庭实验室/Docker服务/Cloudflare.md

@@ -0,0 +1,34 @@
+> 注意:如果是docker部署需要使用172.17.0.1
+
+```bash
+services:
+  cloudflared:
+    image: cloudflare/cloudflared:latest
+    container_name: cloudflared-tunnel
+    restart: unless-stopped
+    # 核心:解决你之前遇到的解析超时和协议断连问题
+    dns:
+      - 1.1.1.1
+      - 8.8.8.8
+    # 如果你在国内环境,可以考虑换成下面的 DNS
+    # - 223.5.5.5
+    # - 119.29.29.29
+    
+    command: 
+      - tunnel
+      - --no-autoupdate
+      - run
+      - --token
+      -"eyJhIjoiMWE3NjRiOGM1YjgwNDAyOWYxYWUwZDZjMDg0ZTdhNzEiLCJ0IjoiZmM2ZmMwZWQtYzVkZC00YjI5LWE1MzEtMjc2OThkN2Q2ZWM1IiwicyI6Ik5qWXdZV1ExT1RndE9URTRPQzAwTlRZMkxXRm1NbU10TlRoaVlqa3hZV0ZtTVRoaCJ9"
+      # 强制使用 http2 协议,比默认的 quic (UDP) 在复杂网络下更稳定
+      - --protocol
+      - http2
+    
+    # 这里的网络设置可以让 cloudflared 访问到其他容器
+    # networks:
+    #   - tunnel_net
+
+# networks:
+#   tunnel_net:
+#     external: true
+```

+ 44 - 0
02-家庭实验室/Docker服务/Docker Cli.md

@@ -0,0 +1,44 @@
+---
+title: Docker Cli
+date: 2024-11-16T14:50:24+08:00
+lastmod: 2025-01-10T14:25:54+08:00
+---
+
+# Docker Cli
+
+```shell
+https://index.docker.io 
+```
+
+  ​`sudo nano /etc/docker/daemon.json`
+
+```json
+{
+  "registry-mirrors": [
+    "https://docker.m.daocloud.io/",
+    "https://docker.shootchat.top/",
+    "https://do.nark.eu.org/",
+    "https://noohub.ru/"
+  ],
+  "data-root": "/var/lib/docker",
+  "features": {
+    "buildkit": true
+  },
+  "experimental": true
+}
+
+```
+
+|指令|作用|备注|
+| :----: | :----------------: | :----------: |
+|​`docker system prune`|清理缓存||
+|​`docker image prune -a`|清理镜像||
+|​`docker info`|查看docker信息||
+|​`docker rmi <镜像Id>`|删除指定镜像||
+|​`docker build`|镜像构建|Dockerfile|
+|​`docker logs`|查看日志||
+|​`docker buildx create --use`|启用buildx||
+|​`docker buildx build --platform linux/amd64,linux/arm64 -t myapp .`|构建多平台||
+|​`docker commit <容器ID> <新镜像名>`|基于容器创建镜像||
+
+  ‍

+ 25 - 0
02-家庭实验室/Docker服务/Docker-compose合集/CloudSaver.md

@@ -0,0 +1,25 @@
+---
+title: CloudSaver
+date: 2025-06-18T11:54:03+08:00
+lastmod: 2025-06-18T11:54:58+08:00
+---
+
+# CloudSaver
+
+## 注意事项
+
+```bash
+version: "3"
+services:
+  cloudsaver:
+    image: jiangrui1994/cloudsaver:latest
+    container_name: cloud-saver
+    ports:
+      - "8008:8008"
+    volumes:
+      - ./data:/app/data
+      - ./config:/app/config
+    restart: unless-stopped
+```
+
+  ‍

+ 30 - 0
02-家庭实验室/Docker服务/Docker-compose合集/Clouddrive2.md

@@ -0,0 +1,30 @@
+---
+title: Clouddrive2
+date: 2024-11-15T18:12:06+08:00
+lastmod: 2025-09-23T15:21:02+08:00
+---
+
+# Clouddrive2
+
+   `systemctl status docker` 命令的输出:
+
+  **Docker 以 systemd 服务运行**:输出中显示 `Active: active (running)`​,这表明 Docker 守护进程正在运行,并且是通过 `systemd`管理的。
+
+```yaml
+version: "2.1"
+services:
+  cloudnas:
+    image: cloudnas/clouddrive2
+    container_name: clouddrive2
+    environment:
+      - TZ=Asia/Shanghai
+      - CLOUDDRIVE_HOME=/Config
+    volumes:
+      - /mnt/usb1_2-1/clouddrive:/CloudNAS:shared
+      - /mnt/usb1_2-1/clouddrive/config:/Config
+      - /mnt/usb1_2-1/clouddrive/media:/media:shared #optional media path of host
+    devices:
+      - /dev/fuse:/dev/fuse
+    restart: unless-stopped
+    privileged: true
+```

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 25 - 0
02-家庭实验室/Docker服务/Docker-compose合集/Cloudsaver操作指南.md


+ 21 - 0
02-家庭实验室/Docker服务/Docker-compose合集/Frp.md

@@ -0,0 +1,21 @@
+---
+title: Frp
+date: 2024-12-19T16:15:20+08:00
+lastmod: 2024-12-19T16:16:49+08:00
+---
+
+# Frp
+
+  服务器[[Frp配置文件|frps配置文件]]
+
+```yaml
+docker run --restart=always --network host -d -v /etc/frp/frps.toml:/etc/frp/frps.toml --name frps snowdreamtech/frps
+```
+
+  客户端[[Frp配置文件|frpc配置文件]]
+
+```yaml
+docker run --restart=always --network host -d -v /etc/frp/frpc.toml:/etc/frp/frpc.toml --name frpc snowdreamtech/frpc
+```
+
+  ‍

+ 71 - 0
02-家庭实验室/Docker服务/Docker-compose合集/Frp/Frp配置文件.md

@@ -0,0 +1,71 @@
+---
+title: Frp配置文件
+date: 2024-12-19T16:10:26+08:00
+lastmod: 2024-12-19T16:17:04+08:00
+---
+
+# Frp配置文件
+
+  docker镜像`snowdreamtech/frpc`​、`snowdreamtech/frps`
+
+  客户端配置文件`frpc.toml`
+
+```yaml
+serverAddr = "139.185.41.147"
+serverPort = 7000
+auth.method = "token"
+auth.token = "60d8a83c544e6168db"
+
+[[proxies]]
+name = "istore-ssh"
+type = "tcp"
+localIP = "10.10.10.252"
+localPort = 22
+remotePort = 6000
+
+[[proxies]]
+name = "nas-ssh"
+type = "tcp"
+localIP = "10.10.10.23"
+localPort = 22
+remotePort = 6001
+
+[[proxies]]
+name = "istore-http"
+type = "tcp"
+localIP = "10.10.10.252"
+localPort = 80
+remotePort = 6002
+
+[[proxies]]
+name = "nas-http"
+type = "tcp"
+localIP = "10.10.10.23"
+localPort = 80
+remotePort = 6003
+```
+
+  服务端配置文件`frps.toml`
+
+```yaml
+bindAddr = "0.0.0.0"
+bindPort = 7000
+
+vhostHTTPPort = 40800
+vhostHTTPSPort = 40443
+
+auth.method = "token"
+auth.token = "60d8a83c544e6168db"
+
+webServer.addr = "0.0.0.0"
+webServer.port = 7500
+webServer.user = "frps_user"
+webServer.password = "XNZRMfSnCShRwEb3"
+
+# tls
+#transport.tls.force = true
+#transport.tls.certFile = "/etc/frp/ssl/server.crt"
+#transport.tls.keyFile = "/etc/frp/ssl/server.key"
+#transport.tls.trustedCaFile = "/etc/frp/ssl/ca.crt"
+
+```

+ 63 - 0
02-家庭实验室/Docker服务/Docker-compose合集/Gogs.md

@@ -0,0 +1,63 @@
+---
+title: Gogs
+date: 2024-11-16T23:50:50+08:00
+lastmod: 2024-11-21T18:49:22+08:00
+---
+
+# Gogs
+
+  <span data-type="text" style="text-shadow: 1px 1px var(--b3-theme-surface-lighter), 2px 2px var(--b3-theme-surface-lighter), 3px 3px var(--b3-theme-surface-lighter), 4px 4px var(--b3-theme-surface-lighter);">注意要点:</span>
+
+  ​`HTTP端口号:`​`3000`​
+
+  否则会导致网页无法登录,如果配置错误可以通过修改`/data/gogs/conf/app.ini`端口号
+
+### Gogs 的数据库配置
+
+  在 Gogs 初始化时,填写以下信息:
+
+- **Database Type**: `MySQL`
+- **Host**: `mysql:3306`
+- **User**: `gogs`
+- **Password**: `gogs`
+- **Database Name**: `gogs`
+
+```yaml
+services:
+  gogs:
+    image: gogs/gogs:latest
+    container_name: gogs
+    ports:
+      - "3080:3000"  # 修改 Web UI 端口为 3080
+      - "2222:22"    # SSH 端口保持不变
+    volumes:
+      - /mnt/mydata/gogs/data:/data
+    environment:
+      - DB_TYPE=mysql
+      - DB_HOST=mysql:3306
+      - DB_USER=gogs
+      - DB_PASSWD=gogs
+      - DB_NAME=gogs
+    depends_on:
+      mysql:
+        condition: service_healthy
+    restart: always
+
+  mysql:
+    image: mysql:8.0
+    container_name: gogs-mysql
+    ports: []
+    environment:
+      MYSQL_ROOT_PASSWORD: root_password
+      MYSQL_DATABASE: gogs
+      MYSQL_USER: gogs
+      MYSQL_PASSWORD: gogs
+    volumes:
+      - /mnt/mydata/gogs/mysql:/var/lib/mysql
+    command: --default-authentication-plugin=mysql_native_password
+    healthcheck:
+      test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-proot_password"]
+      timeout: 20s
+      retries: 10
+    restart: always
+```

+ 46 - 0
02-家庭实验室/Docker服务/Docker-compose合集/Gogs配置文档.md

@@ -0,0 +1,46 @@
+---
+title: Gogs配置文档
+date: 2024-11-16T23:57:54+08:00
+lastmod: 2025-03-06T00:32:10+08:00
+---
+
+# Gogs配置文档
+
+  **IP更换**需要修改挂载配置文件`app.ini,`​文件位置:`/mnt/mydata/gogs/data/gogs/conf`,重启容器即可
+
+```shell
+[server]
+DOMAIN           = 139.185.58.251
+HTTP_PORT        = 3000
+EXTERNAL_URL     = http://139.185.58.251:3080/
+DISABLE_SSH      = false
+SSH_PORT         = 2222
+START_SSH_SERVER = true
+OFFLINE_MODE     = false
+```
+
+### 配置说明
+
+1. **MySQL 服务名修改**
+
+   - 将 `mysql`​ 服务名修改为 `gogs-mysql`​,因此 MySQL 在 `gogs_net`​ 网络中将以 `gogs-mysql` 的主机名提供服务。
+   - 修改后,其他容器在 `gogs_net`​ 网络中需要通过 `gogs-mysql:3306` 访问该 MySQL 实例。
+2. **Gogs 的数据库主机设置**
+
+   - 在 Gogs 容器的 `DB_HOST`​ 环境变量中,将 MySQL 主机地址从 `mysql:3306`​ 改为 `gogs-mysql:3306`,确保 Gogs 连接到新的服务名。
+3. ​**​`depends_on`​**​ **依赖关系**
+
+   - 修改 `depends_on`​ 以匹配新的服务名 `gogs-mysql`,确保 MySQL 在 Gogs 启动之前启动。
+4. **网络隔离**
+
+   - ​`gogs_net` 网络依然保持独立。服务名更改不会影响网络隔离的安全性。
+
+### 启动服务
+
+  执行以下命令启动容器:
+
+```bash
+docker-compose up -d
+```
+
+  ‍

+ 39 - 0
02-家庭实验室/Docker服务/Docker-compose合集/Gogs重置密码.md

@@ -0,0 +1,39 @@
+---
+title: Gogs重置密码
+date: 2026-03-06T12:12:59+08:00
+lastmod: 2026-03-06T12:13:57+08:00
+---
+
+# Gogs重置密码
+
+## 1. 准备阶段
+
+  确保你拥有以下技能
+
+1. [gogs](https://zhida.zhihu.com/search?content_id=749683509&content_type=Answer&match_order=1&q=gogs&zd_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ6aGlkYV9zZXJ2ZXIiLCJleHAiOjE3NzI5NDI4MjcsInEiOiJnb2dzIiwiemhpZGFfc291cmNlIjoiZW50aXR5IiwiY29udGVudF9pZCI6NzQ5NjgzNTA5LCJjb250ZW50X3R5cGUiOiJBbnN3ZXIiLCJtYXRjaF9vcmRlciI6MSwiemRfdG9rZW4iOm51bGx9.vG5aKEfPn0b5AmF1k8XfuqFvMR3cBQvLyWtyJX521Ug&zhida_source=entity)服务器登陆权限
+2. 确保会熟练使用gogs的操作系统
+3. 进入容器的操作
+
+## 2. 创建新的管理账户
+
+1. 如果使用[docker](https://zhida.zhihu.com/search?content_id=749683509&content_type=Answer&match_order=1&q=docker&zd_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ6aGlkYV9zZXJ2ZXIiLCJleHAiOjE3NzI5NDI4MjcsInEiOiJkb2NrZXIiLCJ6aGlkYV9zb3VyY2UiOiJlbnRpdHkiLCJjb250ZW50X2lkIjo3NDk2ODM1MDksImNvbnRlbnRfdHlwZSI6IkFuc3dlciIsIm1hdGNoX29yZGVyIjoxLCJ6ZF90b2tlbiI6bnVsbH0.Xc_1lN3z1FWM7IXK8o8sdl3f4VZNCRedgiE5f8X0sqc&zhida_source=entity)部署,先执行`docker exec -it gogs bash`
+2. 进入gogs二进制目录
+3. 如果你是root用户,请切换到[git](https://zhida.zhihu.com/search?content_id=749683509&content_type=Answer&match_order=1&q=git&zd_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ6aGlkYV9zZXJ2ZXIiLCJleHAiOjE3NzI5NDI4MjcsInEiOiJnaXQiLCJ6aGlkYV9zb3VyY2UiOiJlbnRpdHkiLCJjb250ZW50X2lkIjo3NDk2ODM1MDksImNvbnRlbnRfdHlwZSI6IkFuc3dlciIsIm1hdGNoX29yZGVyIjoxLCJ6ZF90b2tlbiI6bnVsbH0.acOnnwqyr0aLdHm6GtmsLYYEjkS2Kc0EjEWGqT-ZRh0&zhida_source=entity)用户`su git`
+4. 输入管理员创建命令`./gogs admin create-user --admin=1 --name=xxxx --password=xxxx --email=xxx@xxx.com`
+
+  示例:`./gogs admin create-user --admin=1 --name=solidsnake --password=19841122Cy! --email=zhensolid@outlook.com`
+
+> 这里`name`​为用户名,`password`​为密码,`email`为邮箱,邮箱可以随意,记住此处的用户名密码,后面有需要。
+
+## 3. 修改管理员密码
+
+1. 使用**新的管理员**用户登录,使用刚设置的name和password,比如我这里就是xxxx和xxxx
+2. 进入**管理面板**
+3. 选择**用户管理**
+4. 点击之前管理员账号的**编辑按钮**
+5. 在**密码**处输入新的密码
+6. 尝试使用之前的管理员登录
+
+## 4. 收尾工作
+
+- 你可以选择删除临时管理员

+ 9 - 0
02-家庭实验室/Docker服务/Docker-compose合集/IPTV-API.md

@@ -0,0 +1,9 @@
+---
+title: IPTV-API
+date: 2025-11-02T15:40:28+08:00
+lastmod: 2025-11-02T15:41:14+08:00
+---
+
+# IPTV-API
+
+  参考网页:https://github.com/Guovin/iptv-api

+ 24 - 0
02-家庭实验室/Docker服务/Docker-compose合集/Jackett.md

@@ -0,0 +1,24 @@
+---
+title: Jackett
+date: 2024-11-16T22:11:38+08:00
+lastmod: 2024-11-16T22:12:18+08:00
+---
+
+# Jackett
+
+```yaml
+services:
+  jackett:
+    image: lscr.io/linuxserver/jackett:latest
+    container_name: jackett
+    environment:
+      - PUID=1000
+      - PGID=1000
+      - TZ=Asia/Shanghai
+    volumes:
+      - /mnt/mydata/jackett/config:/config
+      - /mnt/mydata/jackett/downloads:/downloads
+    ports:
+      - 9117:9117
+    restart: unless-stopped
+```

+ 57 - 0
02-家庭实验室/Docker服务/Docker-compose合集/Jira.md

@@ -0,0 +1,57 @@
+---
+title: Jira
+date: 2024-11-15T18:11:17+08:00
+lastmod: 2024-11-15T18:11:22+08:00
+---
+
+# Jira
+
+```yaml
+
+services:
+  jira:
+    image: haxqer/jira:9.17.2
+    container_name: jira-srv
+    environment:
+      - TZ=Asia/Shanghai
+#      - JVM_MINIMUM_MEMORY=1g
+#      - JVM_MAXIMUM_MEMORY=12g
+#      - JVM_CODE_CACHE_ARGS='-XX:InitialCodeCacheSize=1g -XX:ReservedCodeCacheSize=8g'
+    depends_on:
+      - mysql
+    ports:
+      - "8080:8080"
+    volumes:
+      - D:\Docker_volumes\jira\home_data:/var/jira
+    restart: always
+    networks:
+      - network-bridge
+
+  mysql:
+    image: mysql:8.0
+    container_name: mysql-jira
+    environment:
+      - TZ=Asia/Shanghai
+      - MYSQL_DATABASE=jira
+      - MYSQL_ROOT_PASSWORD=123456
+      - MYSQL_USER=jira
+      - MYSQL_PASSWORD=123123
+    command: ['mysqld', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_bin']
+#    ports:
+#      - "13306:3306"
+    volumes:
+      - D:\Docker_volumes\jira\mysql_data:/var/lib/mysql
+    restart: always
+    networks:
+      - network-bridge
+
+networks:
+  network-bridge:
+    driver: bridge
+
+volumes:
+  home_data:
+    external: false
+  mysql_data:
+    external: false
+```

+ 36 - 0
02-家庭实验室/Docker服务/Docker-compose合集/Lxmusic-sync.md

@@ -0,0 +1,36 @@
+---
+title: Lxmusic-sync
+date: 2024-11-15T18:10:11+08:00
+lastmod: 2024-11-15T18:10:18+08:00
+---
+
+# Lxmusic-sync
+
+```yaml
+version: '3.8'
+
+services:
+  lx-music-sync-server:
+    image: lyswhut/lx-music-sync-server:latest
+    container_name: lx-music-sync-server
+    ports:
+      - "9527:9527"
+    volumes:
+      - ./config.js:/app/config.js  # 挂载文件必须新建文件才能读取
+      - ./data:/app/data  # 挂载文件夹
+      - ./logs:/app/logs  # 挂载文件夹
+    environment:
+      - NODE_ENV=production
+      - PORT=9527
+      - BIND_IP=0.0.0.0
+      - CONFIG_PATH=/app/config.js
+      - LOG_PATH=/app/logs
+      - DATA_PATH=/app/data
+      - MAX_SNAPSHOT_NUM=10
+      - SERVER_NAME=lx-music-sync-server
+      - LIST_ADD_MUSIC_LOCATION_TYPE=top
+    restart: unless-stopped
+
+```
+
+  ‍

+ 146 - 0
02-家庭实验室/Docker服务/Docker-compose合集/MAXUN.md

@@ -0,0 +1,146 @@
+---
+title: MAXUN
+date: 2024-12-21T16:21:53+08:00
+lastmod: 2025-02-23T16:18:31+08:00
+---
+
+# MAXUN
+
+> 1. [Docker-compose文件](#20241221162221-08d5ctj)
+> 2. [ENV文件](#20241221162201-ucebgnj)
+
+# <span id="20241221162221-08d5ctj" style="display: none;"></span>Docker-compose文件
+
+```yaml
+version: '3.8'
+
+services:
+  postgres:
+    image: postgres:13
+    environment:
+      POSTGRES_USER: ${DB_USER}
+      POSTGRES_PASSWORD: ${DB_PASSWORD}
+      POSTGRES_DB: ${DB_NAME}
+    # 指定postgres端口
+    command: -p ${DB_PORT:-5432}
+    ports:
+      - "${DB_PORT:-5432}:${DB_PORT:-5432}"
+    volumes:
+      # 指定postgres数据目录
+      - ./postgres_data:/var/lib/postgresql/data
+    healthcheck:
+      test: ["CMD-SHELL", "pg_isready -U postgres -p ${DB_PORT:-5432}"]
+      interval: 10s
+      timeout: 5s
+      retries: 5
+
+  redis:
+    image: redis:6
+    environment:
+      REDIS_HOST: ${REDIS_HOST}
+      REDIS_PORT: ${REDIS_PORT}
+    # 指定redis端口
+    command: redis-server --port ${REDIS_PORT:-6379}
+    ports:
+      - "${REDIS_PORT:-6379}:${REDIS_PORT:-6379}"
+    volumes:
+      # 指定redis数据目录
+      - ./redis_data:/data
+
+  minio:
+    image: minio/minio
+    environment:
+      MINIO_ROOT_USER: ${MINIO_ACCESS_KEY}
+      MINIO_ROOT_PASSWORD: ${MINIO_SECRET_KEY}
+    # 指定minio端口
+    command: server /data --address :${MINIO_PORT:-9000} --console-address :${MINIO_CONSOLE_PORT:-9001}
+    ports:
+      - "${MINIO_PORT:-9000}:${MINIO_PORT:-9000}"
+      - "${MINIO_CONSOLE_PORT:-9001}:${MINIO_CONSOLE_PORT:-9001}"
+    volumes:
+      # 指定minio数据目录
+      - ./minio_data:/data
+
+  backend:
+    #build:
+      #context: .
+      #dockerfile: server/Dockerfile
+    image: getmaxun/maxun-backend:v0.0.7
+    ports:
+      - "${BACKEND_PORT:-8080}:${BACKEND_PORT:-8080}"
+    env_file: .env
+    environment:
+      BACKEND_URL: ${BACKEND_URL}
+      # to ensure Playwright works in Docker
+      PLAYWRIGHT_BROWSERS_PATH: /ms-playwright
+      PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 0
+      # DEBUG: pw:api
+      # PWDEBUG: 1  # Enables debugging
+      CHROMIUM_FLAGS: '--disable-gpu --no-sandbox --headless=new'
+    security_opt:
+    - seccomp=unconfined  # This might help with browser sandbox issues
+    shm_size: '2gb' # Increase shared memory size for Chromium
+    mem_limit: 2g   # Set a 2GB memory limit
+    depends_on:
+      - postgres
+      - redis
+      - minio
+    volumes:
+      # 指定通信目录(用于容器内进程间通信,目录名可自定义)
+      - ./dbus:/var/run/dbus
+
+  frontend:
+      #build:
+      #context: .
+      #dockerfile: Dockerfile
+    image: getmaxun/maxun-frontend:v0.0.3
+    ports:
+      - "${FRONTEND_PORT:-5173}:${FRONTEND_PORT:-5173}"
+    env_file: .env
+    environment:
+      PUBLIC_URL: ${PUBLIC_URL}
+      BACKEND_URL: ${BACKEND_URL}
+    depends_on:
+      - backend
+
+volumes:
+  postgres_data:
+  minio_data:
+  redis_data:
+```
+
+# <span id="20241221162201-ucebgnj" style="display: none;"></span>ENV文件
+
+```yaml
+# App Setup
+NODE_ENV=production
+JWT_SECRET=a9Z$$kLq7^f03GzNw!bP9dH4xV6sT2yXl3O8vR@uYq3
+DB_NAME=maxun
+DB_USER=postgres
+DB_PASSWORD=postgres
+DB_HOST=postgres
+DB_PORT=5435
+ENCRYPTION_KEY=f4d5e6a7b8c9d0e1f23456789abcdef01234567890abcdef123456789abcdef0
+
+# MinIO配置
+MINIO_ENDPOINT=minio
+MINIO_PORT=9005
+MINIO_CONSOLE_PORT=9006
+MINIO_ACCESS_KEY=zhensolid
+MINIO_SECRET_KEY=19841122Cy!
+
+# Redis配置
+REDIS_HOST=redis
+REDIS_PORT=6380
+
+# 后端和前端URL配置
+BACKEND_PORT=8081
+FRONTEND_PORT=5174
+BACKEND_URL=http://localhost:8081
+PUBLIC_URL=http://localhost:5174
+VITE_BACKEND_URL=http://localhost:8081
+VITE_PUBLIC_URL=http://localhost:5174
+
+# 遥测设置
+MAXUN_TELEMETRY=true
+```

+ 26 - 0
02-家庭实验室/Docker服务/Docker-compose合集/MeTube.md

@@ -0,0 +1,26 @@
+---
+title: MeTube
+date: 2024-12-26T21:37:26+08:00
+lastmod: 2024-12-26T21:37:32+08:00
+---
+
+# MeTube
+
+```yaml
+services:
+  metube:
+    image: ghcr.io/alexta69/metube
+    container_name: metube
+    restart: unless-stopped
+    ports:
+      - "8081:8081"
+    volumes:
+      - /mnt/scsi0.1-1/metube/downloads:/downloads
+      - /mnt/scsi0.1-1/metube/cookies:/cookies
+    environment:
+      - YTDL_OPTIONS={"cookiefile":"/cookies/cookies.txt"}
+      - DELETE_FILE_ON_TRASHCAN=true
+      - YTDL_OPTIONS={"writesubtitles":true,"subtitleslangs":["zh-Hans","-live_chat"],"updatetime":false,"postprocessors":[{"key":"Exec","exec_cmd":"chmod 0664","when":"after_move"},{"key":"FFmpegEmbedSubtitle","already_have_subtitle":false},{"key":"FFmpegMetadata","add_chapters":true}]}
+      - OUTPUT_TEMPLATE=%(playlist_title&Playlist |)S%(playlist_title|)S%(playlist_uploader& by |)S%(playlist_uploader|)S%(playlist_autonumber& - |)S%(playlist_autonumber|)S%(playlist_count& of |)S%(playlist_count|)S%(playlist_autonumber& - |)S%(uploader,creator|UNKNOWN_AUTHOR)S - %(title|UNKNOWN_TITLE)S - %(release_date>%Y-%m-%d,upload_date>%Y-%m-%d|UNKNOWN_DATE)S.%(ext)s
+
+```

+ 22 - 0
02-家庭实验室/Docker服务/Docker-compose合集/Memos.md

@@ -0,0 +1,22 @@
+---
+title: Memos
+date: 2024-11-19T14:40:39+08:00
+lastmod: 2024-11-19T14:44:43+08:00
+---
+
+# Memos
+
+  可以通过宝塔一键安装 or `Docker-compose`
+
+```yaml
+version: '3.7'
+
+services:
+  memos:
+    image: neosmemo/memos:stable
+    container_name: memos
+    ports:
+      - "5230:5230"
+    volumes:
+      - ~/.memos/:/var/opt/memos
+```

+ 36 - 0
02-家庭实验室/Docker服务/Docker-compose合集/Memos操作文档.md

@@ -0,0 +1,36 @@
+---
+title: Memos操作文档
+date: 2024-11-19T14:46:36+08:00
+lastmod: 2024-11-28T15:53:00+08:00
+---
+
+# Memos操作文档
+
+  [Memos线上文档](https://www.usememos.com/docs)
+
+> <span data-type="text" style="text-shadow: 1px 1px var(--b3-theme-surface-lighter), 2px 2px var(--b3-theme-surface-lighter), 3px 3px var(--b3-theme-surface-lighter), 4px 4px var(--b3-theme-surface-lighter); color: var(--b3-font-color10);">Tips:</span>
+>
+> 	第三方连接必须使用`https`
+
+  Telegram:
+
+  创建**Telegram Bot。**
+
+  获取**Telegram Bot** **token。**
+
+  使用**Telegram Bot** `/start <memos_token>`: Start the bot with your Memos access token.
+
+```yaml
+services:
+  memogram:
+    image: rammiah/memogram:latest
+    environment:
+      SERVER_ADDR: "dns:40.233.18.33:5230" # your server rpc port
+      BOT_TOKEN: "7101647180:AAHe4KaWAcXTOdiv4h_7kqrIDhnDR7Dk0Xg" # goto botfather get bot token
+
+    restart: unless-stopped
+```
+
+  ‍
+
+  ‍

+ 80 - 0
02-家庭实验室/Docker服务/Docker-compose合集/Memos界面配置.md

@@ -0,0 +1,80 @@
+---
+title: Memos界面配置
+date: 2024-11-28T15:53:36+08:00
+lastmod: 2024-11-28T16:01:15+08:00
+---
+
+# Memos界面配置
+
+  自定义样式
+
+```bash
+body{font-family: "LXGW WenKai Screen", sans-serif !important;}
+/* 修改特殊字体颜色 */
+.text-blue-600 {
+    --tw-text-opacity: 1;
+    color: rgb(11 96 176 / var(--tw-text-opacity));
+}
+
+/* 修改标签样式 */
+.dark .inline-block {
+    border: 1px solid rgb(110,110,110);
+    border-radius: 8px;
+    background-color: rgb(90, 90, 90);
+    padding: 0px 4px;
+}
+
+.inline-block {
+    border: 1px solid rgb(230,230,230);
+    border-radius: 8px;
+    background-color: rgb(245, 245, 245);
+    padding: 0px 4px;
+}
+
+/* 修改Memo字号 */
+.memo-wrapper .text-base {
+    font-size: 0.95rem;
+}
+
+/* 修改代码块字号 */
+.text-sm {
+    font-size: 0.85rem;
+}
+
+/* 隐藏 通知 选项卡 */
+#header-inbox {
+  display: none;
+}
+
+/* 隐藏 个人资料 选项卡 */
+#header-profile {
+  display: none;
+}
+
+/* 隐藏 探索 选项卡 */
+#header-explore {
+  display: none;
+}
+
+/* 修改编辑器字体为等宽  原始字体Courier New */
+textarea {
+    font-family: 'LXGW WenKai Screen', Courier, monospace;
+}
+```
+
+  自定义脚本
+
+```bash
+function changeFont() { 
+  const link = document.createElement("link");
+  link.rel = "stylesheet";
+  link.type = "text/css";
+  link.href = "https://cdn.staticfile.org/lxgw-wenkai-screen-webfont/1.6.0/lxgwwenkaiscreen.css";
+  document.head.append(link);
+};
+changeFont()
+
+
+```
+
+  ‍

+ 17 - 0
02-家庭实验室/Docker服务/Docker-compose合集/OmniTools.md

@@ -0,0 +1,17 @@
+---
+title: OmniTools
+date: 2025-10-13T13:13:26+08:00
+lastmod: 2025-10-13T13:13:34+08:00
+---
+
+# OmniTools
+
+```undefined
+services:
+  omni-tools:
+    image: iib0011/omni-tools:latest
+    container_name: omni-tools
+    restart: unless-stopped
+    ports:
+      - "8080:80"
+```

+ 17 - 0
02-家庭实验室/Docker服务/Docker-compose合集/PanHub.md

@@ -0,0 +1,17 @@
+---
+title: PanHub
+date: 2025-10-13T12:50:31+08:00
+lastmod: 2025-10-13T12:50:38+08:00
+---
+
+# PanHub
+
+```undefined
+services:
+  panhub:
+    image: docker.io/wu529778790/panhub.shenzjd.com:latest
+    container_name: panhub
+    ports:
+      - "3067:3000"
+    restart: unless-stopped
+```

+ 26 - 0
02-家庭实验室/Docker服务/Docker-compose合集/Portainer.md

@@ -0,0 +1,26 @@
+---
+title: Portainer
+date: 2025-05-17T10:49:12+08:00
+lastmod: 2025-05-17T10:49:27+08:00
+---
+
+# Portainer
+
+```bash
+version: '3.3'
+
+services:
+  portainer:
+    image: portainer/portainer-ce:latest
+    container_name: portainer
+    restart: always
+    ports:
+      - "8000:8000"     
+      - "9000:9000"     
+      - "9443:9443"    
+    volumes:
+      - /var/run/docker.sock:/var/run/docker.sock
+      - /volume1/docker/portainer/data:/data
+```
+
+  ‍

+ 30 - 0
02-家庭实验室/Docker服务/Docker-compose合集/Portainer_agent.md

@@ -0,0 +1,30 @@
+---
+title: Portainer_agent
+date: 2024-11-16T09:44:03+08:00
+lastmod: 2025-11-19T12:14:34+08:00
+---
+
+# Portainer_agent
+
+```yaml
+docker run -d -p 9001:9001 --name portainer_agent --restart=always -v /var/run/docker.sock:/var/run/docker.sock portainer/agent:latest
+
+```
+
+```yaml
+version: '3.8'
+
+services:
+  portainer_agent:
+    image: portainer/agent:2.21.4
+    volumes:
+      - /var/run/docker.sock:/var/run/docker.sock
+      - /var/lib/docker/volumes:/var/lib/docker/volumes
+      - /:/host
+    ports:
+      - "9001:9001"
+    restart: always
+
+```
+
+  ‍

+ 144 - 0
02-家庭实验室/Docker服务/Docker-compose合集/Portainer远程管理.md

@@ -0,0 +1,144 @@
+---
+title: Portainer远程管理
+date: 2024-11-16T09:54:20+08:00
+lastmod: 2025-02-23T11:10:18+08:00
+---
+
+# Portainer远程管理
+
+---
+
+### 1. **Agent**
+
+- **简介**: Portainer 官方提供的轻量代理,用于在目标机器(如 B 电脑)上与 Docker 进行通信。
+- **设置步骤**:
+
+  1. 在 B 电脑上安装 Agent 容器。
+
+     ```bash
+     docker run -d -p 9001:9001 \
+         --name portainer_agent \
+         --restart always \
+         -v /var/run/docker.sock:/var/run/docker.sock \
+         -v /var/lib/docker/volumes:/var/lib/docker/volumes \
+         portainer/agent
+     ```
+  2. ```yml
+     version: '3.8'  # 可以根据你的需要选择版本
+
+     services:
+       portainer_agent:
+         image: portainer/agent:latest
+         container_name: portainer_agent
+         restart: always
+         ports:
+           - "9001:9001/tcp"
+         volumes:
+           - /var/run/docker.sock:/var/run/docker.sock:rw
+           - /var/lib/docker/volumes:/var/lib/docker/volumes:rw
+         networks:
+           - portainer_network
+
+     networks:
+       portainer_network:
+         driver: bridge
+
+     ```
+  3. 在 A 电脑(Portainer UI)上添加连接,选择 **Agent**,填写 B 电脑的 IP 和 9001 端口。
+- **优点**:
+
+  - 跨主机操作更方便。
+  - 无需开放 Docker API。
+- **缺点**:
+
+  - 需要在每个目标机器上部署 Agent 容器。
+
+---
+
+### 2. **API**
+
+- **简介**: 直接通过 Docker Remote API 访问 Docker 守护进程。
+- **设置步骤**:
+
+  1. 在 B 电脑的 Docker 守护进程中启用远程 API,编辑 Docker 配置文件 `/etc/docker/daemon.json`:
+
+     ```json
+     {
+         "hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]
+     }
+     ```
+  2. 重启 Docker 服务:
+
+     ```bash
+     systemctl restart docker
+     ```
+  3. 在 Portainer 上添加连接,选择 **Docker API**,填写 B 电脑的 IP 和 2375 端口。
+- **优点**:
+
+  - 配置简单,适合测试和内部网络环境。
+- **缺点**:
+
+  - 默认情况下 API 没有加密(需启用 TLS 证书),存在安全风险。
+
+---
+
+### 3. **Socket**
+
+- **简介**: 直接使用 Docker 本地的 Unix Socket 进行通信,适用于 Portainer 和 Docker 安装在同一主机上。
+- **设置步骤**:
+
+  1. 在 A 或 B 电脑上挂载 `/var/run/docker.sock`,运行 Portainer 容器。
+
+     ```bash
+     docker run -d -p 8000:8000 -p 9443:9443 \
+         --name portainer \
+         --restart always \
+         -v /var/run/docker.sock:/var/run/docker.sock \
+         portainer/portainer-ce
+     ```
+  2. 无需额外配置即可管理该主机上的 Docker。
+- **优点**:
+
+  - 配置简单,无需网络连接。
+- **缺点**:
+
+  - 只能管理本地主机,无法跨主机操作。
+
+---
+
+### 4. **Edge Agent**
+
+- **简介**: 用于通过 HTTPS 安全连接管理远程 Docker 主机,适合更复杂的网络场景(如 NAT、企业内网)。
+- **设置步骤**:
+
+  1. 在 Portainer 中启用 **Edge 环境**。
+  2. 在目标主机上安装 Edge Agent 容器:
+
+     ```bash
+     docker run -d -p 8000:8000 -p 9443:9443 \
+         --name portainer_edge_agent \
+         --restart always \
+         -e EDGE=1 \
+         -e EDGE_ID=<edge_id> \
+         -e EDGE_KEY=<edge_key> \
+         portainer/agent
+     ```
+
+     (具体的 `<edge_id>`​ 和 `<edge_key>` 会在 Portainer 添加 Edge 环境时生成。)
+  3. 在 Portainer 中通过 Edge ID 添加目标主机。
+- **优点**:
+
+  - 支持 HTTPS 加密,安全性高。
+  - 适合复杂网络环境(如主机在 NAT 背后)。
+- **缺点**:
+
+  - 配置较复杂。
+
+---
+
+### **如何选择?**
+
+- **本地管理 Docker**: 使用 **Socket**。
+- **同一局域网内的 Docker 主机**: 使用 **Agent** 或 **API**。
+- **远程网络/跨网络环境**: 使用 **Edge Agent**。
+- **简单测试/无加密需求**: 使用 **API**。

+ 45 - 0
02-家庭实验室/Docker服务/Docker-compose合集/Reader阅读配置文件.md

@@ -0,0 +1,45 @@
+---
+title: Reader阅读配置文件
+date: 2024-12-15T15:31:10+08:00
+lastmod: 2025-10-25T13:34:07+08:00
+---
+
+# Reader阅读配置文件
+
+  **书源订阅地址:**​**​`https://www.yckceo.com/`​** 
+
+  书源:
+
+  [IMG-20260516155640486.json](IMG-20260516155640486.json)
+
+  [IMG-20260516155640727.json](IMG-20260516155640727.json)
+
+  [Yiove 书源仓库 - 三千书源](https://shuyuan.yiove.com/ "Yiove 书源仓库 - 三千书源")
+
+### 7.1 书源地址(请支持正版书籍)
+
+  [https://github.com/XIU2/Yuedu](https://github.com/XIU2/Yuedu)
+
+> 数量不多,因为我觉得质量比数量更重要(当然我也不保证质量就一定多么好哈),我以前也用过那些几百上千个的书源列表,杂七杂八太乱了,质量参差不齐,而且正常情况下大家也就主用几个书源罢了。。。
+
+  ​[`https://blog.3cat.cc/142.html`](https://blog.3cat.cc/142.html)
+
+> 本书源集成了1000+个源,基本涵盖全网!  
+> 为了长久使用,请勿滥用!
+
+  书源:
+
+```bash
+https://shuyuan.mgz6.cc/shuyuan/84083d2be227881b0e3b90b9cd01c685.json
+```
+
+  Copy
+
+> ​`json`的就是可以直接导入的  
+> 网址:
+
+  ​[`http://yck.mumuceo.com/yuedu/shuyuan/index.html`](http://yck.mumuceo.com/yuedu/shuyuan/index.html)
+
+  https://legado.aoaostar.com/
+
+  ‍

+ 74 - 0
02-家庭实验室/Docker服务/Docker-compose合集/Rustdesk.md

@@ -0,0 +1,74 @@
+---
+title: Rustdesk
+date: 2024-11-15T18:08:19+08:00
+lastmod: 2024-11-15T18:09:20+08:00
+---
+
+# Rustdesk
+
+# Docker-compose-rustdesk-server
+
+```yaml
+version: '3'
+networks:
+  rustdesk-net:
+    external: false
+services:
+  hbbs:
+    container_name: hbbs
+    ports:
+      - 21115:21115
+      - 21116:21116 # 自定义 hbbs 映射端口
+      - 21116:21116/udp # 自定义 hbbs 映射端口
+    image: rustdesk/rustdesk-server
+    command: hbbs -r 139.185.50.105:21117 -k _ # 填入个人域名或 IP + hbbr 暴露端口 -k _ 后缀代码
+    volumes:
+      - ./hbbs:/root # 自定义挂载目录、挂载认证文件
+    networks:
+      - rustdesk-net
+    depends_on:
+      - hbbr
+    restart: unless-stopped
+    deploy:
+      resources:
+        limits:
+          memory: 64M
+  hbbr:
+    container_name: hbbr
+    ports:
+      - 21117:21117 # 自定义 hbbr 映射端口
+    image: rustdesk/rustdesk-server
+    command: hbbr
+    volumes:
+      - ./hbbr:/root # 自定义挂载目录、挂载认证文件
+    networks:
+      - rustdesk-net
+    restart: unless-stopped
+    deploy:
+      resources:
+        limits:
+          memory: 64M
+
+```
+
+# Docker-compose-rustdesk-api
+
+```yaml
+version: "3"
+services:
+  rustdesk-api-server:
+    container_name: rustdesk-api-server
+    image: ghcr.io/kingmo888/rustdesk-api-server:latest
+    environment:
+      # CSRF_TRUSTED_ORIGINS=http://yourdomain.com:21114 #防跨域信任来源,可选
+      # ID_SERVER=yourdomain.com                         #Web控制端使用的ID服务器,可选
+      - ALLOW_REGISTRATION = True
+    volumes:
+      - /var/lib/docker/volumes/rustdesk-api/_data:/rustdesk-api-server/db #修改/yourpath/db为你宿主机数据库挂载目录
+      - /etc/timezone:/etc/timezone:ro
+      - /etc/localtime:/etc/localtime:ro
+    network_mode: bridge
+    ports:
+      - "21114:21114"
+    restart: unless-stopped
+```

+ 13 - 0
02-家庭实验室/Docker服务/Docker-compose合集/StreamCap.md

@@ -0,0 +1,13 @@
+---
+title: StreamCap
+date: 2025-11-09T16:53:52+08:00
+lastmod: 2025-11-09T16:55:33+08:00
+---
+
+# StreamCap
+
+  StreamCap 是一个基于FFmpeg和StreamGet的多平台直播流录制客户端,覆盖 40+ 国内外主流直播平台,支持批量录制、循环监控、定时监控和自动转码等功能。
+
+  [https://github.com/ihmily/StreamCap](https://github.com/ihmily/StreamCap)
+
+  ‍

+ 24 - 0
02-家庭实验室/Docker服务/Docker-compose合集/Tailscale.md

@@ -0,0 +1,24 @@
+---
+title: Tailscale
+date: 2025-09-20T15:53:40+08:00
+lastmod: 2025-09-20T15:54:05+08:00
+---
+
+# Tailscale
+
+```bash
+docker run -d \
+  --name=ts	\
+  --restart=always	\
+  -v /var/lib:/var/lib \
+  -v /dev/net/tun:/dev/net/tun \
+  --network=host	\
+  --cap-add=NET_ADMIN	\
+  --cap-add=NET_RAW	\
+  --env TS_STATE_DIR=/etc/ts \
+  --env TS_SOCKET=/var/run/tailscale/tailscaled.sock \
+  --env TS_USERSPACE=false \
+  --env TS_ROUTES=10.10.10.0/24  \
+  --env TS_AUTHKEY=tskey-auth-k9v5tmvnVB11CNTRL-efiGc3kppQXceJMLqE1jQXd9QwPHanMGW   \
+tailscale/tailscale
+```

+ 95 - 0
02-家庭实验室/Docker服务/Docker-compose合集/Tailscale配置说明.md

@@ -0,0 +1,95 @@
+---
+title: Tailscale配置说明
+date: 2025-09-20T15:54:54+08:00
+lastmod: 2025-09-20T16:01:19+08:00
+---
+
+# Tailscale配置说明
+
+  参考视频:
+
+  [Tailscale玩法之内网穿透、异地组网、全隧道模式、纯IP的双栈DERP搭建、Headscale协调服务器搭建,用一期搞定,看一看不亏吧?](https://www.youtube.com/watch?v=mgDpJX3oNvI)
+
+### 开启路由转发功能
+
+```bash
+#查看是否开启路由转发
+sysctl net.ipv4.ip_forward
+
+#查看结果:
+net.ipv4.ip_forward = 1
+
+#或者
+cat /proc/sys/net/ipv4/ip_forward
+#结果
+#输出 1 = 已开启
+#输出 0 = 未开启
+
+#永久开启
+echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
+sudo sysctl -p
+```
+
+### 开启虚拟网卡
+
+```bash
+sudo -i
+
+echo -e '#!/bin/sh -e \ninsmod /lib/modules/tun.ko' > /usr/local/etc/rc.d/tun.sh
+chmod a+x /usr/local/etc/rc.d/tun.sh
+/usr/local/etc/rc.d/tun.sh
+ls /dev/net/tun
+```
+
+### Docker部署
+
+```docker
+docker run -d \
+  --name=ts	\
+  --restart=always	\
+  -v /var/lib:/var/lib \
+  -v /dev/net/tun:/dev/net/tun \
+  --network=host	\
+  --cap-add=NET_ADMIN	\
+  --cap-add=NET_RAW	\
+  --env TS_STATE_DIR=/etc/ts \
+  --env TS_SOCKET=/var/run/tailscale/tailscaled.sock \
+  --env TS_USERSPACE=false \
+  --env TS_ROUTES=10.10.10.0/24  \
+  --env TS_AUTHKEY=tskey-auth-k9v5tmvnVB11CNTRL-efiGc3kppQXceJMLqE1jQXd9QwPHanMGW   \
+tailscale/tailscale
+```
+
+### 登录tailscale 网页
+
+  一、设置关闭认证KEY
+
+  二、开启IP路由配置
+
+### 服务器部署防火墙
+
+```bash
+iptables -I FORWARD -i <IP地址指定网卡,例如eth1> -j ACCEPT
+iptables -I FORWARD -o <IP地址指定网卡,例如eth1> -j ACCEPT
+iptables -t nat -I POSTROUTING -o <IP地址指定网卡,例如eth1> -j MASQUERADE
+iptables -I FORWARD -i tailscale0 -j ACCEPT
+iptables -I FORWARD -o tailscale0 -j ACCEPT
+iptables -t nat -I POSTROUTING -o tailscale0 -j MASQUERADE
+```
+
+### 查看防火墙是否配置完成
+
+```bash
+iptables -L -n -v
+```
+
+  输出结果包含:
+
+```bash
+Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
+ pkts bytes target     prot opt in     out     source               destination
+    0     0 ACCEPT     all  --  ovs_bond0  *       0.0.0.0/0            0.0.0.0/0
+    0     0 ACCEPT     all  --  *        ovs_bond0  0.0.0.0/0            0.0.0.0/0
+    0     0 ACCEPT     all  --  tailscale0 *       0.0.0.0/0            0.0.0.0/0
+    0     0 ACCEPT     all  --  *        tailscale0 0.0.0.0/0            0.0.0.0/0
+```

+ 24 - 0
02-家庭实验室/Docker服务/Docker-compose合集/UmbrelOS.md

@@ -0,0 +1,24 @@
+---
+title: UmbrelOS
+date: 2024-12-13T18:53:43+08:00
+lastmod: 2024-12-13T19:04:40+08:00
+---
+
+# UmbrelOS
+
+  登录名:umbrel 密码:umbrel
+
+```shell
+services:
+  umbrel:
+    image: dockurr/umbrel
+    container_name: umbrel
+    pid: host
+    ports:
+      - 81:80
+    volumes:
+      - "/home/example:/data"
+      - "/var/run/docker.sock:/var/run/docker.sock"
+    stop_grace_period: 1m
+
+```

+ 50 - 0
02-家庭实验室/Docker服务/Docker-compose合集/Vnstat.md

@@ -0,0 +1,50 @@
+---
+title: Vnstat
+date: 2024-11-15T18:07:37+08:00
+lastmod: 2024-11-15T18:07:43+08:00
+---
+
+# Vnstat
+
+```yaml
+services:
+
+  vnstat:
+    image: vergoh/vnstat:latest
+    container_name: vnstat
+    restart: unless-stopped
+    network_mode: "host"
+    volumes:
+      - /etc/localtime:/etc/localtime:ro
+      - /etc/timezone:/etc/timezone:ro
+      - vnstatdb:/var/lib/vnstat
+    environment:
+      - HTTP_PORT=0
+
+  vnstati:
+    image: vergoh/vnstat:latest
+    container_name: vnstati
+    restart: unless-stopped
+    ports:
+      - "8685:8685"
+    volumes:
+      - /etc/localtime:/etc/localtime:ro
+      - /etc/timezone:/etc/timezone:ro
+      - vnstatdb:/var/lib/vnstat:ro
+    environment:
+      - HTTP_PORT=8685
+      - HTTP_LOG=/dev/stdout
+      - LARGE_FONTS=1
+      - CACHE_TIME=1
+      - DARK_MODE=0
+      - PAGE_REFRESH=0
+      - INDEX_IMAGES_PER_ROW=1
+      - INDEX_IMAGE_OUTPUT=hs
+      - VNSTAT_RateUnit=1
+      - VNSTAT_InterfaceOrder=1 #按照流量排序显示
+      - VNSTAT_QueryMode=0
+      - RUN_VNSTATD=0
+
+volumes:
+  vnstatdb:
+```

+ 64 - 0
02-家庭实验室/Docker服务/Docker-compose合集/Watchtower.md

@@ -0,0 +1,64 @@
+---
+title: Watchtower
+date: 2024-12-14T16:32:32+08:00
+lastmod: 2025-09-25T11:22:46+08:00
+---
+
+# Watchtower
+
+```yaml
+version: '3.8'
+
+services:
+  watchtower:
+    image: containrrr/watchtower:latest
+    container_name: watchtower-updater
+    volumes:
+      - /var/run/docker.sock:/var/run/docker.sock
+    restart: unless-stopped
+    environment:
+      - TZ=Asia/Shanghai                   # 时区
+      - WATCHTOWER_CLEANUP=true            # 删除旧镜像
+      - WATCHTOWER_SCHEDULE=0 0 4 * * *    #定时触发  
+      - WATCHTOWER_POLL_INTERVAL=86400     #更新时间24小时
+      - WATCHTOWER_REMOVE_VOLUMES=true     # 更新后删除匿名卷
+      - WATCHTOWER_INCLUDE_RESTARTING=true # 重启容器
+      - WATCHTOWER_RUN_ONCE=true           # 只允许一次更新
+    command:
+      - clouddrive2                # 容器名称或容器ID
+      - portainer
+      - zt
+    healthcheck:
+      test: ["CMD", "/watchtower", "--health-check"]  # 启用健康检查
+      interval: 30s  # 每 30 秒进行一次健康检查
+      retries: 3     # 健康检查失败后重试 3 次
+      start_period: 30s  # 启动后等待 30 秒后开始健康检查
+      timeout: 10s    # 健康检查超时 10 秒
+
+```
+
+```bash
+version: '3.8'
+
+services:
+  watchtower:
+    image: containrrr/watchtower:latest
+    container_name: watchtower-updater
+    volumes:
+      - /var/run/docker.sock:/var/run/docker.sock
+    restart: unless-stopped
+    environment:
+      - TZ=Asia/Shanghai                   # 时区
+      - WATCHTOWER_CLEANUP=true            # 删除旧镜像
+      - WATCHTOWER_SCHEDULE=0 0 4 * * *    # 定时触发  
+      - WATCHTOWER_REMOVE_VOLUMES=true     # 更新后删除匿名卷
+      - WATCHTOWER_INCLUDE_RESTARTING=true # 重启容器
+ 
+    healthcheck:
+      test: ["CMD", "/watchtower", "--health-check"]  # 启用健康检查
+      interval: 30s        # 每 30 秒进行一次健康检查
+      retries: 3           # 健康检查失败后重试 3 次
+      start_period: 30s    # 启动后等待 30 秒后开始健康检查
+      timeout: 10s         # 健康检查超时 10 秒
+
+```

+ 280 - 0
02-家庭实验室/Docker服务/Docker-compose合集/ZeroTier.md

@@ -0,0 +1,280 @@
+---
+title: ZeroTier
+date: 2024-11-16T14:07:31+08:00
+lastmod: 2026-03-10T10:40:37+08:00
+---
+
+# ZeroTier
+
+  基础指令:`zerotier-cli peers`
+
+> 1. [群晖部署](#20241214150529-9g8ngwv)
+>
+>    1. [Create a persistent TUN](#20241116140735-qtigym5)
+>    2. [Install docker on your NAS](#20241116140735-9yxo6zx)
+>    3. [Set up container](#20241116140735-kvb8bpq)
+>    4. [Usage](#20241116140735-utigdu9)
+>    5. [Upgrading ZeroTier](#20241116140735-ywc4iy4)
+> 2. [iStoreOS部署](#20241214150547-17h0b8e)
+> 3. [删除 ZeroTier 网络:](#20241214150746-h67e5fb)
+> 4. [卸载ZeroTier](#20241214150740-6qd6cit)
+
+  ‍
+
+# <span id="20241214150529-9g8ngwv" style="display: none;"></span>群晖部署
+
+## <span id="20241116140735-qtigym5" style="display: none;"></span>Create a persistent TUN
+
+  SSH into your NAS
+
+```sh
+ssh user@local-ip
+```
+
+  The following setup steps must be run as root
+
+```sh
+sudo -i
+```
+
+  Write script to `/usr/local/etc/rc.d/tun.sh`​ that will setup `/dev/net/tun` on startup
+
+```sh
+echo -e '#!/bin/sh -e \ninsmod /lib/modules/tun.ko' > /usr/local/etc/rc.d/tun.sh
+```
+
+  Set executable permissions on script
+
+```sh
+chmod a+x /usr/local/etc/rc.d/tun.sh
+```
+
+  Run script once to create a TUN
+
+```sh
+/usr/local/etc/rc.d/tun.sh
+```
+
+  Check for the TUN
+
+```sh
+ls /dev/net/tun
+/dev/net/tun
+```
+
+  *If you experience trouble getting the TUN to work check out* *[Rui Marinho's guide](https://memoryleak.dev/post/fix-tun-tap-not-available-on-a-synology-nas/)*
+
+## <span id="20241116140735-9yxo6zx" style="display: none;"></span>Install [docker](https://www.synology.com/en-us/dsm/packages/Docker) on your NAS
+
+  ​`Package Center -> Search "Docker" -> Install`
+
+## <span id="20241116140735-kvb8bpq" style="display: none;"></span>Set up container
+
+  Make directory to store ZeroTier's identity and config
+
+```sh
+mkdir /var/lib/zerotier-one
+```
+
+  cautionIn the next step we bind mount to the host's `/var/lib/zerotier-one` created above in order to store ZeroTier's identity. This is not guaranteed to survive DSM updates. I would suggest placing this on an automatically-mounted volume where your other private user data resides. The location you choose to store your identities should be kept secure and never placed on a shared volume that others can access.
+
+  Make Docker container called `zt`​ (Repo: [zerotier/zerotier-synology](https://hub.docker.com/repository/docker/zerotier/zerotier-synology))
+
+```sh
+docker run -d           \
+  --name zt             \
+  --restart=always      \
+  --device=/dev/net/tun \
+  --net=host            \
+  --cap-add=NET_ADMIN   \
+  --cap-add=SYS_ADMIN   \
+  -v /var/lib/zerotier-one:/var/lib/zerotier-one zerotier/zerotier-synology:latest
+
+```
+
+```yaml
+version: '3.8'
+
+services:
+  zt:
+    image: zerotier/zerotier-synology:latest
+    container_name: zt
+    restart: always
+    devices:
+      - /dev/net/tun
+    network_mode: host
+    cap_add:
+      - NET_ADMIN
+      - SYS_ADMIN
+    volumes:
+      - /var/lib/zerotier-one:/var/lib/zerotier-one
+
+```
+
+## <span id="20241116140735-utigdu9" style="display: none;"></span>Usage
+
+  Previous versions of our package contained a GUI, however this is *no longer the case* and it is for the better. The CLI can be used as follows:
+
+  View node status
+
+```sh
+docker exec -it zt zerotier-cli status
+```
+
+  Join your network
+
+```sh
+docker exec -it zt zerotier-cli join e5cd7a9e1cae134f
+```
+
+  Authorize the NAS on your [network](https://my.zerotier.com/). Then view the network status:
+
+```sh
+docker exec -it zt zerotier-cli listnetworks
+```
+
+  Show running container (optional)
+
+```sh
+docker ps
+```
+
+  Enter the container (optional)
+
+```sh
+docker exec -it zt bash
+```
+
+## <span id="20241116140735-ywc4iy4" style="display: none;"></span>Upgrading ZeroTier
+
+  To upgrade ZeroTier you'll need to stop and remove the container, then pull latest and start a new container:
+
+```sh
+docker ps
+```
+
+  Example output:
+
+```sh
+CONTAINER ID   IMAGE                               COMMAND          CREATED       STATUS      PORTS     NAMES
+52c7cb58a1dd   zerotier/zerotier-synology:latest   "zerotier-one"   5 weeks ago   Up 9 days             zt
+```
+
+  Stop the container
+
+```sh
+docker stop 52c7cb58a1dd
+```
+
+  Remove the container
+
+```sh
+docker container rm 52c7cb58a1dd
+```
+
+  Pull latest updates
+
+```sh
+docker pull zerotier/zerotier-synology:latest
+```
+
+  Now, re-run the commands from the [Set up container](https://docs.zerotier.com/synology/#set-up-container) section.
+
+# <span id="20241214150547-17h0b8e" style="display: none;"></span>iStoreOS部署
+
+1. **更新软件包列表**: 打开终端,确保你的系统是最新的:
+
+   ```bash
+   opkg update
+   ```
+2. **安装 ZeroTier**: 你需要添加 ZeroTier 的官方源,然后安装 ZeroTier。
+
+   ```bash
+   opkg install zerotier
+   ```
+3. **启用 ZeroTier 服务**:
+
+   你需要手动启用 ZeroTier 服务。编辑 `/etc/config/zerotier`​ 文件并将 `enabled`​ 设置为 `1`,以便启动服务。
+
+   编辑配置文件:
+
+   ```bash
+   vi /etc/config/zerotier
+   ```
+
+   查找并修改以下部分:
+
+   ```bash
+   config zerotier 'global'
+       option enabled '1'  # 如果为 '0',改为 '1' 启用 ZeroTier 服务
+   ```
+4. **启动 ZeroTier 服务**: 安装完成后,启动 ZeroTier 服务:
+
+   ```bash
+   /etc/init.d/zerotier start
+   ```
+5. **将 ZeroTier 设置为开机自启**: 设置 ZeroTier 在系统启动时自动启动:
+
+   ```bash
+   /etc/init.d/zerotier enable
+   ```
+6. **加入 ZeroTier 网络**: 使用以下命令加入你的 ZeroTier 网络。请替换 `your_network_id` 为你的 ZeroTier 网络 ID:
+
+   ```bash
+   zerotier-cli join your_network_id
+   ```
+7. **验证连接**: 查看 ZeroTier 设备的状态,确保它已成功连接到网络:
+
+   ```bash
+   zerotier-cli status
+   ```
+8. **查看设备在 ZeroTier 网络中的状态**: 在 ZeroTier 控制面板([https://my.zerotier.com)中,确认你的设备已连接,并授权该设备。]()
+
+# <span id="20241214150746-h67e5fb" style="display: none;"></span>删除 ZeroTier 网络:
+
+1. **使用** **​`zerotier-cli leave`​**​ **命令退出网络**:  
+   首先,运行以下命令来离开该网络:
+
+   ```bash
+   zerotier-cli leave 8056c2e21c000001
+   ```
+
+   这会将设备从 `NOT_FOUND` 状态的网络中移除。
+2. **验证网络是否删除**:  
+   执行完离开命令后,运行以下命令来验证网络是否已经从列表中删除:
+
+   ```bash
+   zerotier-cli listnetworks
+   ```
+
+   如果网络已经成功删除,它将不再出现在列表中。
+
+# <span id="20241214150740-6qd6cit" style="display: none;"></span>卸载ZeroTier
+
+1. **停止 ZeroTier 服务**:  
+   在卸载之前,首先停止 ZeroTier 服务:
+
+   ```bash
+   /etc/init.d/zerotier stop
+   ```
+2. **卸载 ZeroTier 包**:  
+   使用 `opkg` 卸载 ZeroTier 包:
+
+   ```bash
+   opkg remove zerotier
+   ```
+3. **删除配置文件和数据目录**:  
+   为了彻底清理之前的安装,可以删除配置文件和数据目录:
+
+   ```bash
+   rm -rf /etc/config/zerotier
+   rm -rf /var/lib/zerotier-one
+   ```
+   **注意**:这会删除 ZeroTier 的所有配置和数据,包括网络信息。如果你以后打算重新使用同一个网络或保存当前配置,记得先备份这些文件。
+4. **检查 ZeroTier 是否完全卸载**:  
+   通过以下命令确认 ZeroTier 是否已完全卸载:
+
+   ```bash
+   zerotier-cli info
+   ```
+   如果输出类似 `command not found`​ 或提示 `ZeroTier not installed`,则表示已成功卸载。

+ 195 - 0
02-家庭实验室/Docker服务/Docker-compose合集/ZeroTier/ZeroTier路由器配置文档.md

@@ -0,0 +1,195 @@
+---
+title: ZeroTier路由器配置文档
+date: 2024-11-20T11:32:25+08:00
+lastmod: 2024-11-20T11:51:04+08:00
+---
+
+# ZeroTier路由器配置文档
+
+### **步骤 1: 确认路由器支持 ZeroTier**
+
+  确保你的路由器固件版本支持安装 ZeroTier:
+
+1. 路由器运行的是 OpenWrt 固件(建议版本 19.07 或更高)。
+2. 确保路由器的存储空间和性能足以运行 ZeroTier。
+
+---
+
+### **步骤 2: 更新软件包列表**
+
+  通过 SSH 登录到路由器,并运行以下命令:
+
+```bash
+opkg update
+```
+
+---
+
+### **步骤 3: 安装 ZeroTier**
+
+  安装 ZeroTier 软件包:
+
+```bash
+opkg install zerotier
+```
+
+---
+
+### **步骤 4: 启动 ZeroTier**
+
+  启用并启动 ZeroTier 服务:
+
+```bash
+/etc/init.d/zerotier enable
+/etc/init.d/zerotier start
+```
+
+---
+
+### **步骤 5: 加入 ZeroTier 网络**
+
+1. 创建或获取 ZeroTier 网络 ID:
+
+   - 登录 [ZeroTier Central]() 并创建一个网络。
+   - 记录下生成的 16 位网络 ID。
+2. 在路由器上加入该网络:
+
+   ```bash
+   zerotier-cli join <网络ID>
+   ```
+3. 登录 ZeroTier Central,将路由器的设备授权加入网络。
+
+---
+
+### **步骤 6: 验证网络连接**
+
+1. 使用命令检查 ZeroTier 网络状态:
+
+   ```bash
+   zerotier-cli listnetworks
+   ```
+2. 确认路由器已经成功加入目标网络。
+
+---
+
+### **步骤 7: 配置路由器网络**
+
+  根据需求,可以将 ZeroTier 虚拟网络设置为:
+
+- **旁路由模式:**  仅为路由器和设备之间的通信服务。
+- **全局路由模式:**  为其他设备提供 ZeroTier 网络的访问。
+
+---
+
+### **常见问题**
+
+1. **ZeroTier 服务未启动:** 确保相关依赖包已安装:
+
+   ```bash
+   opkg install kmod-tun
+   ```
+
+   然后重新启动 ZeroTier。
+2. **无法加入网络:** 检查路由器防火墙设置,确保开放了 ZeroTier 使用的 UDP 端口(默认 9993)。
+
+---
+
+  如果使用的是其他类型的路由器固件,比如 Padavan 或其他,需要通过其专属插件或手动安装方式进行设置,可以提供更多信息进一步帮助你。
+
+  ‍
+
+  出现错误`disabled in /etc/config/zerotier`
+
+### **1. 修改 ZeroTier 配置文件**
+
+  编辑 ZeroTier 的配置文件,启用服务:
+
+```bash
+vi /etc/config/zerotier
+```
+
+  找到以下内容:
+
+```plaintext
+option enabled '0'
+```
+
+  将 `0`​ 改为 `1`,保存退出:
+
+```plaintext
+option enabled '1'
+```
+
+  保存后,按以下命令重新加载配置并启动:
+
+```bash
+/etc/init.d/zerotier restart
+```
+
+---
+
+### **2. 验证 ZeroTier 状态**
+
+  确认 ZeroTier 已正常启动:
+
+```bash
+zerotier-cli status
+```
+
+  输出类似以下内容表示正常运行:
+
+```plaintext
+200 info <your_node_id> ONLINE
+```
+
+---
+
+### **3. 加入 ZeroTier 网络**
+
+  如果服务已正常运行,可以加入网络:
+
+```bash
+zerotier-cli join <你的网络ID>
+```
+
+  然后在 ZeroTier Central 的管理页面上授权你的设备。
+
+### **检查服务是否已配置开机启动**
+
+  运行以下命令查看开机启动状态:
+
+```bash
+ls /etc/rc.d | grep zerotier
+```
+
+  如果输出类似以下内容:
+
+```plaintext
+S90zerotier -> ../init.d/zerotier
+```
+
+  表示服务已配置为开机启动。
+
+### **手动配置开机启动**
+
+  如果未自动配置,可以运行以下命令:
+
+```bash
+/etc/init.d/zerotier enable
+```
+
+---
+
+### **测试开机启动**
+
+1. 重启路由器:
+
+   ```bash
+   reboot
+   ```
+2. 重启后登录路由器,检查 ZeroTier 服务状态:
+
+   ```bash
+   zerotier-cli status
+   ```
+   如果状态为 `ONLINE`,说明服务已正常启动。

+ 20 - 0
02-家庭实验室/Docker服务/Docker-compose合集/aipan-netdisk-search.md

@@ -0,0 +1,20 @@
+---
+title: aipan-netdisk-search
+date: 2024-12-15T14:34:38+08:00
+lastmod: 2024-12-15T14:35:10+08:00
+---
+
+# aipan-netdisk-search
+
+```yaml
+version: '3'
+services:
+  aipan-netdisk-search:
+    image: fooololo/aipan-netdisk-search
+    container_name: aipan-netdisk-search
+    ports:
+      - "3000:3000"
+    restart: unless-stopped
+```
+
+  ‍

+ 55 - 0
02-家庭实验室/Docker服务/Docker-compose合集/copyparty.md

@@ -0,0 +1,55 @@
+---
+title: copyparty
+date: 2025-08-13T11:44:14+08:00
+lastmod: 2025-08-13T11:46:47+08:00
+---
+
+# copyparty
+
+```bash
+version: '3.8'
+
+services:
+  copyparty:
+    image: copyparty/ac
+    container_name: copyparty
+    ports:
+      - "3923:3923"
+      - "8086:8086"
+    volumes:
+      - /volume1/系统管理员网盘/configs:/cfg
+      - /volume1/系统管理员网盘/zlsh:/w
+    restart: unless-stopped
+
+```
+
+  ​`copyparty.conf`
+
+```bash
+[global]
+  p: 3923, 8086     # listen on ports 8086 and 3939
+  e2d, e2t          # remember uploads & read media tags
+  rss, daw, ver     # some other nice-to-have features
+  #dedup            # you may want this, or maybe not
+  hist: /cfg/hist   # don't pollute the shared-folder
+  name: synology    # shows in the browser, can be anything
+
+[accounts]
+  zlsh: zlsh   # username ed, password wark
+  ppd: ppd     # username ed, password wark
+
+[/]          # 主网页地址不可修改
+  /w         # 绑定容器挂载地址
+  accs:
+    A: zlsh    # give Admin to username ed
+
+[/ppd]       # 分支网页链接必须包含
+  /w/ppd     # 绑定容器挂载地址【系统会自动创建相应文件夹】
+  accs:
+    rw: ppd  # only these accounts can read
+     A: zlsh
+
+# hide the synology system files by creating a hidden volume
+[/@eaDir]
+  /w/@eaDir
+```

+ 12 - 0
02-家庭实验室/Docker服务/Docker-compose合集/dailyhot.md

@@ -0,0 +1,12 @@
+---
+title: dailyhot
+date: 2025-04-11T15:19:51+08:00
+lastmod: 2025-04-11T15:20:06+08:00
+---
+
+# dailyhot
+
+```bash
+docker run -d -p 82:80 -e APP_ICP="京备ICP12345" -e APP_COPYRIGHT="Example" -e APP_COPYRIGHT_URL="http:
+//localhost" rehiy/dailyhot
+```

+ 63 - 0
02-家庭实验室/Docker服务/Docker-compose合集/epicgames-config配置文件.md

@@ -0,0 +1,63 @@
+---
+title: epicgames-config配置文件
+date: 2024-11-23T22:11:23+08:00
+lastmod: 2025-10-25T13:29:30+08:00
+---
+
+# epicgames-config配置文件
+
+  Gmail开启STMP服务
+
+  配置应用密码[配置地址](https://support.google.com/accounts/answer/185833)
+
+  邮箱stmp密码`qbmg xqmh naue mswo`
+
+  ​`zhensolid@gmail.com邮箱会将收到的信息发送给zhensolid@vip.qq.com`
+
+```json
+{
+  "runOnStartup": true,
+  "timezone": "Asia/Shanghai",   
+  "cronSchedule": "0 0,6,12,18 * * *",
+  "logLevel": "info",
+  "testNotifiers": true, 
+  "webPortalConfig": {
+    "baseUrl": "http://139.185.41.147:3100"
+  },
+  "accounts": [
+    {
+      "email": "zhensolid@vip.qq.com",
+      "password": "你的Epic密码"
+    }
+  ],
+  "notifiers": [
+    {
+      "type": "email",
+      "smtpHost": "smtp.gmail.com",
+      "smtpPort": 587,
+      "emailSenderAddress": "zhensolid@gmail.com",
+      "emailSenderName": "Epic Games Captchas",
+      "emailRecipientAddress": "zhensolid@vip.qq.com",
+      "secure": false,
+      "auth": {
+        "user": "zhensolid@gmail.com",
+        "pass": "qbmgxqmhnauemswo"
+      }
+    },
+    {
+      "type": "telegram",
+      "apiUrl": "https://api.telegram.org",
+      "token": "6901449744:AAG9BwE-fRiMY9_YKOmuNnoZqR2achoqMN4",
+      "chatId": "793442820"
+    },
+    {
+      "type":"webhook",
+      "url":"https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=YOUR_WEBHOOK_KEY",
+      "headers": {
+        "Content-Type": "application/json"
+      }
+    }
+  ]
+}
+
+```

+ 24 - 0
02-家庭实验室/Docker服务/Docker-compose合集/epicgames-freegames.md

@@ -0,0 +1,24 @@
+---
+title: epicgames-freegames
+date: 2024-11-23T22:10:42+08:00
+lastmod: 2025-05-21T12:33:51+08:00
+---
+
+# epicgames-freegames
+
+```yaml
+services:
+  epic-free-games:
+    image: ghcr.io/claabs/epicgames-freegames-node:latest
+    container_name: epic-free-games
+    ports:
+      - "3100:3000"
+    volumes:
+      - /mnt/mydata/epic-game-free/:/usr/app/config:rw
+    mem_limit: 2g
+    restart: unless-stopped 
+```
+
+  查看容器日志使用地址直接进入配置页面。
+
+  ‍

+ 31 - 0
02-家庭实验室/Docker服务/Docker-compose合集/immich.md

@@ -0,0 +1,31 @@
+---
+title: immich
+date: 2024-11-27T20:11:59+08:00
+lastmod: 2024-11-27T20:15:50+08:00
+---
+
+# immich
+
+  [Immich官方网站](https://immich.app/)
+
+```bash
+mkdir ./immich-app
+cd ./immich-app
+```
+
+```bash
+wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
+
+```
+
+  Tip: 时区修改`TZ=Asia/Shanghai`
+
+```bash
+wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
+```
+
+  其余配置基本上不需要修改,注意docker-compose会在当前位置创建文件夹
+
+  如果有任何问题可查看<span data-type="text" style="color: var(--b3-font-color10);">官方文档</span>
+
+  ‍

+ 30 - 0
02-家庭实验室/Docker服务/Docker-compose合集/minio.md

@@ -0,0 +1,30 @@
+---
+title: minio
+date: 2025-06-20T14:59:04+08:00
+lastmod: 2025-11-13T16:35:48+08:00
+---
+
+# minio
+
+  ​<kbd>登录账号</kbd>​:<kbd>ROOTNAME</kbd>
+
+  ​<kbd>登录密码</kbd>​:<kbd>CHANGEME123</kbd>
+
+```bash
+services:
+ minio:
+  image: minio/minio:RELEASE.2025-04-22T22-12-26Z
+  container_name: minio
+  command: server /data --console-address ":9001"
+  ports:
+   - 9000:9000                    #传输端口
+   - 9001:9001                    #访问端口
+  volumes:
+   - /volume1/Siyuan/minio:/data
+  environment:
+   - MINIO_ROOT_USER=ROOTNAME
+   - MINIO_ROOT_PASSWORD=CHANGEME123
+  restart: always
+```
+
+  ‍

+ 35 - 0
02-家庭实验室/Docker服务/Docker-compose合集/minio文档.md

@@ -0,0 +1,35 @@
+---
+title: minio文档
+date: 2025-06-20T15:01:00+08:00
+lastmod: 2025-06-20T15:15:23+08:00
+---
+
+# minio文档
+
+## 创建用户
+
+![[IMG-20260516155642509.png]]
+
+![[IMG-20260516155643857.png]]
+
+## 创建桶
+
+![[IMG-20260516155643996.png]]
+
+![[IMG-20260516155644089.png]]
+
+## 获取 Access Key 和 Secret Key
+
+![[IMG-20260516155644146.png]]
+
+![[IMG-20260516155644198.png]]
+
+## Region([服务器](https://www.smzdm.com/fenlei/fuwuqi/)位置)
+
+![[IMG-20260516155644254.png]]
+
+## 配置思源
+
+  注意根据自己的端口号填写
+
+![[IMG-20260516155644313.png]]

+ 74 - 0
02-家庭实验室/Docker服务/Docker-compose合集/mopidy.md

@@ -0,0 +1,74 @@
+---
+title: mopidy
+date: 2024-12-20T14:59:45+08:00
+lastmod: 2024-12-20T15:20:24+08:00
+---
+
+# mopidy
+
+```yaml
+version: '3.5'
+services:
+    mopidy:
+        container_name: mopidy
+        restart: always
+      
+        ## Run container as root
+        # This is required to modify the PUID and PGID by entrypoint script
+        user: root
+
+        ## Run cointainer in privileged mode (can help with permission issues)
+        # privileged: true
+
+        ## Add container to audio group 
+        # change group name or id to your system's audio group
+        group_add:
+            - audio
+      
+        ## Add audio device 
+        # Change to your system's audio device
+        #devices:
+        #    - /dev/snd
+
+        volumes:
+            # Mopidy config files
+            - './config:/config'
+          
+            # Local media dir
+            - './media:/media:ro'
+          
+            # Store mopidy library and images on host (persistent)
+            - './local:$HOME/local'
+          
+            # Keep spotify credetnials (persistent)
+            - './.spotify:$HOME/spotify'
+
+            ## Host Audio Support
+            # --- ALSA ---
+            # Mopidy Config: [audio] output=alsasink
+            # Optional: If you have specific configurations or adjustments defined
+            #- /etc/asound.conf:/etc/asound.conf
+            #- /usr/share/alsa:/usr/share/alsa
+
+            # --- PulseAudio ---
+            # Mopidy Config: [audio] output=pulsesink
+            # PulseAudio config (path should match with PUID)
+            #- $XDG_RUNTIME_DIR/pulse/native:/tmp/pulseaudio.socket  # socket
+        ports:
+            - '6600:6600'   # JSON-RPC API and MPD protocol
+            - '6680:6680'   # HTTP WebUI
+          
+        image: 'jojo141185/mopidy:latest'   # ImageName:Version
+      
+        environment: 
+            # Set mopidy user and audio group id to match host's specific permissions
+            #- PUID=1000
+            #- PGID=29
+
+            # PulseAudio server socket for communication (path should match with PUID)
+            #- PULSE_SERVER=unix:/tmp/pulseaudio.socket
+            #- PULSE_COOKIE=/tmp/pulseaudio.cookie  # (optional)
+          
+            # Install additional pip packages
+            - PIP_PACKAGES=Mopidy-TuneIn Mopidy-Youtube yt-dlp Mopidy-Spotify
+```

+ 27 - 0
02-家庭实验室/Docker服务/Docker-compose合集/musicn-container.md

@@ -0,0 +1,27 @@
+---
+title: musicn-container
+date: 2025-02-23T17:53:57+08:00
+lastmod: 2025-02-23T17:55:08+08:00
+---
+
+# musicn-container
+
+  Github项目:https://github.com/wy580477/musicn-container
+
+```bash
+version: '3.8'
+
+services:
+  musicn:
+    image: ghcr.io/wy580477/musicn-container:latest
+    container_name: musicn
+    ports:
+      - "7478:7478"
+    volumes:
+      - /mnt/mydata/musicn-container/data:/data
+    command: msc -q
+    restart: unless-stopped
+
+```
+
+  ‍

+ 57 - 0
02-家庭实验室/Docker服务/Docker-compose合集/node_exporter+Prometheus+grafana.md

@@ -0,0 +1,57 @@
+---
+title: node_exporter+Prometheus+grafana
+date: 2024-12-07T17:40:00+08:00
+lastmod: 2024-12-07T17:40:34+08:00
+---
+
+# node_exporter+Prometheus+grafana
+
+```yaml
+version: '3.8'
+
+services:
+  node_exporter:
+    image: prom/node-exporter:latest
+    container_name: node_exporter
+    restart: unless-stopped
+    networks:
+      - monitoring
+    command:
+      - '--path.rootfs=/host'
+    pid: host
+    volumes:
+      - '/:/host:ro,rslave'
+
+  prometheus:
+    image: prom/prometheus:latest
+    container_name: prometheus
+    restart: unless-stopped
+    networks:
+      - monitoring
+    volumes:
+      - ./prometheus:/etc/prometheus
+      - ./data/prometheus:/prometheus
+    command:
+      - '--config.file=/etc/prometheus/prometheus.yml'
+      - '--storage.tsdb.path=/prometheus'
+      - '--web.console.libraries=/usr/share/prometheus/console_libraries'
+      - '--web.console.templates=/usr/share/prometheus/consoles'
+
+  grafana:
+    image: grafana/grafana:latest
+    container_name: grafana
+    restart: unless-stopped
+    networks:
+      - monitoring
+    ports:
+      - "3081:3000"
+    volumes:
+      - ./data/grafana:/var/lib/grafana
+    environment:
+      - GF_SECURITY_ADMIN_PASSWORD=admin123
+
+networks:
+  monitoring:
+    driver: bridge
+
+```

+ 18 - 0
02-家庭实验室/Docker服务/Docker-compose合集/orcmyPDF.md

@@ -0,0 +1,18 @@
+---
+title: orcmyPDF
+date: 2025-05-29T09:59:09+08:00
+lastmod: 2025-05-29T10:27:46+08:00
+---
+
+# orcmyPDF
+
+```bash
+docker pull jbarlow83/ocrmypdf-alpine
+```
+
+```bash
+docker run --rm -v d:/ocr:/data jbarlow83/ocrmypdf-alpine /data/input.pdf /data/output.pdf 
+本地地址挂在容器然后输出
+```
+
+  ‍

+ 60 - 0
02-家庭实验室/Docker服务/Docker-compose合集/phpipam.md

@@ -0,0 +1,60 @@
+---
+title: phpipam
+date: 2024-12-02T16:27:58+08:00
+lastmod: 2024-12-02T16:28:09+08:00
+---
+
+# phpipam
+
+```yaml
+# WARNING: Replace the example passwords with secure secrets.
+# WARNING: 'my_secret_phpipam_pass' and 'my_secret_mysql_root_pass'
+
+version: '3'
+
+services:
+  phpipam-web:
+    image: dockerpull.org/phpipam/phpipam-www:latest
+    ports:
+      - "8088:80"
+    cap_add:
+      - NET_ADMIN
+      - NET_RAW
+    environment:
+      - TZ=Asia/Shanghai
+      - IPAM_DATABASE_HOST=phpipam-mariadb
+      - IPAM_DATABASE_PASS=my_secret_phpipam_pass
+      - IPAM_DATABASE_WEBHOST=%
+    restart: unless-stopped
+    volumes:
+      - phpipam-logo:/phpipam/css/images/logo
+      - phpipam-ca:/usr/local/share/ca-certificates:ro
+    depends_on:
+      - phpipam-mariadb
+
+  phpipam-cron:
+    image: dockerpull.org/phpipam/phpipam-cron:latest
+    environment:
+      - TZ=Asia/Shanghai
+      - IPAM_DATABASE_HOST=phpipam-mariadb
+      - IPAM_DATABASE_PASS=my_secret_phpipam_pass
+      - SCAN_INTERVAL=1h
+    restart: unless-stopped
+    volumes:
+      - phpipam-ca:/usr/local/share/ca-certificates:ro
+    depends_on:
+      - phpipam-mariadb
+
+  phpipam-mariadb:
+    image: dockerpull.org/mariadb:latest
+    environment:
+      - MYSQL_ROOT_PASSWORD=my_secret_mysql_root_pass
+    restart: unless-stopped
+    volumes:
+      - phpipam-db-data:/var/lib/mysql
+
+volumes:
+  phpipam-db-data:
+  phpipam-logo:
+  phpipam-ca:
+```

+ 51 - 0
02-家庭实验室/Docker服务/Docker-compose合集/readerwebview.md

@@ -0,0 +1,51 @@
+---
+title: readerwebview
+date: 2024-12-15T14:55:59+08:00
+lastmod: 2024-12-15T19:38:55+08:00
+---
+
+# readerwebview
+
+  官方文档:
+
+  [https://github.com/hectorqin/reader/tree/master](https://github.com/hectorqin/reader/tree/master)
+
+```yaml
+version: '3.1'
+services:
+# reader 在线阅读
+# 公开服务器(服务器位于日本):[https://reader.nxnow.top](https://reader.nxnow.top) 测试账号/密码分别为guest/guest123,也可自行创建账号添加书源,不定期删除长期未登录账号(2周)
+# 书源集合 : [https://legado.aoaostar.com/](https://legado.aoaostar.com/) 点击打开连接,添加远程书源即可
+# 公众号汇总 : [https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MjM5MzMyMDgyMA==&action=getalbum&album_id=2397535253763801090#wechat_redirect](https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MjM5MzMyMDgyMA==&action=getalbum&album_id=2397535253763801090#wechat_redirect)
+# 手动更新方式 : docker-compose pull && docker-compose up -d
+  reader:
+    #image: hectorqin/reader # 普通镜像
+    image: hectorqin/reader:openj9-latest # Openj9镜像,arm64架构或小内存机器优先使用
+    container_name: reader #容器名 可自行修改
+    restart: always
+    ports:
+      - 4396:8080 #4396端口映射可自行修改,8080请勿修改
+    volumes:
+      - /volume1/docker/reader/logs:/logs       #log映射目录 /home/reader/logs 映射目录可自行修改
+      - /volume1/docker/reader/storage:/storage #数据映射目录 /home/reader/storage 映射目录可自行修改
+    environment:
+      - SPRING_PROFILES_ACTIVE=prod
+      #- READER_APP_USERLIMIT=50 #用户上限,默认且最大值为50
+      - READER_APP_USERBOOKLIMIT=200 #用户书籍上限,默认200
+      - READER_APP_CACHECHAPTERCONTENT=true #开启缓存章节内容
+      - READER_APP_REMOTEWEBVIEWAPI=http://readerwebview:8050 #启用webview(若下方readerwebview容器不开启需注释此行
+      # ↓多用户模式配置↓
+      - READER_APP_SECURE=true #开启登录鉴权,开启后将支持多用户模式
+      - READER_APP_SECUREKEY=adminpwd  #管理员密码  建议修改
+      - READER_APP_INVITECODE=19841122Cy! #注册邀请码 建议修改,如不需要可注释或删除
+# 如需支持webview书源,打开(占用较大,不需要可加 # 注释)
+  readerwebview:
+    image: hectorqin/remote-webview
+    container_name: readerwebview
+    restart: always
+    environment:
+      - TZ=Asia/Shanghai
+volumes:
+  reader:
+  readerwebview:
+```

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно