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

我“调教”了一个AI Agent,让它全天自动写测试用例:3分钟24条,准确率70%+

面试求职「面试试题小程序」内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试命中率杠杠的。大家刷起来…职场经验干货软件测试工程师简历上如何编写个人信息一周8个面试软件测试工程师简历上如何编写专业技能一周8个面试软件测试工程师简历上如何编写项目经验一周8个面试软件测试工程师简历上如何编写个人荣誉一周8个面试软件测试行情分享这些都不了解就别贸然冲了.软件测试面试重点搞清楚这些轻松拿到年薪30W软件测试面试刷题小程序免费使用永久使用这个专题非常受欢迎目前已经更新到第三篇啦~五、RAG知识库技术介绍5.1 什么是 RAGRAGRetrieval-Augmented Generation检索增强生成是一种结合了信息检索和文本生成的技术框架旨在通过引入外部知识库来提升生成模型如GPT等的准确性和可靠性。RAG 解决的问题传统的生成模型依赖预训练时学到的参数化知识存在以下问题● 知识过时训练数据可能已经过时● 领域局限缺乏特定领域的专业知识● 幻觉问题生成不准确或虚构的内容● 无法更新无法动态更新知识RAG 的优势● 动态知识可以随时更新知识库● 领域专业可以添加特定领域的知识● 减少幻觉基于真实文档生成答案● 可追溯性可以追溯答案来源5.2 RAG 架构及执行流程​RAG 执行流程1. 文档处理├── 提取语料库内├── 文档分块Chunking└── 转化为向量Embedding2. 向量存储​​​​​​​├── 文本向量写入向量数据库└── 建立索引3. 检索阶段​​​​​​​├── 用户查询转向量├── 向量相似度搜索└── 召回相关文档4. 生成阶段​​​​​​​├── 构建提示词Prompt├── 调用大模型生成结果└── 返回答案RAG 系统架构图​​​​​​​┌─────────────┐│ 用户查询 │└──────┬──────┘│▼┌─────────────────┐│ 查询向量化 │ ← Embedding Model└──────┬──────────┘│▼┌─────────────────┐│ 向量相似度搜索 │ ← Vector Database(ChromaDB)└──────┬──────────┘│▼┌─────────────────┐│ 召回相关文档 │└──────┬──────────┘│▼┌─────────────────┐│ 构建提示词 │└──────┬──────────┘│▼┌─────────────────┐│ LLM 生成答案 │ ← MoonShot/GPT└──────┬──────────┘│▼┌─────────────────┐│ 返回结果 │└─────────────────┘5.3 RAG 的关键技术1. 文档分块Chunking将长文档切分为小块便于检索和处理。分块策略● 固定长度分块按字符数或 Token 数切分● 语义分块按段落、句子切分● 滑动窗口重叠切分保留上下文​​​​​​​def chunk_text(text: str, chunk_size: int 500, overlap: int 50) - List[str]: 文本分块 chunks [] start 0 while start len(text): end start chunk_size chunk text[start:end] chunks.append(chunk) start end - overlap # 重叠部分 return chunks2. 向量嵌入Embedding将文本转换为高维向量便于计算相似度。常用嵌入模型●OpenAI Embeddingstext-embedding-ada-002●Sentence Transformersall-MiniLM-L6-v2●Qwen EmbeddingsQwen3-Embedding-4B本项目使用3. 向量相似度计算常用相似度算法●余弦相似度最常用范围 [-1, 1]●欧氏距离计算向量间的直线距离●点积向量内积​​​​​​​import numpy as np def cosine_similarity(vec1, vec2): 余弦相似度 return np.dot(vec1, vec2) / (np.linalg.norm(vec1) * np.linalg.norm(vec2))六、文本嵌入和向量化6.1 文本嵌入的方法介绍文本嵌入Text Embedding是将文本转换为数值向量的过程是 RAG 系统的核心技术。文本嵌入的发展历程​现代嵌入模型对比​6.2 Qwen3-embedding嵌入模型部署介绍Qwen3-Embedding是阿里云开源的中文优化嵌入模型具有以下特点●中文优化针对中文语义理解优化●高性能在中文检索任务上表现优异●本地部署支持本地部署无需调用 API●开源免费完全开源无使用限制模型规格​6.3 Ollama部署Qwen3-embedding模型Ollama 是一个轻量级的本地大模型运行工具支持多种开源模型。安装 OllamamacOS / Linux:printcurl -fsSL https://ollama.com/install.sh | shf(hello world!);Windows:访问 https://ollama.com/download 下载安装包。拉取 Qwen3-Embedding 模型​​​​​​​# 拉取模型量化版本体积更小 ollama pull dengcao/Qwen3-Embedding-4B:Q5_K_M # 或拉取完整版本 ollama pull dengcao/Qwen3-Embedding-4B测试模型​​​​​​​# 启动 Ollama 服务(默认端口 11434) ollama serve # 测试嵌入 curl http://localhost:11434/api/embeddings -d { model: dengcao/Qwen3-Embedding-4B:Q5_K_M, prompt: FastAPI 是一个高性能的 Web 框架 }Python调用示例​​​​​​​import requests def get_embedding(text: str) - list: 获取文本嵌入向量 url http://localhost:11434/api/embeddings response requests.post( url, json{ model: dengcao/Qwen3-Embedding-4B:Q5_K_M, prompt: text } ) return response.json()[embedding] embedding get_embedding(FastAPI 是一个高性能的 Web 框架) print(f向量维度: {len(embedding)}) # 输出: 10246.4 什么是向量化向量化Vectorization 是将非结构化数据如文本、图像转换为数值向量的过程。向量化的意义1.数学计算向量可以进行数学运算加减乘除、距离计算2.相似度度量通过向量距离衡量文本相似度3.高效检索向量数据库支持高效的相似度搜索4.机器学习向量是机器学习模型的输入格式6.5 向量数据库 ChromaDB 详解ChromaDB 是一个开源的向量数据库专为 AI 应用设计。ChromaDB 的特点●轻量级易于安装和部署●高性能支持百万级向量检索●易用性API 简单直观●持久化支持数据持久化存储●过滤查询支持元数据过滤安装 ChromaDBpip install chromadbChromaDB 基本操作1. 创建客户端​​​​​​​import chromadb # 内存模式(临时) client chromadb.Client() # 持久化模式(推荐) client chromadb.PersistentClient(path./data/vector_db)2. 创建集合(Collection)​​​​​​​# 创建集合 collection client.create_collection( nameknowledge_base, metadata{description: 知识库向量集合} ) # 获取已存在的集合 collection client.get_collection(nameknowledge_base) # 获取或创建集合 collection client.get_or_create_collection(nameknowledge_base)3. 添加文档​​​​​​​# 添加文档(自动生成嵌入) collection.add( documents[FastAPI 是一个高性能的 Web 框架, Django 是一个全栈框架], metadatas[{source: doc1}, {source: doc2}], ids[id1, id2] ) # 添加文档(手动提供嵌入) collection.add( embeddings[[0.1, 0.2, 0.3], [0.4, 0.5, 0.6]], documents[文档 1, 文档 2], metadatas[{type: text}, {type: text}], ids[id1, id2] )4. 查询文档​​​​​​​# 查询相似文档 results collection.query( query_texts[Python Web 框架], n_results5 # 返回前5个最相似的文档 ) # 查询结果 print(results[documents]) # 文档内容 print(results[distances]) # 相似度距离 print(results[metadatas]) # 元数据5. 更新和删除​​​​​​​# 更新文档 collection.update( ids[id1], documents[更新后的文档内容] ) # 删除文档 collection.delete(ids[id1]) # 删除集合 client.delete_collection(nameknowledge_base)七、使用FastAPICrewAI开发实战接下来笔者将详细介绍如何使用 FastAPI 和 CrewAI 开发一个完整的测试用例生成 Agent 应用。7.1 系统架构设计​​​​​​​┌─────────────────────────────────────────────────────────────┐│ 前端 (Vue3 ElementPlus) ││ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ││ │知识库管理│ │用例生成 │ │代码分析 │ │向量搜索 │ ││ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │└─────────────────────────────────────────────────────────────┘↓ HTTP/WebSocket┌─────────────────────────────────────────────────────────────┐│ FastAPI 后端服务 ││ ┌──────────────────────────────────────────────────────┐ ││ │ API 路由层 │ ││ │ /api/v1/knowledges /api/v1/case-generation │ ││ └──────────────────────────────────────────────────────┘ ││ ┌──────────────────────────────────────────────────────┐ ││ │ 业务逻辑层 (Services) │ ││ │ KnowledgeService | VectorService │ ││ └──────────────────────────────────────────────────────┘ ││ ┌──────────────────────────────────────────────────────┐ ││ │ Agent 智能体层 │ ││ │ RAGRetrievalAgent | CaseGeneratorAgent │ ││ └──────────────────────────────────────────────────────┘ ││ ┌──────────────────────────────────────────────────────┐ ││ │ 数据访问层 (Models ORM) │ ││ │ Tortoise-ORM | SQLite │ ││ └──────────────────────────────────────────────────────┘ │└─────────────────────────────────────────────────────────────┘↓┌─────────────────────────────────────────────────────────────┐│ 外部服务 ││ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ││ │ChromaDB │ │Ollama │ │MoonShot │ │SQLite │ ││ │向量数据库│ │嵌入模型 │ │大语言模型│ │关系数据库│ ││ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │└─────────────────────────────────────────────────────────────┘7.2 知识库管理实现7.2.1 数据模型定义​​​​​​​# models/knowledge.py from tortoise.models import Model from tortoise import fields class Knowledge(Model): 知识库模型 id fields.IntField(pkTrue, description知识库唯一标识) name fields.CharField(max_length255, uniqueTrue, description知识库名称) description fields.TextField(nullTrue, description知识库描述) created_at fields.DatetimeField(auto_now_addTrue, description创建时间) updated_at fields.DatetimeField(auto_nowTrue, description更新时间) class Meta: table knowledges class KnowledgeFile(Model): 知识库文件模型 id fields.IntField(pkTrue) knowledge fields.ForeignKeyField( models.Knowledge, related_namefiles, on_deletefields.CASCADE ) filename fields.CharField(max_length255) file_path fields.CharField(max_length500) file_size fields.IntField() status fields.CharField(max_length20, defaultuploaded) upload_time fields.DatetimeField(auto_now_addTrue) processed_time fields.DatetimeField(nullTrue) class Meta: table knowledge_files7.2.2 知识库服务实现​​​​​​​# services/knowledge_service.py from typing import List, Dict, Any from models.knowledge import Knowledge, KnowledgeFile from base.embedding_vector import embedding_service classKnowledgeService: 知识库服务 async def create_knowledge(self, name: str, description: str None) - Knowledge: 创建知识库 knowledge await Knowledge.create( namename, descriptiondescription ) return knowledge async def upload_file( self, knowledge_id: int, filename: str, file_path: str, file_size: int ) - KnowledgeFile: 上传文件到知识库 # 创建文件记录 file_record await KnowledgeFile.create( knowledge_idknowledge_id, filenamefilename, file_pathfile_path, file_sizefile_size, statusuploaded ) # 异步处理文件(分块、向量化、存储) await self._process_file(file_record) return file_record async def _process_file(self, file_record: KnowledgeFile): 处理文件: 分块、向量化、存储 # 1. 读取文件内容 with open(file_record.file_path, r, encodingutf-8) as f: content f.read() # 2. 文档分块 chunks self._chunk_text(content, chunk_size500, overlap50) # 3. 准备文档块数据 chunk_data [ { chunk_id: i, content: chunk, start_pos: i * 450, end_pos: i * 450 len(chunk) } for i, chunk in enumerate(chunks) ] # 4. 向量化并存储到 ChromaDB await embedding_service.add_documents_to_collection( knowledge_idfile_record.knowledge_id, file_idfile_record.id, chunkschunk_data ) # 5. 更新文件状态 file_record.status processed file_record.processed_time datetime.now() await file_record.save() def _chunk_text(self, text: str, chunk_size: int 500, overlap: int 50) - List[str]: 文本分块 chunks [] start 0 while start len(text): end start chunk_size chunk text[start:end] chunks.append(chunk) start end - overlap return chunks async def search_similar( self, query_text: str, collection_id: int, top_k: int 10 ) - List[Dict[str, Any]]: 搜索相似文档 results await embedding_service.search_similar_documents( knowledge_idcollection_id, queryquery_text, top_ktop_k ) return results7.2.3 知识库 API 路由​​​​​​​# api/knowledges.py from fastapi import APIRouter, UploadFile, File, Form from typing import List from services.knowledge_service import KnowledgeService from schemas.knowledge import KnowledgeCreate, KnowledgeResponse router APIRouter(prefix/api/v1/knowledges, tags[知识库管理]) knowledge_service KnowledgeService() router.post(/, response_modelKnowledgeResponse) async def create_knowledge(data: KnowledgeCreate): 创建知识库 knowledge await knowledge_service.create_knowledge( namedata.name, descriptiondata.description ) return knowledge router.post(/{knowledge_id}/files) async def upload_file( knowledge_id: int, file: UploadFile File(...) ): 上传文件到知识库 # 保存文件 file_path f./data/upload/{file.filename} with open(file_path, wb) as buffer: content await file.read() buffer.write(content) # 创建文件记录并处理 file_record await knowledge_service.upload_file( knowledge_idknowledge_id, filenamefile.filename, file_pathfile_path, file_sizelen(content) ) return { success: True, file_id: file_record.id, message: 文件上传成功正在处理... } router.get(/{knowledge_id}/search) async def search_knowledge( knowledge_id: int, query: str, top_k: int 10 ): 搜索知识库 results await knowledge_service.search_similar( query_textquery, collection_idknowledge_id, top_ktop_k ) return { success: True, query: query, results: results }后续将继续为大家介绍RAG检索 Agent 实现、测试用例生成 Agent 实现、WebSocket 实时通信和前端功能的实现等。最后下方这份完整的软件测试视频教程已经整理上传完成需要的朋友们可以自行领取【保证100%免费】​​​​​

相关文章:

我“调教”了一个AI Agent,让它全天自动写测试用例:3分钟24条,准确率70%+

📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中…...

JMeter线程数、用户数与TPS关系的深度解析与优化策略

1. JMeter线程数与用户数的本质区别 很多刚接触性能测试的同学容易把JMeter线程数直接等同于系统支持的用户数,这是一个典型的认知误区。我刚开始做压测时也犯过同样的错误,直到某次项目中发现500线程压测结果和实际用户访问量对不上,才意识…...

造相-Z-Image-Turbo前端集成指南:使用Vue.js构建实时图像生成预览界面

造相-Z-Image-Turbo前端集成指南:使用Vue.js构建实时图像生成预览界面 最近在做一个创意项目,需要快速生成各种风格的图片。后端同事推荐了造相-Z-Image-Turbo这个图像生成模型,效果确实不错。但每次测试都要用命令行或者Postman&#xff0c…...

5分钟搞定Augment实战:从VSCode到Cursor的无缝衔接与风控破解

1. Augment插件迁移实战指南 作为一名长期在AI领域摸爬滚打的老兵,我最近发现越来越多的开发者开始从VSCode转向Cursor这款新兴编辑器。但在这个过程中,Augment插件的迁移问题让不少朋友头疼。今天我就用最直白的语言,手把手带你完成从VSCode…...

论文图表不用手画!Paperxie AI 科研绘图:让学术可视化效率拉满

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/科研绘图https://www.paperxie.cn/drawinghttps://www.paperxie.cn/drawing 一、 科研人的 “画图焦虑”,终于有解了 做科研、写论文,最磨人的从来不是实验本身,而是画图…...

AUTOSAR人才稀缺,为何能撬动百万年薪?

1. AUTOSAR工程师为何成为"抢手货"? 最近两年,智能汽车行业就像一列高速行驶的列车,而AUTOSAR工程师就是这列车上最抢手的"车票"。我身边有个真实案例:一位有7年AUTOSAR开发经验的朋友,去年跳槽时…...

前端开发者必看:如何在Leaflet/Vue中接入天地图XYZ服务(2023最新版)

前端开发者必看:如何在Leaflet/Vue中接入天地图XYZ服务(2023最新版) 天地图作为国内领先的地理信息服务提供商,其XYZ瓦片服务为开发者提供了稳定可靠的地图数据支持。不同于传统WMS或WMTS服务,XYZ模式通过简单的URL结构…...

从电影《黑客帝国》到社交网络:用Neo4j Browser亲手构建你的第一个‘人物关系图谱’

从《黑客帝国》到社交网络:用Neo4j构建你的第一个关系图谱 想象一下,如果《黑客帝国》中的尼奥能够用一张图看清所有角色之间的复杂关系,或者你的微信好友网络能以可视化的方式展现谁是你朋友圈的核心节点——这就是图数据库的魅力所在。Neo4…...

Ubuntu网络流量监控:nethogs与vnstat实战指南

1. 为什么需要监控Ubuntu网络流量? 作为一个长期使用Ubuntu的开发者,我经常遇到这样的困惑:明明没有下载大文件,为什么网速突然变慢了?服务器流量莫名其妙就超标了?这时候就需要专业的网络监控工具来帮忙了…...

LeetCode刷题实战:从Hot100到代码随想录的进阶之路

LeetCode刷题实战:从Hot100到代码随想录的进阶之路 在技术面试的战场上,算法题就像是一道道必须攻克的堡垒。无论是硅谷的科技巨头还是国内的互联网大厂,算法能力始终是衡量工程师基本功的重要标尺。对于准备秋招或技术面试的开发者来说&…...

零基础小白也能搞定!PyTorch 2.9-CUDA镜像保姆级入门教程

零基础小白也能搞定!PyTorch 2.9-CUDA镜像保姆级入门教程 你是不是也遇到过这样的情况:看到别人用PyTorch做AI项目很酷,自己也想试试,结果第一步就被“环境配置”给劝退了?CUDA版本、PyTorch版本、各种依赖包……光是…...

像素史诗·智识终端Web应用开发全栈指南:从后端API到前端交互

像素史诗智识终端Web应用开发全栈指南:从后端API到前端交互 1. 项目概述与核心价值 在当今AI技术快速落地的背景下,如何将强大的AI能力整合到Web应用中成为开发者关注的重点。本文将完整演示如何以像素史诗智识终端为AI引擎,开发一个具备聊…...

告别Camera2 API的折腾:用UVCAndroid库5分钟搞定安卓外接USB摄像头开发

安卓USB摄像头开发革命:UVCAndroid库极简集成指南 在安卓生态中,外接摄像头的开发一直是个令人头疼的问题。传统Camera2 API的复杂性让不少开发者望而却步——从设备枚举到权限处理,从格式转换到预览控制,每个环节都可能成为项目延…...

LumiPixel Canvas Quest入门:零代码玩转AI人像创作的保姆级教程

LumiPixel Canvas Quest入门:零代码玩转AI人像创作的保姆级教程 1. 开篇:艺术创作的新方式 最近遇到不少设计师朋友抱怨,想尝试AI人像创作却被复杂的代码和参数吓退。其实现在有了更简单的方式——LumiPixel Canvas Quest,一个完…...

TI mmWave Demo Visualizer 3.5配置指南:从安装到点云可视化(附常见问题解决)

TI mmWave Demo Visualizer 3.5全流程实战:环境搭建与点云可视化深度解析 第一次接触毫米波雷达开发时,最让人头疼的往往不是算法本身,而是如何让开发板与可视化工具正常对话。TI的mmWave Demo Visualizer作为连接硬件与开发者的桥梁&#xf…...

数据同化终极指南:零基础快速掌握EnKF算法的完整实战教程

数据同化终极指南:零基础快速掌握EnKF算法的完整实战教程 【免费下载链接】DA-tutorials Tutorials on data assimilation (DA) and the EnKF 项目地址: https://gitcode.com/gh_mirrors/da/DA-tutorials 数据同化(Data Assimilation, DA&#xf…...

Honey Select 2游戏体验终极优化指南:HS2-HF_Patch完整解决方案

Honey Select 2游戏体验终极优化指南:HS2-HF_Patch完整解决方案 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 当你打开Honey Select 2时&#xff…...

5分钟搭建微信智能助手:Python自动化消息处理终极方案

5分钟搭建微信智能助手:Python自动化消息处理终极方案 【免费下载链接】WechatBot 项目地址: https://gitcode.com/gh_mirrors/wechatb/WechatBot 还在为重复的微信消息回复而烦恼吗?每天处理大量群消息、客户咨询和通知发送,占用了你…...

用JVS小龙虾审计18个skills,百项检查,10分钟跑完

3 月初,安全圈被一条消息炸了锅:OpenClaw 的插件中心 ClawHub 上被曝出 340 多个恶意 Skill 插件,代号“ClawHavoc”。这些插件伪装成“天气查询”“一键排版”之类的实用工具,实际上内部混淆了键盘记录器、凭据窃取器等恶意代码。…...

和AI一起搞事情#:边剥龙虾边做个中医技能来起号那

1. 核心概念 在 Antigravity 中,技能系统分为两层: Skills (全局库):实际的代码、脚本和指南,存储在系统级目录(如 ~/.gemini/antigravity/skills)。它们是“能力”的本体。 Workflows (项目级)&#xff1a…...

畜牧检测站综合监测系统设计与实现(有完整资料)

资料查找方式:特纳斯电子(电子校园网):搜索下面编号即可编号:T0542309M设计简介:本设计是基于单片机的畜牧检测站综合监测系统设计,主要实现以下功能:通过温湿度传感器检测温湿度 通…...

突袭!DeepSeek上线专家模式

就在今天,DeepSeek悄咪咪搞了个大动作——没有预热、没有官宣,直接全量上线了“专家模式”,还把原来的核心交互模式升级成了“快速模式”,堪称平地一声雷。上线后我第一时间就去实测了一把。说实话,这种不声不响的更新…...

浅析如何创建和使用Shell脚本实现PHP部署自动化

如果你的 PHP 部署流程是这样的:SSH 登录服务器git pullcomposer install可能跑一下 php artisan migrate清一些缓存重载 PHP-FPM 或 nginx双手合十祈祷这个流程能跑,直到:你要管理多台服务器你需要快速回滚你忘了某个小步骤,然后…...

waifu2x-caffe终极指南:5分钟掌握AI图像放大降噪神器

waifu2x-caffe终极指南:5分钟掌握AI图像放大降噪神器 【免费下载链接】waifu2x-caffe waifu2xのCaffe版 项目地址: https://gitcode.com/gh_mirrors/wa/waifu2x-caffe 你是否曾经为模糊的动漫截图、低分辨率的老照片而苦恼?waifu2x-caffe正是为解…...

重新定义窗口管理:Traymond如何让混乱桌面变整洁

重新定义窗口管理:Traymond如何让混乱桌面变整洁 【免费下载链接】traymond A simple Windows app for minimizing windows to tray icons 项目地址: https://gitcode.com/gh_mirrors/tr/traymond 在现代数字工作环境中,我们常常被无数个打开的窗…...

避坑指南:达梦数据库Docker部署中的5个常见错误及解决方法

避坑指南:达梦数据库Docker部署中的5个常见错误及解决方法 在国产数据库技术快速发展的今天,达梦数据库凭借其优异的性能和兼容性,正成为越来越多企业的选择。而Docker技术的普及,则为达梦数据库的部署提供了更灵活、高效的解决方…...

AI模型嵌入式测试怎么做?:从Prompt注入到LLM幻觉捕获的5类新型缺陷拦截实战

第一章:AI原生软件研发质量保障体系构建 2026奇点智能技术大会(https://ml-summit.org) AI原生软件不同于传统软件,其核心逻辑高度依赖数据分布、模型行为与推理路径的动态性,导致传统基于确定性断言的质量保障手段失效。构建适配AI原生特性…...

LAN8720A硬件设计避坑指南:从原理图到吞吐量优化的7个关键点

LAN8720A硬件设计避坑指南:从原理图到吞吐量优化的7个关键点 在嵌入式以太网开发中,PHY芯片的设计往往成为项目成败的分水岭。作为Microchip旗下高性价比的10/100Mbps物理层收发器,LAN8720A凭借其低功耗和小封装特性,成为STM32等M…...

500kbps CAN总线调试实战:手把手教你用示波器测上升/下降沿时间(附某主机厂标准)

500kbps CAN总线信号完整性实战:从示波器设置到参数解读 在车载电子系统的开发与测试中,CAN总线的信号完整性直接关系到整个网络的通信可靠性。作为硬件调试工程师,掌握CAN差分信号的上升/下降沿时间测量技术,是排查通信故障、验证…...

Mermaid:基于文本驱动的图表生成架构,重塑技术文档的可视化协作范式

Mermaid:基于文本驱动的图表生成架构,重塑技术文档的可视化协作范式 【免费下载链接】mermaid Generation of diagrams like flowcharts or sequence diagrams from text in a similar manner as markdown 项目地址: https://gitcode.com/GitHub_Trend…...