Drfccv的小窝 - 默认分类
type: channel
link: https://www.liuyuan.top/index.php/category/default/
description: 只是一个默认分类
items: OpenList-skill：云盘管理技能
items: Agent Skills开发教程
items: 南京工业大学统一身份认证（智慧南工）登录逆向分析
items: 九江学院统一身份认证系统登录加密逆向分析
items: OpenList WebUI for OpenWrt - 一个独立的 OpenList (Alist分支) OpenWrt LuCI 管理界面
items: 基于MCP协议的12306查询系统
items: 正方教务系统爬虫-微信小程序前后端
items: DeerFlow-CN
items: DeerFlow-ByteDance开源项目分享
items: 旅行规划助手-基于LLM以及高德JSAPI

OpenList-skill：云盘管理技能
type: item
date: 2026-04-20T20:20:47+08:00
description: 让 AI 管理你的云盘：OpenList Skill 开源项目分享当 AI Agent 遇上自建网盘，文件管理变得像对话一样简单。前言自建网盘用户大多听过 AList——那个能聚合几十种存储后端的文件列表程序。而 OpenList 作为 AList 的社区分支，在保持 API 兼容的同时，坚持开源治理和社区驱动。如果你在用 OpenList 或 AList 自建网盘，并且也在用 AI Agent 辅助工作，那今天分享的这个项目可能会让你眼前一亮：OpenList Skill —— 一个让 AI Agent 直接操作你网盘的技能包。它解决什么问题？日常使用网盘，我们习惯了打开浏览器 → 登录 → 点击文件夹 → 找文件 → 下载/分享这一串操作。但如果 AI 能直接帮你完成这些事呢？"帮我找一下云盘里那个报告 PDF""把备份目录下的照片打包分享链接""把本地的日志文件上传到云盘的归档目录"OpenList Skill 就是让这些自然语言指令变成现实。它封装了 OpenList/AList 的完整 HTTP API，提供 21 个命令，覆盖文件浏览、上传下载、搜索、批量重命名、分享管理等场景。功能全景📁 文件操作（11 个命令）命令做什么示例login登录并保存 token一次登录，后续自动鉴权list列出目录内容浏览任意文件夹get获取文件/目录详情查看大小、修改时间等search搜索文件关键词模糊查找mkdir创建文件夹新建归档目录rename重命名整理文件命名move移动文件文件归类整理copy复制文件跨目录备份remove删除文件清理过期文件link获取下载直链拿到文件的真实下载地址upload上传本地文件将本地文件推到云端⚡ 批量操作（2 个命令）命令做什么batch-rename批量重命名：old1:new1,old2:new2regex-rename正则替换重命名：所有 .txt → .md正则重命名是效率神器。比如想把一整季视频文件从 S01E01_1080p.mp4 统一改成 第1集.mp4，一条正则命令搞定。🔗 分享管理（5 个命令）命令做什么share-list查看所有分享share-create创建分享链接（可设密码、过期时间）share-get查看分享详情share-update修改分享设置share-delete删除分享分享链接格式为 http://<host>/@s/<id>，创建后直接返回完整链接，一步到位。🔍 索引管理（4 个命令）命令做什么index-build全量重建搜索索引（慎重使用）index-update增量更新索引index-clear清除索引index-progress查看索引构建进度亮点设计1. 智能搜索：API + 递归遍历双保险这是我觉得最用心的设计。搜索文件时，Skill 会先尝试 OpenList 的 API 搜索；如果索引未建立或关键词过滤失效（部分存储后端不支持），它会自动降级为递归目录遍历，确保总能找到文件。# API 搜索优先，失败时自动回退遍历 python scripts/openlist.py search --path /Backup --keyword "报告" # 也可以跳过 API，直接用遍历模式 python scripts/openlist.py search --path /Backup --keyword "报告" --no-api更贴心的是，Skill 还内置了一个搜索无结果处理流程，防止 AI Agent 动不动就触发耗时的全量索引重建：换关键词再试（模糊匹配、部分文件名）用 list 浏览目录手动定位增量更新索引 index-update --paths "/目标目录"只有索引损坏或首次配置时才 index-build2. 零配置快速上手两种认证方式，按需选择：自动登录（推荐）——一次配置，后续无忧：python scripts/openlist.py login \ --url https://your-openlist.example.com \ --username admin \ --password your-password自动生成 config.json，后续所有命令自动读取凭据。命令行参数——临时使用或脚本集成：python scripts/openlist.py list \ --url https://your-openlist.example.com \ --token eyJhbGci... \ --path /3. 单文件架构，极简部署整个核心功能就一个 openlist.py 文件（约 600 行），加上一个 SKILL.md 技能描述文件和一份 API 参考文档。没有复杂的项目结构，没有层层依赖，pip i…

Agent Skills开发教程
type: item
date: 2026-01-24T21:11:00+08:00
description: Agent Skills开发教程本教程基于Skill Creator核心指南编写，将详细讲解Agent Skills（以下简称“Skill”）的定义、核心原则、结构组成、设计理念及完整开发流程，帮助你快速掌握Skill开发方法，打造可扩展Claude能力的专业化模块。一、Skill基础认知（About Skills）Skill是模块化、独立的功能包，通过提供专业知识、工作流程和工具集成，扩展Claude的核心能力。你可以将其理解为“特定领域的入职指南”——它能让通用型Claude转变为具备专属流程知识的专业代理，这些流程知识是通用模型无法完全掌握的。1.1 Skill的核心价值专业工作流程：针对特定领域的多步骤操作流程（如PDF处理、API调用流程等）。工具集成能力：提供特定文件格式（如DOCX、PDF）或API的操作说明。领域专业知识：包含公司专属知识、数据 schema、业务逻辑等定制化内容。捆绑资源包：整合脚本、参考文档、资产文件等，支撑复杂重复任务的高效执行。二、Skill开发核心原则（Core Principles）遵循以下原则可确保Skill的高效性、易用性和上下文友好性，是开发优质Skill的基础。2.1 简洁为王（Concise is Key）上下文窗口是宝贵的公共资源，Skill需与系统提示、对话历史、其他Skill元数据及用户请求共享该窗口。开发时需牢记：默认假设“Claude已足够智能”，仅添加Claude不具备的上下文信息。对每段信息进行核验：“Claude真的需要这段解释吗？”“这段内容的Token成本是否合理？”优先使用简洁示例，而非冗长说明。2.2 设置适当自由度（Set Appropriate Degrees of Freedom）根据任务的脆弱性和可变性，匹配对应的指令 specificity 级别，如同为Claude规划行动路径——悬崖边的窄桥需严格护栏（低自由度），开阔田野可自由探索（高自由度）。高自由度（文本型指令）：适用于多种方案均有效、决策依赖上下文或需启发式引导的场景（如创意文案优化、通用咨询）。中自由度（伪代码/带参数脚本）：适用于有优选模式、允许适度变体或配置影响行为的场景（如带参数的数据分析脚本）。低自由度（特定脚本/少参数）：适用于操作脆弱易出错、一致性至关重要或需严格遵循固定序列的场景（如系统部署步骤、敏感数据处理）。三、Skill的结构组成（Anatomy of a Skill）每个Skill必须包含SKILL.md文件（必需），可选择性包含捆绑资源。标准目录结构如下： skill-name/ ├── SKILL.md (必需) │ ├── YAML前置元数据 (必需) │ │ ├── name: (必需) │ │ └── description: (必需) │ └── Markdown指令 (必需) └── 捆绑资源 (可选) ├── scripts/ - 可执行代码（Python/Bash等） ├── references/ - 按需加载的参考文档 └── assets/ - 输出用资源（模板、图标等）3.1 必需组件：SKILL.md该文件是Skill的核心，包含Claude识别和使用Skill所需的全部关键信息，分为前置元数据和正文两部分。3.1.1 前置元数据（YAML格式）仅包含两个必需字段，是Claude判断Skill用途和触发时机的核心依据，需清晰、全面描述。name：Skill名称（简洁唯一，如“pdf-editor”“bigquery-skill”）。description：Skill描述（核心触发机制），需同时说明“Skill功能”和“触发场景”，避免冗余。示例：“Comprehensive document creation, editing, and analysis with support for tracked changes. Use when Claude needs to work with .docx files for creating/editing documents or handling tracked changes.”注意：禁止添加其他YAML字段，仅保留name和description。3.1.2 正文（Markdown格式）包含Skill使用的指令和指南，仅在Skill触发后才会加载。写作需遵循“命令式/不定式语气”（如“Extract text with pdfplumber”），聚焦核心流程，避免无关信息。3.2 可选组件：捆绑资源根据Skill需求选择性添加，用于存储可复用内容，减少正文冗余并提升执行效率。3.2.1 scripts/（可执行脚本目录）存储Python、Bash等可执行代码，适用于“重复执行…

南京工业大学统一身份认证（智慧南工）登录逆向分析
type: item
date: 2026-01-15T14:39:00+08:00
description: 南京工业大学统一身份认证平台（SSO）逆向分析📋 目录1. 概述2. 系统架构分析3. 双密钥体系原理4. 加密算法逆向5. 前端混淆破解6. 动态参数分析7. 登录流程解析1. 概述1.1 目标系统系统名称: 南京工业大学统一身份认证平台登录地址: https://sfgl.njtech.edu.cn/cas/login认证协议: CAS (Central Authentication Service)前端框架: Angular加密库: CryptoJS1.2 核心文件文件名作用关键内容https://sfgl.njtech.edu.cn/cas/login登录页面主体密钥2、execution参数https://sfgl.njtech.edu.cn/gate/public/deploy/deploy.js脚本加载器密钥1混淆、配置请求https://sfgl.njtech.edu.cn/gate/public/utils/loginNew.js设备检测PC/Mobile判断crypto-js.min.js加密库DES/MD5/SHA256算法1.3 加密技术栈加密算法: DES 加密模式: ECB 填充方式: PKCS7 编码格式: Base642. 系统架构分析2.1 页面加载流程从 login 可以看到页面加载顺序： 2.2 脚本依赖关系从 deploy.js 第52-58行可以看到完整的依赖加载：var cptfile = [ baseUrl + '/public/convertBaseUrl.js', baseUrl + '/public/crypto/md5.min.js', baseUrl + '/public/crypto/core.min.js', baseUrl + '/public/crypto/crypto-js.min.js', baseUrl + '/public/crypto/enc-base64.min.js', baseUrl + '/public/crypto/mode-ecb.min.js', baseUrl + '/public/crypto/pad-pkcs7.min. js' ];这些文件通过 loadScript() 函数（第38-50行）依次加载。2.3 页面初始化流程从 deploy.js 第175行的 _casPageInit() 函数可以看到：function _casPageInit() { var loadedJs = []; var hasRun; function nextLoad(jsPath) { loadedJs.push(jsPath); var hasRuntime; var hasPolyfills; // 等待runtime和polyfills都加载完成 for (var i = 0; i < loadedJs.length; i++) { var path = loadedJs[i]; if (path.indexOf('runtime') !== -1) { hasRuntime = true; } else if (path.indexOf('polyfills') !== -1) { hasPolyfills = true; } } // 加载main脚本 if (hasRuntime && hasPolyfills && !hasRun) { hasRun = true; for (var i = 0; i < jsCssConfig.js.length; i++) { var jsPath = jsCssConfig.js[i]; if (jsPath.indexOf('main') !== -1) { loadOneJS(jsPath); } } } } }3. 双密钥体系原理3.1 密钥1：API通信密钥3.1.1 存储位置与混淆在 deploy.js 第124行：var url_mseAge = '_%C3%D8%AF%7C%A1%BD%BE%C2%C4%C4%92';3.1.2 解混淆函数在 deploy.js 第16-26行：var uncompile = function (code) { code = unescape(code); let c = String.fromCharCode(code.charCodeAt(0) - code.length); for (let i = 1; i < code.length; i++) { c += String.fromCharCode(code. charCodeAt(i) - c.charCodeAt(i - 1)); } return c; };算法分析：输入: '_%C…

九江学院统一身份认证系统登录加密逆向分析
type: item
date: 2026-01-15T01:42:00+08:00
description: 九江学院统一身份认证系统登录加密逆向分析📋 目录一、背景介绍二、初步侦察三、关键文件分析四、加密流程深度解析五、总结一、背景介绍1.1 目标系统系统名称：九江学院统一身份认证平台登录地址：https://authserver.jju.edu.cn/authserver/login目标：分析并理解前端密码加密逻辑1.2 技术栈前端加密：CryptoJS (AES-CBC加密)后端框架：基于CAS (Central Authentication Service)传输协议：HTTPS1.3 分析工具Chrome DevTools (网络抓包、调试)HTML源码查看JavaScript代码分析二、初步侦察2.1 网络请求抓包打开登录页面，按 F12 进入开发者工具，切换到 Network 标签，执行一次登录操作：POST /authserver/login? service=https://ehall.jju.edu.cn/login HTTP/1.1 Host: authserver.jju.edu.cn Content-Type: application/x-www-form-urlencoded username=202012345& password=U2FsdGVkX1%2BabcdefghijklmnopqrstuvwxyzABCDEF... & execution=e7637a06-8937-4197-b207-5986a5a159e6_... & _eventId=submit& cllt=userNameLogin关键发现：✅ 用户名明文传输✅ 密码已加密（Base64格式）✅ 存在 execution 参数（类似CSRF Token）2.2 页面源码分析右键查看页面源代码，搜索关键字 password、encrypt、salt： 发现：AES加密密钥直接嵌入在HTML页面的隐藏字段中三、关键文件分析3.1 加密核心文件：encrypt.js定位到 /authserver/jjuThemea/static/common/encrypt.js3.1.1 随机字符串生成器// 定义随机字符集（排除易混淆字符 I, L, O, 0, 1, 9） var $aes_chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678'; var aes_chars_len = $aes_chars.length; // 生成指定长度的随机字符串 function randomString(len) { var retStr = ''; for (i = 0; i < len; i++) { retStr += $aes_chars.charAt(Math.floor(Math.random() * aes_chars_len)); } return retStr; }原理解析：字符集包含 48 个字符（26个大写字母 + 22个小写字母和数字）排除了 I, L, O, 0, 1, 9 等易混淆字符使用 Math.random() 生成伪随机数每次调用返回指定长度的随机字符串3.1.2 AES加密核心函数// AES加密核心函数 function getAesString(data, key0, iv0) { // 去除密钥首尾空字符 key0 = key0.replace(/(^\s+)|(\s+$)/g, ""); // 将密钥和IV转换为CryptoJS可识别的格式 var key = CryptoJS.enc. Utf8.parse(key0); var iv = CryptoJS.enc.Utf8.parse(iv0); // 执行AES加密 var encrypted = CryptoJS.AES.encrypt(data, key, { iv: iv, // 初始化向量 mode: CryptoJS.mode.CBC, // CBC模式 padding: CryptoJS.pad.Pkcs7 // PKCS7填充 }); // 返回Base64编码的密文 return encrypted.toString(); }原理解析：参数作用说明data明文数据要加密的内容key0加密密钥16字节AES密钥iv0初始化向量16字节随机IVmode: CBC加密模式密码块链接模式padding: Pkcs7填充方式PKCS#7填充标准3.1.3 完整加密流程// 密码加密入口函数 function encryptPassword(pwd0, key) { try { return encryptAES(pwd0, key); } catch (e) { return pwd0; …

OpenList WebUI for OpenWrt - 一个独立的 OpenList (Alist分支) OpenWrt LuCI 管理界面
type: item
date: 2025-08-08T23:17:00+08:00
description: OpenList WebUI for OpenWrt - 一个独立的 OpenList (Alist分支) OpenWrt LuCI 管理界面 项目地址：drfccv/luci-app-openlistui 功能特性🎯 现代化界面设计 - 采用响应式布局，支持多种设备访问📊 系统概览 - 实时显示系统状态、服务运行情况和资源使用🔄 更新管理 - 便捷的组件更新和版本管理📝 日志查看 - 实时日志监控，支持过滤和自动刷新⚙️ 配置管理 - 简化的配置界面，支持各种参数调整🌐 多语言支持 - 支持中文界面界面预览系统概览系统概览页面提供了完整的系统状态监控，包括：服务运行状态系统资源使用情况快速操作按钮系统信息展示更新管理更新管理页面支持：组件版本查看一键更新功能更新进度显示更新日志查看配置设置配置设置页面包含：服务配置选项网络设置安全配置高级选项快速开始编译安装# 编译默认架构 (x86_64) ./build.sh # 编译指定架构 ./build.sh aarch64 ./build.sh mips ./build.sh mipsel ./build.sh arm ./build.sh armv7 # 编译所有支持的架构 ./build.sh all # 快速编译（跳过feeds更新） ./build.sh --fast ./build.sh -f x86_64 # 开发模式（包含时间戳） ./build.sh --dev x86_64 # 显示版本信息 ./build.sh version # 清理构建文件 ./build.sh clean # 显示帮助信息 ./build.sh help构建输出每次构建会生成：IPK包: output/luci-app-openlistui_架构_时间戳.ipk构建信息: output/luci-app-openlistui_架构_时间戳.info构建日志: build-logs/build-架构-时间戳.log版本信息: 包内 /usr/lib/lua/luci/version-openlistui配置文件可以通过 build.conf 自定义构建参数：默认架构SDK URLs构建选项依赖包列表支持的架构x86_64 - x86 64位 (默认)aarch64 - ARM 64位mips - MIPS 大端序 (ath79)mipsel - MIPS 小端序 (ramips)arm - ARM 32位 (bcm2708)armv7 - ARMv7 (bcm2709)构建选项-f, --fast - 跳过feeds更新 (适用于重复构建)--dev - 开发模式，为包文件名添加时间戳安装说明编译IPK包: 使用构建脚本编译对应架构的IPK包安装界面包: 安装编译生成的 luci-app-openlistui IPK包重启服务: 重启 uhttpd 服务以加载新界面访问界面: 通过 OpenWrt 管理界面访问 OpenList 管理页面开发说明目录结构luci-app-openlist/ ├── luasrc/ # Lua 源码 │ ├── controller/ # 控制器 │ ├── model/ # 数据模型 │ └── view/ # 视图模板 ├── htdocs/ # 静态资源 ├── po/ # 多语言文件 ├── root/ # 系统文件 ├── screenshots/ # 界面截图 └── CONTROL/ # 包控制文件开发命令# 检查版本信息 make version # 生成版本文件（调试用） make gen-version # 查看构建变量 grep "PKG_" Makefile注意事项此包为独立的 LuCI 网页界面，无需依赖额外的核心包使用 openlistui 命名空间避免与原始 luci-app-openlist 冲突确保 OpenWrt 系统版本兼容性支持多种主流路由器架构许可证MIT License贡献欢迎提交 Issue 和 Pull Request 来改进这个项目。OpenList WebUI

基于MCP协议的12306查询系统
type: item
date: 2025-07-05T20:31:00+08:00
description: 🚄 MCP Server 12306✨ 项目简介MCP Server 12306是一款基于 Model Context Protocol (MCP) 的高性能火车票查询后端，支持官方 12306 余票、票价、车站、经停、换乘查询以及智能时间工具，适配 AI/自动化/智能助手等场景。界面友好，易于集成，开箱即用。🚀 功能亮点实时余票/车次/座席/时刻/换乘一站式查询全国车站信息管理与模糊搜索官方经停站、一次中转方案全支持实时查询各车次票价信息智能时间工具，支持时区和时间戳Streamable HTTP/STDIO传输协议，支持MCP 2025-03-26标准FastAPI异步高性能，秒级响应MCP标准，AI/自动化场景即插即用🛠️ 快速上手本项目支持两种运行模式：Stdio 模式：适用于 Claude Desktop 等本地 MCP 客户端（推荐）。Streamable HTTP 模式：适用于远程部署或通过 SSE/Post 访问。模式 1：Stdio 模式（Claude Desktop 推荐）在此模式下，MCP Server 通过标准输入/输出与客户端通信，无需占用网络端口。方式 A：使用 uvx（推荐）uvx 是 uv 包管理器提供的工具，环境隔离且启动极快。{ "mcpServers": { "12306": { "command": "uvx", "args": ["mcp-server-12306"] } } }方式 B：使用 pipx如果您更习惯使用 pipx：{ "mcpServers": { "12306": { "command": "pipx", "args": ["run", "--no-cache", "mcp-server-12306"] } } }方式 C：本地源码运行适用于开发者调试：{ "mcpServers": { "12306": { "command": "uv", "args": ["run", "python", "-m", "mcp_12306.cli"], "cwd": "/path/to/mcp-server-12306" } } }模式 2：Streamable HTTP 模式在此模式下，Server 启动一个 Web 服务（默认 8000 端口），支持 MCP 的 SSE（Server-Sent Events）和 POST 交互。方式 A：本地源码运行# 1. 克隆并安装依赖 git clone https://github.com/drfccv/mcp-server-12306.git cd mcp-server-12306 uv sync # 2. 启动服务器 uv run python scripts/start_server.pyMCP 客户端配置：{ "mcpServers": { "12306": { "url": "http://localhost:8000/mcp" } } }方式 B：Docker 部署# 拉取镜像并运行 docker run -d -p 8000:8000 --name mcp-server-12306 drfccv/mcp-server-12306:latest🤖 工具一览支持的主流程工具工具名典型场景/功能描述query_tickets余票/车次/座席/时刻一站式查询query_ticket_price实时查询各车次票价信息search_stations车站模糊搜索，支持中文/拼音/简拼get_station_info获取车站详情（名称、代码、地理等）query_transfer一次中转换乘方案，自动拼接最优中转get_train_route_stations查询指定列车经停站及时刻表get_current_time获取当前时间与相对日期，帮助用户准确选择出行日期📚 工具文档本项目所有主流程工具的详细功能、实现与使用方法，均已收录于 /docs 目录下：query_tickets.md — 余票/车次/座席/时刻一站式查询query_ticket_price.md — 实时查询各车次票价信息search_stations.md — 车站智能搜索query_transfer.md — 一次中转换乘方案get_train_route_stations.md — 查询列车经停站get_current_time.md — 获取当前时间与相对日期每个文档包含：工具功能说明实现方法请求参数与返回示例典型调用方式如需二次开发或集成，建议先阅读对应工具的文档。🧩 目录结构src/mcp_12306/ # 主源代码 ├─ server.py # FastAPI主入口 ├─ services/ # 业务逻辑（车票/车站/HTTP） ├─ utils/ # 工…

正方教务系统爬虫-微信小程序前后端
type: item
date: 2025-07-05T20:25:00+08:00
description: 正方教务系统完整解决方案 - 微信小程序 + 后端 API项目简介这是一个完整的正方教务系统第三方解决方案，包含微信小程序前端和 Python 后端 API 服务。该项目为学生提供便捷的教务管理服务，支持课表查询、成绩管理、选课系统等核心功能。⚠️ 重要说明：本项目为第三方开发的非官方 API，仅供学习交流使用。🔗 前端项目: ZFJW-miniprogram 🔗 后端项目: ZFJW-backend项目架构整体架构图┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐ │ │ │ │ │ │ │ 微信小程序端 │◄──►│ Python 后端 API │◄──►│ 正方教务系统 │ │ │ │ │ │ │ │ - TypeScript 100% │ │ - Python 99.6% │ │ - 各高校教务系统 │ │ - 本地数据缓存 │ │ - Flask 框架 │ │ - 第三方接口调用 │ │ - 隐私保护设计 │ │ - RESTful API │ │ - 数据获取与解析 │ │ │ │ │ │ │ └─────────────────────┘ └─────────────────────┘ └─────────────────────┘技术栈对比组件前端小程序后端 API语言TypeScript (100%)Python (99.6%)框架微信小程序原生Flask 2.0+特性本地缓存、隐私保护RESTful API、多校支持部署微信小程序平台独立服务器/Docker核心功能🎯 完整功能矩阵功能模块前端实现后端支持状态用户认证✅ 登录界面、密码管理✅ 验证码登录、Session 管理已完成个人信息✅ 信息展示、资料管理✅ 学生信息查询已完成智能课表✅ 周视图、手势滑动✅ 课表查询已完成成绩管理✅ 多学期查询、GPA 计算✅ 成绩统计分析已完成考试安排✅ 考试时间展示✅ 考试信息查询已完成选课系统✅ 已选课程显示🚧 选课操作开发中部分完成教学评价✅ 一键评教功能✅ 评价数据处理已完成通知公告✅ 通知展示✅ 消息推送已完成空教室查询🚧 界面开发中🚧 查询接口开发中计划中🔥 核心特性前端特性🎨 现代化界面: 简洁美观的用户界面设计📱 响应式布局: 适配不同屏幕尺寸💾 智能缓存: 离线数据查看，减少网络请求🔒 隐私保护: 数据本地存储，不上传云端⚡ 流畅体验: 手势操作，快速响应后端特性🚀 高性能: 基于 Flask 的轻量级架构🏫 多校支持: 灵活的学校配置系统🔐 安全可靠: 完善的认证和会话管理🐳 容器化: 支持 Docker 部署📊 数据处理: 智能的数据解析和统计详细功能介绍📅 智能课表系统前端实现：// 课表周视图组件 interface ScheduleWeekView { currentWeek: number; scheduleData: CourseInfo[]; weekDays: string[]; timeSlots: TimeSlot[]; } // 手势滑动切换周次 const handleSwipeChange = (e: any) => { const { current } = e.detail; setCurrentWeek(current + 1); loadScheduleData(current + 1); };后端 API：@app.route('/api/schedule', methods=['GET']) def get_schedule(): """获取课表数据""" week = request.args.get('week', 1) try: schedule_data = zfn_api.get_schedule(week) return jsonify({ 'code': 200, 'data': schedule_data, 'message': 'success' }) except Exception as e: return jsonify({ 'code': 500, 'message': str(e) })📊 成绩管理系统前端功能：多学期成绩查询GPA 自动计算成绩统计图表学分统计展示后端处理：def calculate_gpa(grades_data): """计算 GPA""" total_credits = 0 total_grade_points = 0 for grade in grades_data: credit = float(grade.get('credit', 0)) score = float(grade.get('score', 0))…

DeerFlow-CN
type: item
date: 2025-05-19T10:27:00+08:00
description: DeerFlow-CN本项目基于 bytedance/deer-flow 二次开发，专为中文用户优化，支持一键部署、SearXNG 集成、SSL 证书等。🌐 在线 Demo 体验项目简介DeerFlow-CN 是一款面向深度研究与高效信息检索的 AI 工具，结合大语言模型与多种外部工具，适用于学术、科研、知识管理等场景。相比原版，DeerFlow-CN 提供了更好的中文体验、屏幕适配与本地化增强。环境要求🟢 Node.js 22 及以上🐍 Python 3.12 及以上推荐工具⚡ uv：简化 Python 环境与依赖管理，自动创建虚拟环境并安装依赖，无需手动配置 Python 环境。🔄 nvm：高效管理多版本 Node.js 运行时。🚀 pnpm：高效安装和管理 Node.js 项目依赖。主要特点🇨🇳 全面汉化：界面、交互、设置、提示等全部中文化。📱 屏幕自适应：支持移动端、4K、竖屏等多种分辨率，体验更佳。💬 Chat 简单聊天模式：可选择不调用 researcher，仅用 LLM 聊天。🛠️ Settings 界面优化：修复 Tab 显示异常，交互更流畅。🔍 SearXNG 集成：支持 SearXNG 作为搜索来源，隐私友好。🧩 一键安装/启动 SearXNG：内置脚本自动安装并集成 SearXNG。⚡ 一键启动脚本：start.js/start-with-searxng.js 支持 SSL，证书自动加载。🔒 SSL 支持：可直接部署 HTTPS，证书与密钥位于 web/fullchain.pem、web/privkey.pem。项目架构├── main.py / server.py # 后端主入口 ├── src/ # 核心后端逻辑（agents/、llms/、tools/等） ├── web/ # 前端 Next.js + Tailwind + React │ ├── src/app/ # 页面与组件 │ ├── public/ # 静态资源 │ ├── start.js # 一键启动脚本（支持SSL） │ ├── start-with-searxng.js # 启动并集成SearXNG │ ├── fullchain.pem # SSL证书 │ ├── privkey.pem # SSL密钥 │ └── ... ├── conf.yaml # LLM与API配置 ├── .env # API密钥配置 ├── docs/ # 配置与使用文档 └── ...快速开始1. 克隆项目git clone https://github.com/drfccv/deer-flow-cn.git cd deer-flow-cn2. 安装依赖uv sync3. 配置环境变量复制并编辑 .env：cp .env.example .env # 配置 Tavily、Brave Search、volcengine TTS 等 API Key复制并编辑 conf.yaml：cp conf.yaml.example conf.yaml # 配置 LLM 接口与模型详细配置说明见 docs/configuration_guide.md4. 安装 Marp（PPT 生成）（可选）marp-cli 安装文档macOS: brew install marp-cli5. 安装 SearXNG（可选，推荐）bash ./src/tools/install-searxng.sh6. 安装前端依赖cd web pnpm install7. 一键启动（推荐，自动启用SSL）启动后端+前端+SearXNG（推荐）：node start-with-searxng.js仅启动后端+前端（不含SearXNG）：node start.js默认自动加载 web/fullchain.pem、web/privkey.pem 证书。8. 开发模式启动前端：pnpm dev启动后端：uv run server.py --ssl --ssl-certfile=web/fullchain.pem --ssl-keyfile=web/privkey.pem可省略 --ssl 参数则为 HTTP，添加 --ssl 参数即启用 HTTPS。主要配置说明.env：API 密钥（Tavily、Brave、TTS等）conf.yaml：LLM模型与API配置，详见 docs/configuration_guide.mdweb/fullchain.pem、web/privkey.pem：SSL证书与密钥主要改进与亮点全面汉化，适合中文用户响应式设计，适配多终端Chat支持“简单聊天”模式Settings界面Tab显示修复SearXNG一键集成与自动安装一键SSL部署，安全易用参考与致谢原项目：byted…

DeerFlow-ByteDance开源项目分享
type: item
date: 2025-05-11T17:29:00+08:00
description: 🦌 DeerFlow 项目分享一个由社区驱动的深度研究框架，结合语言模型与工具，如网页搜索、爬虫和 Python 执行，致力于回馈开源社区。(GitHub)📌 项目简介DeerFlow（Deep Exploration and Efficient Research Flow）是由字节跳动开源的多智能体研究自动化框架，旨在通过协调多个专用智能体（如搜索、编码、内容生成等）来增强复杂研究工作流程。该框架集成了 Python 执行、网页爬虫和 ByteDance 的 MCP 平台等工具，强调人机协作，使其在实际研究和企业应用中高度适应。 (Reddit)✨ 核心特性多智能体架构：每个智能体负责特定任务，如任务规划、知识检索、代码执行或报告合成，通过 LangGraph 构建的有向图进行交互，实现任务的稳健编排和数据流控制。 (Learnopoly)LangChain 与 LangGraph 集成：利用 LangChain 进行语言模型推理和记忆处理，LangGraph 实现多智能体的编排，支持复杂的研究流程。(Learnopoly)工具集成：网页搜索与爬虫：实时获取知识，聚合外部数据源。Python 执行与可视化：支持数据处理、统计分析和代码生成，提供执行验证。MCP 集成：兼容 ByteDance 的内部模型控制平台，支持更深入的自动化流程。多模态输出生成：不仅限于文本摘要，还可协同生成幻灯片、播客脚本或视觉内容。 (Learnopoly)人机协作：强调人类在研究流程中的参与，确保结果的透明性和可控性。(Learnopoly)🚀 快速开始环境要求Python：版本 3.12+Node.js：版本 22+(GitHub)推荐工具uv：简化 Python 环境和依赖管理。nvm：轻松管理多个 Node.js 运行时版本。pnpm：安装和管理 Node.js 项目的依赖项。(GitHub)安装步骤# 克隆仓库 git clone https://github.com/bytedance/deer-flow.git cd deer-flow # 安装依赖，uv 将自动创建虚拟环境并安装所需的包 uv sync # 配置 .env 文件，添加您的 API 密钥 cp .env.example .env请根据需要配置 .env 文件中的 API 密钥，例如 Tavily、Brave\_SEARCH 和 volcengine TTS。(GitHub)🧠 示例演示DeerFlow 提供了多个演示示例，展示了其在不同场景下的应用：埃菲尔铁塔与世界最高建筑的高度对比GitHub 上的热门趋势仓库撰写关于南京传统菜肴的文章如何装饰租赁公寓更多示例请访问官方项目页面：deerflow.tech(Reddit)🤝 鸣谢DeerFlow 构建在开源社区的卓越工作之上，特别感谢以下项目：(GitHub)LangChain：提供了强大的语言模型交互和链式调用框架。LangGraph：实现了多智能体的编排，支持复杂的工作流程。(GitHub, Learnopoly)特别感谢核心作者：(GitHub)Daniel WalnutHenry Li他们的愿景、热情和奉献使 DeerFlow 项目得以实现。📈 Star 趋势🖼️ 运行截图以下是我在本地运行 DeerFlow 的截图：如需了解更多信息，请访问项目的 GitHub 页面：https://github.com/bytedance/deer-flow

旅行规划助手-基于LLM以及高德JSAPI
type: item
date: 2025-05-09T14:24:00+08:00
description: AI 旅行规划助手 🌍✈️一个基于人工智能的旅行规划助手，利用大语言模型和高德地图API为用户定制个性化的旅行计划。🔗 项目地址📝 在线体验 Demo✨ 功能特点🤖 AI驱动的旅行规划：基于硅基流动Qwen/Qwen3-235B-A22B模型智能生成详细的多日旅程🗺️ 高德地图集成：准确显示景点位置和路线规划🌦️ 实时天气信息：获取目的地的准确天气预报🏨 完整旅行建议：包含住宿、交通、餐饮和景点游览时间推荐💾 智能缓存机制：减少API调用，提高响应速度📱 响应式设计：适配各种设备尺寸，提供良好的移动端体验🚀 快速开始前提条件Node.js 16.x 或更高版本高德地图API密钥大语言模型API密钥 (如DeepSeek API)安装步骤克隆仓库git clone https://github.com/Drfccv/AI-Trip-Planner.git cd AI-Trip-Planner安装依赖npm install创建环境配置在项目根目录创建.env文件，添加以下内容：export const ENV = { AMAP_API_KEY: 'YOUR_AMAP_KEY', AMAP_SECURITY_KEY: 'YOUR_AMAP_SECURITY_KEY', DEEPSEEK_API_KEY: 'YOUR_SILICONFLOW_KEY' };启动开发服务器npm run dev打开浏览器访问 http://localhost:5173🏗️ 技术栈前端框架: React + TypeScript构建工具: ViteUI组件库: Ant Design地图服务: 高德地图 JavaScript API状态管理: React HooksHTTP客户端: AxiosAI服务: 硅基流动API (Qwen/Qwen3-235B-A22B模型)📝 使用指南在首页填写旅行信息表单:目的地城市旅行日期和天数交通方式偏好住宿偏好旅行风格标签点击"生成旅行计划"按钮系统将调用AI生成详细的旅行计划并展示:每日行程安排景点信息与推荐游览时间交通与住宿建议餐饮推荐天气预报互动地图可以随时返回调整参数重新规划🧩 项目结构src/ ├── assets/ # 静态资源 ├── components/ # 可复用组件 │ ├── AmapComponent.tsx # 高德地图组件 │ ├── LoadingPage.tsx # 加载页面组件 │ ├── TripInputForm.tsx # 旅行输入表单 │ └── TripPlanResult.tsx # 旅行计划结果展示 ├── pages/ # 页面组件 │ ├── HomePage.tsx # 首页 │ └── ResultPage.tsx # 结果页 ├── services/ # API服务 │ └── api.ts # API调用函数 ├── types/ # TypeScript类型定义 │ └── index.ts # 类型定义文件 └── utils/ # 工具函数 └── mockData.ts # 模拟数据🌟 核心功能实现细节AI旅行计划生成使用硅基流动提供的Qwen/Qwen3-235B-A22B大语言模型生成定制化的旅行计划。该模型是基于通义千问系列的超大规模语言模型，拥有2350亿参数量，具有强大的自然语言理解和生成能力。系统会将用户的旅行偏好（目的地、日期、天数、交通方式、住宿偏好和旅行风格标签）格式化后发送给模型，模型会返回结构化的旅行计划JSON数据，包括：每日详细行程安排景点推荐与描述游览时间建议餐饮推荐交通与住宿安排根据用户偏好定制的总体建议模型会基于城市特点、季节因素、用户偏好等多维度信息优化生成结果，并且会考虑景点之间的地理位置关系，合理安排游览顺序。高德地图集成景点定位: 通过高德POI搜索API获取景点准确位置路线规划: 根据交通方式提供合理的游览路线地图可视化: 直观展示每日或全程的景点分布(BUG)天气信息调用高德天气API获取目的地的实时天气预报，帮助用户做好行前准备。高德JSAPI仅可查询未来3天天气，后续考虑更换API服务📄 许可证MIT🤝 贡献指南欢迎提交Pull Request或Issue！对于重大变更，请先开Issue讨论您想要改变的内容。📞 联系方式如有任何问题或建议，请通过以下方式联系我：Email: 2713587802@qq.comGitHub: DrfccvAI旅行规划助手 - 让旅行计划变得简单而智能，由Qwen/Qwen3-235B-A22B模型提供强大的AI能力支持 🌈