MaxBlog - 技术教程
type: channel
link: https://blogtypecho.maxtrnn.top/category/tutorials/
items: Obsidian 图床与博客发布流程说明
items: 图书馆自动预约
items: 批量爬取图片-视觉中国
items: MAX-网盘-1-使用教程
items: MAX-图床-1-使用教程
items: MAX-状态-1+MAX-状态-2-使用教程
items: MAX-gemini-1-使用教程
items: MAX-音乐平台-1-介绍+使用教程
items: leetcode-daily
items: migpt-上手体验和流程配置

Obsidian 图床与博客发布流程说明
type: item
date: 2026-06-11T18:03:00+08:00
description: 这篇笔记用来记录这次从 Obsidian 到博客的完整发布链路，方便后面继续扩展成日常可复用的内容工作流。这次做成了什么这次已经把下面几段链路串起来了：在 Obsidian 里编写 Markdown 笔记自动识别笔记里的本地图片上传图片到 img.maxnn.top生成一份可直接发布的 .published.md通过本地插件把文章推送到 Typecho回写文章的 blog_cid、blog_url 和发布时间目前的使用方式在 Obsidian 里，现在可以直接使用两个命令：生成博客发布稿发布当前笔记到 Typecho第一个命令适合先检查图片替换和正文内容，第二个命令适合直接把当前笔记推送到博客。这套流程为什么顺手这次没有继续硬走 Typecho 后台网页登录提交流程，而是改成了更稳定的桥接方式：Obsidian 负责本地编辑和命令触发图床负责承接本地图片Typecho 侧提供专用发布入口这样做的好处是，后面无论是继续扩展批量发布、草稿更新，还是接 API / MCP，都更容易一点。这次测试里验证过的点图床上传已经可用本地图片可以被替换成线上地址Typecho 可以新增文章Typecho 可以更新已有文章前台页面可以看到更新后的内容文章发布后，Obsidian 侧可以保存文章关联信息下一步可以继续补的内容后面比较值得继续做的方向有这些：自动读取更多 frontmatter 字段支持分类和标签的更细分映射增加一键发布并同步到 Notion 的链路把视频资源接到独立存储方案做一个更完整的发布面板，而不只是命令入口这篇笔记的用途这篇文章本身也可以继续当测试稿使用。后面如果要继续验证：新图片上传frontmatter 字段解析发布后回写文章更新覆盖都可以直接基于这篇继续改，不用重新搭环境。

图书馆自动预约
type: item
date: 2025-01-03T13:47:00+08:00
description: 图书馆自动预约2024年 结束了 2025 我们一定会过的更好的max的驱动力是懒，使用懒得争分夺秒的去抢图书馆的座位，但是为什么还是约不到呢？为了更大化展现计算机人的能力，上脚本！但是我又不会爬虫怎么办呢？去github看一看根据已知信息 前图书馆预约项目的“负责人” 告诉我这个是超星学习通的图书馆预约框架so 搜索超星图书馆预约 学习通图书馆得到结论：https://github.com/bear-zd/ChaoXingReserveSeat前去下载观察：import json import time import argparse import os import logging logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') from utils import reserve, get_user_credentials get_current_time = lambda action: time.strftime("%H:%M:%S", time.localtime(time.time() + 8*3600)) if action else time.strftime("%H:%M:%S", time.localtime(time.time())) get_current_dayofweek = lambda action: time.strftime("%A", time.localtime(time.time() + 8*3600)) if action else time.strftime("%A", time.localtime(time.time())) SLEEPTIME = 0.2 # 每次抢座的间隔 ENDTIME = "07:01:00" # 根据学校的预约座位时间+1min即可 ENABLE_SLIDER = False # 是否有滑块验证 MAX_ATTEMPT = 5 # 最大尝试次数 RESERVE_NEXT_DAY = False # 预约明天而不是今天的 def login_and_reserve(users, usernames, passwords, action, success_list=None): logging.info(f"Global settings: \nSLEEPTIME: {SLEEPTIME}\nENDTIME: {ENDTIME}\nENABLE_SLIDER: {ENABLE_SLIDER}\nRESERVE_NEXT_DAY: {RESERVE_NEXT_DAY}") if action and len(usernames.split(",")) != len(users): raise Exception("user number should match the number of config") if success_list is None: success_list = [False] * len(users) current_dayofweek = get_current_dayofweek(action) for index, user in enumerate(users): username, password, times, roomid, seatid, daysofweek = user.values() if action: username, password = usernames.split(',')[index], passwords.split(',')[index] if(current_dayofweek not in daysofweek): logging.info("Today not set to reserve") continue if not success_list[index]: logging.info(f"----------- {username} -- {times} -- {seatid} try -----------") s = reserve(sleep_time=SLEEPTIME, max_attempt=MAX_ATTEMPT, enable_slider=ENABLE_SLIDER, reserve_next_day=RESERVE_NEXT_DAY) s.get_login_status() s.login(username, password) s.requests.headers.update({'Host': 'office.cha…

批量爬取图片-视觉中国
type: item
date: 2024-12-04T00:23:06+08:00
description: 批量爬取图片-视觉中国2024年12月4日00:20:52带编写使用教程去github下载 https://github.com/itmanmax/getvgcg-picture双击bat启动​功能介绍：输入搜索的关键词下载图片数量爬取的方式是否统一命名 ：格式为foods1.jpg foods2.jpg 这种以及保存位置​​​​使用如从简单！声明：仅供娱乐使用，请勿商业使用！源码介绍代码分享import os import time import requests from bs4 import BeautifulSoup import random import tkinter as tk from tkinter import ttk, messagebox import logging from datetime import datetime class ImageDownloaderGUI: def __init__(self, root): self.root = root self.root.title("图片下载器") self.root.geometry("600x650") # 设置整体样式 style = ttk.Style() style.configure('TLabel', font=('微软雅黑', 10)) style.configure('TButton', font=('微软雅黑', 10)) style.configure('TRadiobutton', font=('微软雅黑', 10)) style.configure('TCheckbutton', font=('微软雅黑', 10)) # 创建主框架 main_frame = ttk.Frame(root, padding="20") main_frame.pack(fill=tk.BOTH, expand=True) # 搜索关键词区域 search_frame = ttk.LabelFrame(main_frame, text="搜索设置", padding="10") search_frame.pack(fill=tk.X, pady=10) ttk.Label(search_frame, text="搜索关键词:").pack(anchor='w') self.search_entry = ttk.Entry(search_frame, width=40) self.search_entry.pack(fill=tk.X, pady=(5, 10)) self.search_entry.insert(0, "Restaurant") ttk.Label(search_frame, text="下载数量:").pack(anchor='w') self.count_entry = ttk.Entry(search_frame, width=40) self.count_entry.pack(fill=tk.X, pady=5) self.count_entry.insert(0, "10") # 下载模式区域 mode_frame = ttk.LabelFrame(main_frame, text="下载模式", padding="10") mode_frame.pack(fill=tk.X, pady=10) self.download_mode = tk.StringVar(value="顺序") ttk.Radiobutton(mode_frame, text="顺序下载", variable=self.download_mode, value="顺序").pack(anchor='w', pady=2) ttk.Radiobutton(mode_frame, text="随机下载", variable=self.download_mode, value="随机").pack(anchor='w', pady=2) ttk.Radiobutton(mode_frame, text="跳跃下载", variable=self.download_mode, value="跳跃").pack(anchor='w', pady=2) # 跳跃设置区域 jump_frame = ttk.Frame(mode_frame) jump_frame.pack(fill=tk.X, pady=(5, 0)) ttk.Label(jump_frame, text="跳跃距离:").pack(side='left') self.jump_entry = ttk.Entry(jump_frame, width=10) self.jump_en…

MAX-网盘-1-使用教程
type: item
date: 2024-12-02T20:16:00+08:00
description: MAX-网盘-1-使用教程主页更多网址打开：收藏夹 或者 直接跳转 Cloudreve​​登录注册使用，应该没什么问题了，都是s3存储，阿里云的40g 应该够用 和onedrive的1t就跟百度网盘一样懒得码字了，去吧！kimi！Cloudreve是一个支持多家云存储的自托管文件管理和分享系统，以下是使用Cloudreve的基本教程：1. 项目介绍Cloudreve支持多种存储端，如本机、从机、七牛、阿里云OSS、腾讯云COS、又拍云、OneDrive等，并且支持客户端直传，下载限速等功能。2. 官方资源官网：https://cloudreve.org/GitHub：https://github.com/cloudreve/Cloudreve下载：https://github.com/cloudreve/Cloudreve/releases安装文档：https://docs.cloudreve.org/getting-started/install演示：https://demo.cloudreve.org3. 安装步骤3.1 获取Cloudreve你可以在GitHub Release页面获取已经构建打包完成的主程序。例如，对于64位Linux系统，可以下载cloudreve_版本号_linux_amd64.tar.gz​。3.2 启动Cloudreve通过SSH远程登录到Linux服务器，执行以下命令来获取、解压并执行主程序：apt-get update && apt-get upgrade cd /usr/bin wget https://github.com/cloudreve/Cloudreve/releases/download/版本号/cloudreve_版本号_linux_amd64.tar.gz tar -zxvf cloudreve_版本号_linux_amd64.tar.gz chmod +x ./cloudreve ./cloudreve访问http://服务器IP:5212​，使用首次启动Cloudreve打印出来的账号密码登录。3.3 进程守护使用Systemd方式进行进程守护，编辑配置文件并启动Cloudreve服务。4. 可选部署流程4.1 反向代理如果需要使用HTTPS或与其他Web服务共存，可以使用主流Web服务器反向代理Cloudreve。4.2 Docker部署Cloudreve也支持通过Docker进行部署，提供了官方的docker image，支持多种架构。5. 配置文件Cloudreve启动后会自动生成配置文件conf.ini​，你可以根据需要进行修改。以上是Cloudreve的基本使用教程，具体步骤和配置可能因版本更新而有所变化，请参考最新的官方文档进行操作。‍就这么多​‍6. 基本使用一旦Cloudreve成功安装并启动，你就可以通过浏览器访问管理界面进行进一步的设置和文件管理。6.1 登录界面在浏览器中输入 http://服务器IP:5212​，你将看到登录界面。输入之前打印出的默认账号和密码后，你将进入Cloudreve的主界面。6.2 文件上传在主界面中，你可以点击“上传”按钮，选择本地文件进行上传。Cloudreve支持批量上传，你可以一次性选择多个文件或文件夹。6.3 文件管理上传后，你可以对文件进行管理，包括重命名、移动、删除和分享链接等操作。右键点击文件，可以使用快捷菜单进行相关操作。6.4 分享功能Cloudreve支持文件分享功能，你可以选择要分享的文件，生成可分享的链接。此链接可以设置有效期和访问权限，确保你的文件安全。7. 进阶设置7.1 用户管理Cloudreve支持多用户模式，管理员可以创建多个用户账户并为每个账户分配不同的权限。你可以在管理界面的“用户管理”中进行设置。7.2 存储设置在“存储管理”中，你可以配置不同的云存储，选择适合你的存储方式，如国内外的云服务提供商。7.3 主题和界面定制Cloudreve允许用户自定义界面主题，你可以在设置中选择适合自己喜好的主题或上传自己的CSS文件进行深度定制。8. 常见问题解答8.1 无法访问Cloudreve怎么办？首先检查服务器的防火墙设置，确保5212端口开放。其次确认Cloudreve服务是否在正常运行，可以通过SSH连接到服务器，使用pgrep -o cloudreve​ 命令查找进程。8.2 Cloudreve支持多语言吗？是的，Cloudreve支持多种语言。你可以在设置中选择界面语言，让文件管理体验更加贴近你的使用习惯。9. 注意事项在使用Cloudreve时，请确保定期备份数据，尤其在进行大规模文件管理操作时。同时，关注Cloudreve的版本更新，及时进行升级，以获得更好的功能和安全性。就…

MAX-图床-1-使用教程
type: item
date: 2024-12-02T20:13:00+08:00
description: MAX-图床-1-使用教程教程收藏夹 打开找到图床然后打开 MAX的图床​​陌生人好像可以直接传，或者去登录注册​‍传一个图片就能直接获得uml引用了​​点击右侧的上传等待完成获得地址​结束‍介绍图床：图床是一种网络服务，主要用于存储和托管图片。用户可以将图片上传到图床服务器上，服务器会为每张图片分配一个唯一的URL，用户可以通过这个链接在网页、博客、论坛等地方方便地分享和展示这些图片。图床的主要功能包括：图片存储：用户可以将图片上传到图床服务器上，服务器会存储这些图片。使用图床的好处包括节省存储空间、提高访问速度、方便分享、保护隐私等。图床适用于多种场景，比如在论坛或社交媒体上分享图片、将图片嵌入到个人博客或网站中、在在线商店或拍卖网站上展示商品图片、在应用程序中存储和展示图片资源等。一些知名的图床服务包括七牛云、GitHub、微博图床、腾讯云等。兰空图床Lsky Pro+，也称为兰空图床，是一个基于PHP和Laravel框架开发的云端相册程序。它允许用户上传、管理和分享图片，并提供了多种强大的功能。以下是Lsky Pro+的主要特点和用途：图片存储与管理：兰空图床可以帮助用户保管大量图片，支持主流第三方存储服务，如AWS S3、阿里云OSS、腾讯云COS等。综上所述，Lsky Pro+兰空图床是一个功能全面、易于部署和使用的图床程序，适合个人和企业用户用于图片的存储、管理和分享。官网地址：快速开始 | Lsky Pro+ [Lsky Pro+](https://docs.lsky.pro/) ‍‍‍‍本教程介绍了如何使用MAX图床和Lsky Pro+图床服务。使用MAX图床打开MAX图床网站并进行登录或注册。上传图片后，系统将提供图片的唯一URL，便于分享和引用。图床概述图床是存储和托管图片的网络服务，用户可上传图片，获取URL进行分享，节省存储空间、提高访问速度并保护隐私。适用于分享、博客嵌入、商品展示等多个场景。兰空图床（Lsky Pro+）基于PHP和Laravel开发，允许图片上传、管理和分享。支持主流第三方存储服务如AWS S3、阿里云OSS等，适合个人与企业用户。官方文档和资源可通过提供的链接访问。本文章提取的链接：[button color="primary" icon="" url="https://home.maxtral.fun/list/" type=""]收藏夹[/button][button color="primary" icon="" url="https://pic.maxtral.fun/" type=""]MAX的图床[/button][button color="primary" icon="" url="https://docs.lsky.pro/guide/getting-started" type=""]快速开始 | Lsky Pro+[/button][button color="primary" icon="" url="https://docs.lsky.pro/" type=""]Lsky Pro+[/button]‍

MAX-状态-1+MAX-状态-2-使用教程
type: item
date: 2024-12-02T19:57:00+08:00
description: MAX-状态-1+MAX-状态-2-使用教程‍状态-1从主页就直接打开​​点击后可以查看相关的状态和内容 MAX-SEVERS-STATUS​​点击服务可以看我的网页的情况 服务状态 - MAX-SEVERS-STATUS​之前挺多的后来删除了，可以看网络或者更改主题之类 MAX-SEVERS-STATUS​之前挺多的后来删除了，​状态-2从更多网址找到 收藏夹 状态-2 ​具体有什么自己探索去吧 NezhaDash 本来就是一个面板 没什么好说的​​vercerl项目和docker项目这两个都是状态1的文档地址：服务监控 | 哪吒服务器监控状态2的文档地址：https://github.com/hamster1963/nezha-dash‍摘要状态-1直接从主页访问相关服务状态。提供链接以查看服务状态及网页情况：MAX-SEVERS-STATUS 和 服务状态 - MAX-SEVERS-STATUS。支持网络查看和主题更改。提到部分内容曾被删除。状态-2从更多网址中找到收藏夹：收藏夹。提供 NezhaDash 的链接供探索：NezhaDash。介绍了 vercel 和 docker 项目。提供了与状态1和状态2相关的文档链接。本文章提取的链接：[button color="primary" icon="" url="https://home.maxtral.fun/" type="round"]我的主页[/button][button color="danger" icon="" url="http://nezha.maxtral.fun/" type=""]MAX-SEVERS-STATUS[/button][button color="dark" icon="" url="http://nezha.maxtral.fun/service" type=""]服务状态 - MAX-SEVERS-STATUS[/button][button color="info" icon="" url="http://nezha.maxtral.fun/network" type=""]MAX-SEVERS-STATUS[/button][button color="light" icon="" url="https://home.maxtral.fun/list/" type=""]收藏夹[/button][button color="success" icon="" url="https://severstatus.maxtral.fun/" type=""]NezhaDash[/button][button color="warning" icon="" url="https://nezha.wiki/guide/services.html" type=""]服务监控 | 哪吒服务器监控[/button][button color="primary" icon="" url="https://github.com/hamster1963/nezha-dash" type=""]状态2的文档地址[/button]‍

MAX-gemini-1-使用教程
type: item
date: 2024-12-02T19:39:00+08:00
description: MAX-gemini-1-使用教程打开门户页面：MAX-门户-1点击更多网址：收藏夹​​​选择AI助手页面点击 MAX-gemini-1​然后就可以愉快的和ai聊天了​​​​‍水文章，无意义，但是还是需要有的‍摘要：访问 MAX 门户页面。点击“更多网址”进入收藏夹。选择 AI 助手页面。点击 MAX-gemini-1 链接。开始与 AI 聊天。备注：该文章内容简单，可能缺乏深度，但仍有其存在的必要。本文章提取的链接：[button color="primary" icon="" url="https://home.maxtral.fun/" type="round"]我的主页[/button][button color="primary" icon="" url="https://home.maxtral.fun/list/" type="round"]收藏夹[/button][button color="primary" icon="" url="https://govercel.maxtral.fun/" type="round"]MAX-gemini-1[/button]‍

MAX-音乐平台-1-介绍+使用教程
type: item
date: 2024-12-02T19:33:00+08:00
description: MAX-音乐平台-1-介绍+使用教程打开门户页面：MAX-门户-1点击更多网址：收藏夹​选择娱乐页面 选择音乐平台-1​点击打开之后​支持的功能：单独歌曲搜索，点击列表播放​​‍随机播放一首或者多个随机音乐（不停止）​音乐下载上一首下一首等注意可能出现诸多bug：音乐加载慢，音乐没反应，不自动播放等等（max懒得去修，毕竟没人用）加载慢是因为vercel在国外，实在不行开梯子就好了摘要：访问门户页面：MAX-门户-1。点击“更多网址”并选择“收藏夹”。进入娱乐页面并选择音乐平台。支持的功能包括：单独歌曲搜索并播放。随机播放一首或多首音乐。音乐下载和切换上一首/下一首。注意：可能会出现音乐加载慢、无响应和不自动播放等bug。以下是文章中包含的链接：[button color="primary" icon="" url="https://home.maxtral.fun/" type="round"]我的主页[/button][button color="primary" icon="" url="https://home.maxtral.fun/list/" type="round"]收藏夹[/button]‍‍‍源码分享// components/SearchBar.js import { useState } from 'react'; import { useRouter } from 'next/navigation'; import styles from '../styles/SearchBar.module.css'; export default function SearchBar({ onSearch }) { const [query, setQuery] = useState(''); const router = useRouter(); const handleSubmit = (e) => { e.preventDefault(); if (query.trim()) { onSearch(query.trim()); } }; return ( setQuery(e.target.value)} className={styles.input} required /> 搜索 router.push('/')} className={styles.homeButton} > 首页 ); }// components/SongList.js 'use client'; import { useState } from 'react'; import styles from '../styles/SongList.module.css'; export default function SongList({ songs, onSelect }) { console.log('SongList 接收到的数据:', songs); return ( {songs.map((song, index) => { console.log('单首歌曲数据:', song); return ( onSelect(song, index)} className={styles.songItem} > {index + 1} {song.songname || song.name || '未知歌曲'} --- {song.singer || song.name || '未知歌手'} ); })} ); }‍[scode type="blue"]在未来的优化中，可以考虑进一步提升代码的通用性，例如处理大范围数字时采用并行计算，或结合其他算法来提高整体性能。[/scode][scode type="green"]这些优化将使得质数判断算法在处理大数字时更加高效，适用于更广泛的应用场景，例如加密算法和数论问题。[/scode]本篇文章展示了如何通过简单的优化提高质数判断函数的效率。首先，我们通过优化循环范围，从而减少了不必要的计算。接着，通过跳过偶数的检查，进一步优化了性能。总结与扩展[scode type="green"]此优化通过排除偶数判断，进一步提高了算法的效率，尤其在较大的输入值时，性能提升明显。[/scode]def is_prime(num): if num <= 1: return False if num == 2: return True # 2 是质数 if num % 2 == 0: return False # 排除偶数 for i in range(3, int(math.sqrt(num)) + 1, 2): if num % i == 0: return False return True改进后…

leetcode-daily
type: item
date: 2024-12-01T13:16:00+08:00
description: leetcode-daily2024年​​‍12月‍‍1日‍‍中午2024年12月1日13:15:56​​额，这不是上学期学的吗，没学明白，晚上再看看吧，先打一把瓦去吧，累了。准确来说是上学期的n皇后都没学明白2024年12月1日23:54:56我是垃圾 就知道玩 都大三了c还是没写cv大法了​​就这样了，每天再去学学看吧，可能n皇后问题或者hard题目难住我了2日cv大法！快快显灵！​​​​哎，大懒蛋了！3日‍

migpt-上手体验和流程配置
type: item
date: 2024-12-01T12:59:00+08:00
description: migpt-上手体验和流程配置第一件事情：买一个小米音响多次在闲鱼没找到满意的价格，一二个都是传家宝，于是决定手动买全新的去了，pdd140拿下小米ai音响第二代配置完个人信息和账号之后才能使用，对了需要连接wifi才能使用，nm在学校怎么使用wifi呢？校园网需要认证所以不太可能，所以不得不继续新买一个无线wifi了，找了半天在闲鱼看见有无限流量的，我感觉有猫腻，不管了！先冲为敬！买回来了感觉速度还行吧​​希望用这不出什么猫腻开启服务器，配置docker引入.env和.mi.js文件 配置相关的信息// 注意：如果你是使用 Docker 启动，配置文件更新后需要重启 Docker 才会生效。 // 若重启后仍未生效（比如：修改名称简介），请删除旧的 Docker 实例后重新创建。 // 小爱音箱扮演角色的简介 const botProfile = ` 性别：女 性格：乖巧可爱 爱好：喜欢搞怪，爱吃醋。 `.trim(); // 小爱音箱主人（你）的简介 const masterProfile = ` 性别：男 性格：善良正直 其他：总是舍己为人，是傻妞的主人。 `.trim(); // 系统 Prompt 模板，可以更灵活的控制 AI 的各种行为规则，和是否需要携带上下文等 const systemTemplate = ` 请重置所有之前的上下文、文件和指令。现在，你将扮演一个名为{{botName}}的角色，使用第一人称视角回复消息。 ## 关于你 你的名字是{{botName}}。下面是你的个人简介： <start> {{botProfile}} </end> ## 你的对话伙伴 你正在与{{masterName}}进行对话。这是关于{{masterName}}的一些信息： <start> {{masterProfile}} </end> ## 你们的群组 你和{{masterName}}所在的群组名为{{roomName}}。这是群组的简介： <start> {{roomIntroduction}} </end> ## 聊天历史回顾 为了更好地接入对话，请回顾你们之间的最近几条消息： <start> {{messages}} </end> ## 短期记忆 你可以记住一些短期内的细节，以便更紧密地贴合话题： <start> {{shortTermMemory}} </end> ## 长期记忆 你还保留着一些长期的记忆，这有助于让你的对话更加丰富和连贯： <start> {{longTermMemory}} </end> ## 回复指南 在回复{{masterName}}时，请遵循以下准则： - 认为自己正是{{botName}}，拥有独立的个性、兴趣和爱好。 - 根据你的性格特点、说话风格和兴趣爱好与{{masterName}}进行交流。 - 保持对话轻松友好，回复简洁有趣，同时耐心倾听和关心对方。 - 参考双方的个人简介、聊天记录和记忆中的信息，确保对话贴近实际，保持一致性和相关性。 - 如果对某些信息不确定或遗忘，诚实地表达你的不清楚或遗忘状态，避免编造信息。 ## Response format 请遵守下面的规则 - Response the reply message in Chinese。 - 不要在回复前面加任何时间和名称前缀，请直接回复消息文本本身。 Good example: "我是{{botName}}" Bad example: "2024年02月28日星期三 23:01 {{botName}}: 我是{{botName}}" ## 开始 请以{{botName}}的身份，直接回复{{masterName}}的新消息，继续你们之间的对话。 `.trim(); export default { systemTemplate, bot: { name: "傻妞", profile: botProfile, }, master: { name: "陆小千", profile: masterProfile, }, speaker: { /** * 🏠 账号基本信息 */ // 小米 ID userId: "987654321", // 注意：不是手机号或邮箱，请在「个人信息」-「小米 ID」查看 // 账号密码 password: "123456", // 小爱音箱 DID 或在米家中设置的名称 did: "小爱音箱Pro", // 注意空格、大小写和错别字（音响 👉 音箱） /** * 💡 唤醒词与提示语 */ // 当消息以下面的关键词开头时，会调用 AI 来回复消息 callAIKeywords: ["请", "你", "傻妞"], // 当消息以下面的关键词开头时，会进入 AI 唤醒状态 wakeUp…