当前位置: 首页 > article >正文

CHORD-X构建自动化运维报告系统:服务器日志分析与日报生成

CHORD-X构建自动化运维报告系统服务器日志分析与日报生成最近和几个运维朋友聊天发现他们每天都要花一两个小时写日报、周报。服务器状态、错误日志、性能趋势……这些数据分散在各个系统里手动整理起来特别费劲。关键是这种重复性工作还特别容易出错有时候忙起来漏掉几个关键告警第二天就可能出问题。有没有办法让机器自己分析日志然后生成一份像模像样的运维报告呢正好最近在折腾CHORD-X这类大语言模型我就想能不能用它来试试。经过一段时间的摸索和实验还真搞出了一套能自动生成运维日报的系统。今天就来聊聊具体怎么做的希望能给有同样烦恼的朋友一些参考。1. 这个系统能解决什么问题先说说我们面对的具体情况。一个中等规模的线上系统每天产生的日志大概有几十GB监控指标更是海量。运维同学每天需要查看各种仪表盘CPU、内存、磁盘、网络每个都要看一遍翻阅错误日志从成千上万条日志里找出真正有问题的关联分析某个服务响应时间变慢是因为数据库慢了还是网络问题写成报告把上面的发现整理成文字说明今天整体状况、有什么问题、可能的原因、建议怎么处理这套流程走下来没一两个小时根本搞不定。而且完全是体力活——数据是现成的分析逻辑也大同小异就是需要人肉把信息提取、整理、写成文字。我们想做的自动化系统目标很明确让机器代替人工完成“从数据到报告”这个转换过程。具体来说自动采集定时拉取各系统的监控数据和日志智能分析用CHORD-X理解这些数据找出异常、关联事件、推测原因生成报告输出结构清晰、语言通顺的运维日报最终希望达到的效果是运维同学每天花5分钟看一眼自动生成的报告就能掌握系统整体状况把省下来的时间用在真正需要人工干预的复杂问题上。2. 整体方案设计这套系统不算复杂核心就是“采集-处理-生成”三个步骤。下面这张图展示了整个流程[监控系统] -- [数据采集器] -- [预处理模块] -- [CHORD-X分析引擎] -- [报告生成器] ↑ ↑ ↑ ↑ ↑ 指标数据 日志数据 告警数据 聚合后的数据 格式化报告2.1 需要准备哪些数据要让CHORD-X写出靠谱的报告得给它提供足够的信息。我们主要收集三类数据性能指标这是基础的健康状况数据CPU使用率按服务器、按核心内存使用量、交换空间使用情况磁盘IOPS、读写延迟、空间使用率网络带宽、连接数、错误包率应用层面的QPS、响应时间、错误率日志信息这里藏着很多“为什么”应用错误日志ERROR级别慢查询日志数据库、API服务启动/停止记录认证失败、权限拒绝等安全相关日志告警事件系统已经发现的问题监控系统触发的告警如CPU超过阈值健康检查失败第三方服务异常如短信网关、支付接口2.2 数据处理流程原始数据不能直接扔给CHORD-X需要先做一轮预处理第一步聚合和汇总把原始的时间序列数据变成更容易理解的统计信息。比如一天内CPU使用率的平均值、峰值、峰值时间错误日志按类型、按服务聚合告警按严重程度、按服务分组第二步提取关键信息从海量数据中找出真正重要的部分找出比平时高/低超过30%的指标识别错误日志中的异常模式标记持续时间超过5分钟的告警第三步格式化成自然语言片段这是为了让CHORD-X更好理解。比如把“CPU使用率 12:00-13:00 平均85%峰值95%”变成 “今天中午12点到1点期间CPU使用率较高平均达到85%在12:45左右出现95%的峰值。”2.3 CHORD-X的角色处理好的数据交给CHORD-X它主要做三件事理解上下文知道这些数据代表什么比如“响应时间从200ms增加到500ms”意味着服务变慢了。关联分析把看似独立的事件联系起来。比如“数据库慢查询增多”和“API响应时间变慢”可能是因果关系。生成叙述用人类能看懂的语言把分析结果组织成连贯的报告。3. 具体实现步骤下面我以Ubuntu 20.04系统为例展示如何搭建这套系统。如果你用其他系统思路是一样的只是安装命令可能不同。3.1 环境准备和CHORD-X部署首先准备一台服务器配置不用太高4核8G内存就够用了。我们假设你已经有了Ubuntu 20.04系统。安装基础依赖# 更新系统 sudo apt update sudo apt upgrade -y # 安装Python和相关工具 sudo apt install -y python3-pip python3-venv git curl # 安装Docker方便部署CHORD-X sudo apt install -y docker.io docker-compose sudo systemctl start docker sudo systemctl enable docker部署CHORD-X 这里我推荐用Docker方式最简单省事。CHORD-X的镜像可以在CSDN星图镜像广场找到。# 创建一个工作目录 mkdir ~/chord-ops cd ~/chord-ops # 创建docker-compose配置文件 cat docker-compose.yml EOF version: 3.8 services: chord-x: image: chord-x:latest # 这里替换成实际的镜像名称 container_name: chord-x-ops ports: - 8000:8000 volumes: - ./data:/app/data - ./logs:/app/logs environment: - MODEL_PATH/app/models/chord-x - API_KEYyour_api_key_here restart: unless-stopped EOF # 启动服务 docker-compose up -d # 检查服务是否正常 curl http://localhost:8000/health如果看到返回{status: healthy}说明CHORD-X服务启动成功了。3.2 数据采集模块数据采集部分我们用一个Python脚本来实现。这个脚本定时运行从各个系统拉取数据。#!/usr/bin/env python3 运维数据采集脚本 定时执行收集性能指标、日志、告警等信息 import json import time from datetime import datetime, timedelta import subprocess import requests from typing import Dict, List, Any class OpsDataCollector: def __init__(self, config_path: str config.json): with open(config_path, r) as f: self.config json.load(f) def collect_metrics(self) - Dict[str, Any]: 收集系统性能指标 metrics { timestamp: datetime.now().isoformat(), cpu: self._get_cpu_metrics(), memory: self._get_memory_metrics(), disk: self._get_disk_metrics(), network: self._get_network_metrics(), services: self._get_service_status() } return metrics def _get_cpu_metrics(self) - Dict[str, float]: 获取CPU使用率 try: # 使用mpstat命令获取CPU使用率 result subprocess.run( [mpstat, 1, 1], capture_outputTrue, textTrue, timeout5 ) lines result.stdout.strip().split(\n) for line in lines: if %idle in line: # 解析CPU空闲率计算使用率 parts line.split() if len(parts) 11: idle float(parts[11]) return {usage_percent: 100 - idle} except Exception as e: print(f获取CPU指标失败: {e}) return {usage_percent: 0.0} def collect_logs(self, since: str 1h) - List[Dict[str, Any]]: 收集最近一段时间的关键日志 logs [] # 这里以收集syslog中的错误日志为例 try: cmd [journalctl, --since, since, -p, err, -o, json] result subprocess.run(cmd, capture_outputTrue, textTrue, timeout10) for line in result.stdout.strip().split(\n): if line: log_entry json.loads(line) logs.append({ timestamp: log_entry.get(__REALTIME_TIMESTAMP, ), service: log_entry.get(_SYSTEMD_UNIT, unknown), message: log_entry.get(MESSAGE, ), priority: ERROR }) except Exception as e: print(f收集日志失败: {e}) return logs def collect_alerts(self) - List[Dict[str, Any]]: 从监控系统收集告警 # 这里假设使用Prometheus Alertmanager alerts [] try: response requests.get( http://localhost:9093/api/v2/alerts, timeout10 ) if response.status_code 200: alert_data response.json() for alert in alert_data: alerts.append({ name: alert.get(labels, {}).get(alertname, ), severity: alert.get(labels, {}).get(severity, warning), status: alert.get(status, {}).get(state, ), summary: alert.get(annotations, {}).get(summary, ), start_time: alert.get(startsAt, ) }) except Exception as e: print(f收集告警失败: {e}) return alerts # 使用示例 if __name__ __main__: collector OpsDataCollector() # 收集数据 metrics collector.collect_metrics() logs collector.collect_logs(2h) alerts collector.collect_alerts() # 保存到文件 data { metrics: metrics, logs: logs[:50], # 只取最近50条错误日志 alerts: alerts, collected_at: datetime.now().isoformat() } with open(fops_data_{datetime.now().strftime(%Y%m%d_%H%M)}.json, w) as f: json.dump(data, f, indent2) print(f数据收集完成共收集到 {len(logs)} 条日志{len(alerts)} 个告警)这个脚本可以放到crontab里定时执行比如每15分钟跑一次# 编辑crontab crontab -e # 添加以下行每15分钟执行一次 */15 * * * * /usr/bin/python3 /path/to/collector.py /var/log/ops_collector.log 213.3 数据预处理和聚合收集到的原始数据需要先处理一下让CHORD-X更容易理解。我们写一个预处理脚本#!/usr/bin/env python3 数据预处理脚本 将原始数据聚合成CHORD-X容易理解的格式 import json from datetime import datetime, timedelta from collections import defaultdict from typing import Dict, List, Any class DataPreprocessor: def __init__(self, raw_data_file: str): with open(raw_data_file, r) as f: self.raw_data json.load(f) def preprocess(self) - Dict[str, Any]: 主预处理函数 processed { report_date: datetime.now().strftime(%Y年%m月%d日), time_period: 今日, # 可以改为本周等 summary: self._generate_summary(), metrics_analysis: self._analyze_metrics(), key_events: self._extract_key_events(), recommendations: [] # 先留空由CHORD-X填充 } return processed def _generate_summary(self) - str: 生成数据摘要 metrics self.raw_data.get(metrics, {}) logs self.raw_data.get(logs, []) alerts self.raw_data.get(alerts, []) summary_parts [] # CPU情况 cpu_usage metrics.get(cpu, {}).get(usage_percent, 0) if cpu_usage 80: summary_parts.append(fCPU使用率较高{cpu_usage:.1f}%) elif cpu_usage 20: summary_parts.append(fCPU使用率较低{cpu_usage:.1f}%) # 错误日志数量 error_count len(logs) if error_count 10: summary_parts.append(f发现{error_count}条错误日志) # 告警情况 active_alerts [a for a in alerts if a.get(status) firing] if active_alerts: summary_parts.append(f有{len(active_alerts)}个活跃告警) if not summary_parts: return 今日系统运行平稳无明显异常。 return .join(summary_parts) 。 def _analyze_metrics(self) - List[Dict[str, Any]]: 分析性能指标 analysis [] metrics self.raw_data.get(metrics, {}) # 分析CPU cpu_usage metrics.get(cpu, {}).get(usage_percent, 0) if cpu_usage 80: analysis.append({ item: CPU使用率, value: f{cpu_usage:.1f}%, status: 需关注, description: CPU使用率超过80%建议检查是否有异常进程 }) # 分析内存 memory metrics.get(memory, {}) if memory.get(usage_percent, 0) 90: analysis.append({ item: 内存使用率, value: f{memory.get(usage_percent, 0):.1f}%, status: 需关注, description: 内存使用率较高可能影响系统性能 }) return analysis def _extract_key_events(self) - List[Dict[str, Any]]: 提取关键事件 events [] logs self.raw_data.get(logs, []) alerts self.raw_data.get(alerts, []) # 从日志中提取重要错误 error_services defaultdict(int) for log in logs: service log.get(service, unknown) error_services[service] 1 for service, count in error_services.items(): if count 5: # 同一个服务错误超过5次 events.append({ type: 服务异常, service: service, count: count, description: f{service}服务出现{count}次错误 }) # 添加活跃告警 for alert in alerts: if alert.get(status) firing: events.append({ type: 系统告警, service: alert.get(name, unknown), severity: alert.get(severity, warning), description: alert.get(summary, ) }) return events # 使用示例 if __name__ __main__: # 假设数据文件是今天收集的 today datetime.now().strftime(%Y%m%d) preprocessor DataPreprocessor(fops_data_{today}_1200.json) processed_data preprocessor.preprocess() # 保存处理后的数据 with open(fprocessed_data_{today}.json, w) as f: json.dump(processed_data, f, indent2, ensure_asciiFalse) print(数据预处理完成)3.4 调用CHORD-X生成报告现在有了处理好的数据就可以调用CHORD-X来生成报告了#!/usr/bin/env python3 调用CHORD-X生成运维报告 import json import requests from datetime import datetime from typing import Dict, Any class ReportGenerator: def __init__(self, chord_x_url: str http://localhost:8000): self.chord_x_url chord_x_url self.api_key your_api_key_here # 替换成实际的API密钥 def generate_report(self, processed_data: Dict[str, Any]) - str: 生成运维报告 # 构建给CHORD-X的提示词 prompt self._build_prompt(processed_data) # 调用CHORD-X API response self._call_chord_x(prompt) return response def _build_prompt(self, data: Dict[str, Any]) - str: 构建提示词 prompt f你是一位经验丰富的运维工程师请根据以下系统监控数据生成一份运维日报。 报告日期{data[report_date]} 统计周期{data[time_period]} 整体概况 {data[summary]} 详细指标分析 # 添加指标分析 for item in data[metrics_analysis]: prompt f- {item[item]}: {item[value]} ({item[status]}) - {item[description]}\n # 添加关键事件 if data[key_events]: prompt \n关键事件记录\n for event in data[key_events]: prompt f- [{event[type]}] {event.get(service, )}: {event[description]}\n else: prompt \n关键事件记录今日无关键事件。\n prompt 请按照以下结构生成报告 1. 执行摘要用一段话概括今日整体状况 2. 资源使用情况CPU、内存、磁盘、网络的主要指标和趋势 3. 异常事件分析错误日志、告警事件的分析 4. 根因推测基于现有数据的可能原因分析 5. 优化建议具体的、可操作的建议 报告要求 - 使用专业但易懂的语言 - 对重要问题要突出显示 - 建议要具体可行 - 如果数据不足无法判断请说明需要补充哪些信息 return prompt def _call_chord_x(self, prompt: str) - str: 调用CHORD-X API try: response requests.post( f{self.chord_x_url}/v1/completions, headers{ Authorization: fBearer {self.api_key}, Content-Type: application/json }, json{ prompt: prompt, max_tokens: 2000, temperature: 0.7, top_p: 0.9 }, timeout30 ) if response.status_code 200: result response.json() return result.get(choices, [{}])[0].get(text, ).strip() else: return f调用CHORD-X失败: {response.status_code} except Exception as e: return f调用CHORD-X时出错: {str(e)} # 使用示例 if __name__ __main__: # 读取处理后的数据 today datetime.now().strftime(%Y%m%d) with open(fprocessed_data_{today}.json, r) as f: processed_data json.load(f) # 生成报告 generator ReportGenerator() report generator.generate_report(processed_data) # 保存报告 report_filename fops_report_{today}.md with open(report_filename, w) as f: f.write(report) print(f报告已生成: {report_filename}) print(\n *50 \n) print(report[:500] ...) # 打印前500字符预览3.5 报告示例运行上面的代码后CHORD-X会生成类似这样的报告# 运维日报 - 2024年1月15日 ## 1. 执行摘要 今日系统整体运行基本平稳但需关注CPU使用率偏高问题。下午时段检测到多次数据库连接异常虽未造成服务中断但可能影响部分用户体验。内存和磁盘空间使用正常网络状况良好。 ## 2. 资源使用情况 **CPU使用率**今日平均使用率65%在14:30-15:30期间出现峰值达到88%。主要消耗来自用户服务user-service和订单处理服务order-service。 **内存使用**整体内存使用率72%处于健康范围。JVM堆内存使用平稳无频繁GC现象。 **磁盘空间**所有服务器磁盘使用率均低于70%其中日志分区使用率55%建议定期清理过期日志。 **网络状况**内外网带宽使用正常错误包率低于0.01%网络延迟在正常范围内。 ## 3. 异常事件分析 今日共发现23条错误日志主要集中在以下服务 1. **数据库服务**15次连接池耗尽错误发生在14:25-14:40期间 2. **支付服务**5次第三方支付网关超时单次影响 3. **用户服务**3次缓存击穿导致的数据库查询异常 活跃告警1个 - **数据库连接数告警**从14:30持续至15:10阈值设置为最大连接数的85% ## 4. 根因推测 根据日志时间关联分析今日主要问题可能由以下原因导致 1. **数据库连接池配置不足**下午业务高峰期间连接请求超过连接池上限 2. **第三方服务不稳定**支付网关响应延迟导致部分交易处理超时 3. **缓存策略待优化**用户服务缓存失效过于集中造成数据库瞬时压力 ## 5. 优化建议 **立即执行** 1. 调整数据库连接池配置将最大连接数从50增加至80 2. 为支付服务添加重试机制和降级策略 **近期优化** 1. 检查用户服务缓存过期策略避免集中失效 2. 考虑引入连接池监控设置更精细的告警阈值 **长期规划** 1. 评估数据库读写分离方案分散读压力 2. 调研更稳定的支付通道备用方案 **需要补充的信息** - 数据库慢查询日志详情确认是否有低效SQL - 业务高峰期的具体QPS数据评估容量是否充足4. 实际应用中的注意事项在实际使用这套系统时有几个点需要特别注意数据质量是关键CHORD-X的分析能力再强如果给它的数据有问题结果肯定不靠谱。要确保数据采集的完整性和准确性特别是时间戳要对齐不然关联分析会出错。提示词需要调优不同的运维团队关注点不一样。有的更关注稳定性有的更关注性能。你需要根据自己团队的需求调整给CHORD-X的提示词让它生成更符合你们习惯的报告。人工复核不能少至少在前几个月生成的报告一定要有人工复核。一方面检查CHORD-X的分析是否合理另一方面也是积累经验为后续优化提供依据。逐步扩大范围不要一开始就用在所有系统上。先选一两个不太重要的服务试点等效果稳定了再逐步推广到核心系统。注意数据安全运维数据通常比较敏感要确保整个流程的数据安全。CHORD-X服务要做好访问控制生成的报告也要妥善保管。5. 效果和优化方向我们团队用了这套系统大概三个月效果还是挺明显的最直接的变化是写日报的时间从平均每天1.5小时减少到15分钟——主要是复核和微调的时间。而且因为报告是自动生成的不会出现人为遗漏的情况覆盖更全面。另一个好处是一致性。以前不同的人写报告风格、重点都不一样。现在统一由CHORD-X生成格式规范重点突出团队内部沟通效率也提高了。当然目前系统还有改进空间。比如对于复杂问题的根因分析CHORD-X有时候会“想太多”给出不太靠谱的推测。我们现在的做法是在提示词里明确告诉它“如果证据不足不要强行关联”同时人工复核时重点关注这部分。后续我们计划从几个方向继续优化一是增加更多数据源比如业务日志、用户反馈、变更记录等让CHORD-X的分析更全面。二是实现交互式分析不光生成固定报告还能回答运维人员的临时问题比如“昨天数据库慢的时候应用层有什么异常”三是个性化定制让不同角色的运维人员比如DBA、网络工程师、应用运维能看到更符合自己需求的报告内容。整体用下来这套基于CHORD-X的自动化运维报告系统确实能节省不少时间。虽然不能完全替代人工分析但处理日常的、规律性的报告工作绰绰有余。如果你也在为写运维报告烦恼不妨试试这个方案先从简单的数据收集和报告生成开始慢慢完善。技术本身不难关键是找到适合自己团队的工作流程。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

相关文章:

CHORD-X构建自动化运维报告系统:服务器日志分析与日报生成

CHORD-X构建自动化运维报告系统:服务器日志分析与日报生成 最近和几个运维朋友聊天,发现他们每天都要花一两个小时写日报、周报。服务器状态、错误日志、性能趋势……这些数据分散在各个系统里,手动整理起来特别费劲。关键是,这种…...

文墨共鸣大模型入门指南:Ubuntu 20.04系统下的保姆级部署教程

文墨共鸣大模型入门指南:Ubuntu 20.04系统下的保姆级部署教程 想试试最近挺火的文墨共鸣大模型,但被复杂的部署步骤劝退了?别担心,这篇教程就是为你准备的。咱们今天不谈复杂的原理,就手把手教你,如何在Ub…...

Zotero中文文献管理终极指南:茉莉花插件一键解决三大痛点

Zotero中文文献管理终极指南:茉莉花插件一键解决三大痛点 【免费下载链接】jasminum A Zotero add-on to retrive CNKI meta data. 一个简单的Zotero 插件,用于识别中文元数据 项目地址: https://gitcode.com/gh_mirrors/ja/jasminum 如果你正在使…...

3个关键步骤:在电视盒子上完美运行Armbian系统的终极指南

3个关键步骤:在电视盒子上完美运行Armbian系统的终极指南 【免费下载链接】amlogic-s9xxx-armbian Supports running Armbian on Amlogic, Allwinner, and Rockchip devices. Support a311d, s922x, s905x3, s905x2, s912, s905d, s905x, s905w, s905, s905l, rk358…...

BUUCTF-[HITCON 2017]SSRFme

代码分析<?phpif (isset($_SERVER[HTTP_X_FORWARDED_FOR])) { //HTTP_X_FORWARDED_FOR可以获取客户端真正ip地址&#xff0c;和各个代理IP地址$http_x_headers explode(,, $_SERVER[HTTP_X_FORWARDED_FOR]); //拆分字符串&#xff0c;以&#xff0c;分割$_SERVER[REMOTE…...

数据宝藏库:Awesome Public Datasets完整入门指南

数据宝藏库&#xff1a;Awesome Public Datasets完整入门指南 【免费下载链接】awesome-public-datasets A topic-centric list of HQ open datasets. 项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-public-datasets 你是否曾经为了寻找高质量的数据集而烦…...

别再死磕理论了!用Python+Pytorch实战多示例学习(MIL)图像分类,附完整代码

用PythonPytorch实战多示例学习图像分类&#xff1a;从数据到模型的完整指南 当你第一次听说"多示例学习"&#xff08;Multiple Instance Learning, MIL&#xff09;时&#xff0c;是不是也被那些抽象的理论弄得一头雾水&#xff1f;作为计算机视觉领域的重要技术&am…...

避开这5个坑!用MediaRecorder+Vue3实现高兼容性语音输入

Vue3MediaRecorder实战&#xff1a;5个关键技巧打造高兼容语音输入方案 在移动优先的时代&#xff0c;语音输入已成为提升用户体验的重要交互方式。但当你兴奋地在Vue3项目中集成MediaRecorder API时&#xff0c;可能会遇到iOS设备上的静默失败、Android机型上的格式兼容性问题…...

Claude技能开发实战指南:从入门到精通的认知升级路径

Claude技能开发实战指南&#xff1a;从入门到精通的认知升级路径 【免费下载链接】awesome-claude-skills A curated list of awesome Claude Skills, resources, and tools for customizing Claude AI workflows 项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-…...

SQL 基础及 MySQL DBA 运维实战 - 6:Mycat代理技术

MySQL DBA运维实战&#xff1a;集群与代理技术深度解析 引言 在现代互联网应用中&#xff0c;数据库的高可用性、可扩展性和性能是企业级应用的核心需求。随着业务量的增长&#xff0c;单一数据库服务器往往无法满足需求&#xff0c;此时数据库集群和代理技术成为解决这些问题…...

实战应用:使用快马平台为vmware17部署生成企业级健康检查与配置方案

在实际的企业IT环境中&#xff0c;部署VMware vSphere 17&#xff08;以下简称VMware 17&#xff09;这类虚拟化平台往往不是简单的安装过程&#xff0c;而是需要综合考虑硬件兼容性、系统配置、安全策略等多方面因素。为了确保部署过程的顺利和后续运行的稳定&#xff0c;我们…...

AI赋能开发:让快马平台智能理解并生成产区标准图交互应用

AI赋能开发&#xff1a;让快马平台智能理解并生成产区标准图交互应用 最近在做一个农产品产区标准查询系统的项目&#xff0c;发现用传统方式开发这类需求特别费时。比如要处理用户自然语言查询、动态生成地图、实现智能推荐逻辑&#xff0c;光写基础代码就得花好几天。后来尝…...

新手必看:在快马平台学习排列组合公式的代码实现

新手必看&#xff1a;在快马平台学习排列组合公式的代码实现 作为一个编程新手&#xff0c;当我第一次接触排列组合公式时&#xff0c;那些数学符号和递归逻辑让我一头雾水。直到在InsCode(快马)平台上找到了带详细注释的示例代码&#xff0c;才真正理解了Cn和An公式的实现原理…...

赋能音乐自由:Unlock Music技术解密与全场景应用指南

赋能音乐自由&#xff1a;Unlock Music技术解密与全场景应用指南 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库&#xff1a; 1. https://github.com/unlock-music/unlock-music &#xff1b;2. https://git.unlock-music.dev/um/web 项目地址: https:…...

告别重复造轮子:用快马AI一键生成高复用性imToken集成代码模块

告别重复造轮子&#xff1a;用快马AI一键生成高复用性imToken集成代码模块 开发涉及钱包集成的DApp时&#xff0c;最让人头疼的就是那些重复性的基础代码。每次新项目都要重新写一遍连接钱包、处理授权、监听网络切换的逻辑&#xff0c;不仅浪费时间&#xff0c;还容易引入安全…...

终极窗口尺寸编辑器:SRWE让你的应用程序窗口自由伸缩

终极窗口尺寸编辑器&#xff1a;SRWE让你的应用程序窗口自由伸缩 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE Simple Runtime Window Editor (SRWE) 是一款革命性的开源工具&#xff0c;它能让你实时调整任何…...

音乐标签编辑器:让本地音乐元数据管理效率提升90%的开源工具

音乐标签编辑器&#xff1a;让本地音乐元数据管理效率提升90%的开源工具 【免费下载链接】music-tag-web 音乐标签编辑器&#xff0c;可编辑本地音乐文件的元数据&#xff08;Editable local music file metadata.&#xff09; 项目地址: https://gitcode.com/gh_mirrors/mu/…...

FanControl完全指南:5分钟掌握Windows风扇智能控制

FanControl完全指南&#xff1a;5分钟掌握Windows风扇智能控制 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/Fa…...

如何用3dsconv解决3DS游戏格式兼容问题:从入门到精通的转换指南

如何用3dsconv解决3DS游戏格式兼容问题&#xff1a;从入门到精通的转换指南 【免费下载链接】3dsconv Python script to convert Nintendo 3DS CCI (".cci", ".3ds") files to the CIA format 项目地址: https://gitcode.com/gh_mirrors/3d/3dsconv …...

M2LOrder模型在STM32项目中的潜在应用:边缘设备情绪反馈

M2LOrder模型在STM32项目中的潜在应用&#xff1a;边缘设备情绪反馈 最近在捣鼓一个基于STM32的智能硬件项目&#xff0c;想给它加点“人情味”。比如&#xff0c;当用户对它说话时&#xff0c;它能感知到用户的情绪是开心还是沮丧&#xff0c;并给出更贴切的反馈。这听起来很…...

Audio2Face深度解析:音频驱动面部动画的技术架构与实战指南

Audio2Face深度解析&#xff1a;音频驱动面部动画的技术架构与实战指南 【免费下载链接】FACEGOOD-Audio2Face http://www.facegood.cc 项目地址: https://gitcode.com/gh_mirrors/fa/FACEGOOD-Audio2Face 在虚拟数字人快速发展的今天&#xff0c;如何让虚拟角色拥有自然…...

安卓应用按钮样式问题及解决方案

在开发安卓应用的过程中,我们常常会遇到一些看似简单但实际上隐藏着复杂问题的样式问题。今天我们来探讨一个在更换设备后按钮样式发生变化的问题。 问题描述 一位开发者在Android Studio中开发了一个食谱应用。当他从一台手机切换到另一台手机运行应用时,发现所有的按钮都…...

Sketch Measure: 设计标注自动化的创新实践

Sketch Measure: 设计标注自动化的创新实践 【免费下载链接】sketch-measure Make it a fun to create spec for developers and teammates 项目地址: https://gitcode.com/gh_mirrors/sk/sketch-measure 在数字化产品开发流程中&#xff0c;设计稿到代码实现的转化始终…...

如何使用usearch构建精准视频内容推荐系统:基于观看历史的向量匹配方案

如何使用usearch构建精准视频内容推荐系统&#xff1a;基于观看历史的向量匹配方案 【免费下载链接】usearch Fast Open-Source Search & Clustering engine for Vectors & Arbitrary Objects in C, C, Python, JavaScript, Rust, Java, Objective-C, Swift, C#, GoL…...

NSSCTF做题记录九 | [HUBUCTF 2022 新生赛]checkin

[HUBUCTF 2022 新生赛]checkin <?php show_source(__FILE__); //高亮显示当前代码 $username "this_is_secret"; //给$username赋值 $password "this_is_not_known_to_you"; //给$password赋值 include("flag.php");//here I chan…...

图解Linux内核DRM框架:从用户态ioctl到plane更新的完整数据流(以4.14版本为例)

图解Linux内核DRM框架&#xff1a;从用户态ioctl到plane更新的完整数据流&#xff08;以4.14版本为例&#xff09; 在图形显示技术领域&#xff0c;Linux内核的DRM&#xff08;Direct Rendering Manager&#xff09;框架扮演着核心角色。本文将聚焦于DRM_IOCTL_MODE_SETPLANE这…...

手机号查QQ号:解密腾讯通信协议的Python实战工具

手机号查QQ号&#xff1a;解密腾讯通信协议的Python实战工具 【免费下载链接】phone2qq 项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq 你是否曾经遇到过这样的情况&#xff1a;手头有一个手机号&#xff0c;想知道它是否关联了QQ账号&#xff1f;或者作为开发…...

Qwen-Image镜像实战:基于RTX4090D,轻松实现图片问答与内容分析

Qwen-Image镜像实战&#xff1a;基于RTX4090D&#xff0c;轻松实现图片问答与内容分析 1. 引言&#xff1a;Qwen-Image镜像的核心价值 在当今多模态AI技术快速发展的背景下&#xff0c;能够同时理解图像和文本的视觉语言模型正变得越来越重要。Qwen-Image作为通义千问系列中的…...

从HC-SR04老用户视角,实测2020新版:盲区更小、功耗更低,但这两点不注意容易翻车

HC-SR04新版深度评测&#xff1a;老用户必看的5个升级细节与3个隐藏陷阱 第一次拿到2020版HC-SR04时&#xff0c;我差点以为发错了货——外观几乎和老版本一模一样&#xff0c;连螺丝孔位都分毫不差。但当我用示波器捕捉到仅2.1mA的工作电流时&#xff0c;才确信这确实是用上了…...

Qwen3-14B企业知识图谱构建:从私有文档抽取实体关系实践

Qwen3-14B企业知识图谱构建&#xff1a;从私有文档抽取实体关系实践 1. 企业知识图谱构建概述 在当今企业数字化转型浪潮中&#xff0c;知识图谱作为结构化知识表示的重要方式&#xff0c;正成为企业知识管理的核心基础设施。传统知识图谱构建需要大量人工标注和规则设计&…...