JT808 车载终端通信协议解析与应用实践
前言在车联网与两客一危(旅游客运、班线客运、危险品运输)监管领域,JT/T 808 协议(全称《道路运输车辆卫星定位系统终端通讯协议及数据格式》)是绝对的行业基石。无论是公交车、出租车、网约车,还是重型货车,其车载定位终端(GPS/北斗定位仪)与省级/部级监管平台之间的所有数据交互,几乎都遵循这一标准。 作为物联网或车联网方向的开发者,深入理解 JT/T 808 协议的设计理念、数据结构及编解码细节,是开发高性能车辆监控系统的必备技能。本文将从协议基础、帧结构、核心业务交互以及实战开发编解码四个方面,带你彻底攻克 JT/T 808 协议。 一、协议背景与通信基础1. 协议定位JT/T 808 是交通运输部发布的推荐性行业标准。主要解决了不同厂商的车载终端如何接入统一的监控平台,并向平台上报位置、速度、报警状态等实时数据,同时接收平台的下发指令(如拍照、参数设置、单向监听等)。 2. 通信方式 网络层/传输层:协议支持 TCP 和 UDP 传输,在实际生产环境中,由于定位数据和报警数据的可靠性要求,绝大多数采用...
在具体业务项目中设计与落地 AI Agent 架构
前言:从“拧螺丝的工人”到“全能外包项目经理”大语言模型(LLM)的发展经历了一次明显的范式转变:从“单次问答(Prompt Engineering)”,到“工具调用(Tool Calling)”,再到如今万众瞩目的“自主智能体(Autonomous Agent)”。 为了彻底搞清楚这三者的本质差别,让我们把开发场景比喻成一个工地的施工作业: 单次问答阶段(听天由命的参谋):你问他:“墙上螺丝松了怎么办?”他会给你长篇大论列出 10 种拧螺丝的方法。但是他没有手,无法帮你拧,一切还是需要你亲自操刀。 工具调用阶段(按一下动一下的螺丝工):大模型被装上了一只机械臂(Tool Calling 接口)。你对他说:“用 3 号螺丝刀,把那颗松了的螺丝拧紧(Action)。”他会抓起螺丝刀拧一下,然后立刻停下来盯着你,等待你输入下一道口令。如果你不发令,他就永远静止。 自主智能体阶段(全能外包项目经理):你甚至不需要提“螺丝”这两个字。你只需要给他一个宏观的任务总目标:“去把 3 号房间的漏水和设备老化问题彻底修好(Goal)。”这个 Agent 不会马上盲目动手,而是会成为一个极其冷静...
基于 vLLM 与 llama.cpp 的高性能本地大模型推理部署
前言Ollama 适合个人使用,但当你要在生产环境提供 API 服务时——高并发、低延迟、高吞吐——就需要专业的推理框架了。 目前开源社区主流的两个选择是 vLLM(GPU 推理)和 llama.cpp(CPU/GPU 通用推理)。这篇文章讲清楚它们分别怎么用,以及怎么选。 一、vLLM:GPU 高性能推理vLLM 是目前 GPU 推理的事实标准,主打高吞吐、低延迟。核心优势是 PagedAttention 算法——把 KV Cache 像操作系统管理内存那样分页管理,大大减少了显存碎片。 安装1pip install vllm 启动 OpenAI 兼容 API123456# 一行命令启动服务vllm serve Qwen/Qwen2.5-7B-Instruct \ --host 0.0.0.0 \ --port 8000 \ --max-model-len 8192 \ --gpu-memory-utilization 0.90 关键参数: 参数 作用 建议 --max-model-len 最大上下文长度 根据需求设,越长越吃显存 --g...
利用 Skills 构建高效 AI 辅助开发工作流
前言:当顶级“外包专家”遇到你的“屎山代码”想象一下,你的团队刚刚通过高薪招募了一位极度聪明的资深软件工程师。他精通几乎所有的现代编程语言,能在几秒钟内理解复杂的算法,并且写代码的速度比常人快上百倍。 但是,他有一个致命的弱点:他对你们公司的业务细节、特殊的代码库规范、历史包袱以及部署流程一无所知。 如果你直接对他说:“去把我们的商品管理模块的 React 组件重构一下,然后顺便把数据库表更新了,搞完发布到测试环境。” 他可能会写出非常优秀的代码,但极大概率会发生以下灾难: 他用了团队早已废弃的第三方状态管理库; 他把全局组件的命名空间搞乱了,完全不符合团队的驼峰命名规范; 他在修改数据库表时,直接在主库上跑了 DDL 导致锁表,且完全没有准备回滚脚本; 部署测试环境时,由于不了解你们的 CI/CD 流程,漏掉了核心的环境变量校验。 这正是我们每天调教大模型(LLM)或使用 AI 编程助手(如 Cursor、Claude Code 等)时面临的尴尬现状。AI 的通用能力极强,但它缺乏**“局部约束与企业规范”**。 在传统的开发流程中,我们靠什么来约束新员工?答案是...
Model Context Protocol (MCP) 开放协议解析与落地实践
前言:AI 时代的“万能插座”与 USB 革命在探讨 MCP(Model Context Protocol,模型上下文协议) 之前,让我们先回到个人电脑诞生初期的 20 世纪 80 年代。 在那个年代,给电脑插上一个外设是所有用户的噩梦。如果你买了一台打印机、一个鼠标或是一个游戏手柄,你必须面对不同厂商各自设计的奇形怪状的物理接口,还要在操作系统中手动安装专属的驱动程序。如果接口不兼容,你甚至需要去买一块专用的扩展卡。 这种混乱的局面,直到 USB(Universal Serial Bus,通用串行总线) 协议诞生才被彻底终结。USB 定义了统一的物理接口标准和统一的数据传输协议,任何硬件厂商只要遵循 USB 标准,其设备就能插在任何支持 USB 的电脑上即插即用。 现在的 AI 应用领域正经历着一模一样的“前 USB 时代”。 大语言模型(LLM)能力强大,但它们默认是被困在沙盒里的“信息孤岛”。为了让 AI 能够连接你的代码库、读取数据库、调用 GitHub API 或是浏览网页,开发者们不得不面对极度割裂的局面: 针对 OpenAI,你需要按照其 tools 规范写一套 ...
使用 LLaMA-Factory 进行开源大模型 LoRA 微调
前言前面那篇微调入门讲了概念和决策框架。这篇是纯操作——用 LLaMA-Factory 这个工具,不用写多少代码,就能完成 LoRA 微调。 选 LLaMA-Factory 的原因是它把模型加载、数据预处理、训练配置、评估、导出这些步骤全封装好了,支持 Web UI 操作,对新手友好。 一、安装123git clone https://github.com/hiyouga/LLaMA-Factory.gitcd LLaMA-Factorypip install -e ".[torch,metrics]" 如果下载慢或者报依赖冲突,创建新的 conda 环境再装: 123conda create -n llama-factory python=3.11 -yconda activate llama-factorypip install -e ".[torch,metrics]" 验证: 1llamafactory-cli version 二、准备数据数据格式(Alpaca 格式)在 data/ 目录下创建 my_data.json:...
基于 Unsloth 降低大模型微调成本的实践
前言Unsloth 是目前最激进的微调加速方案——通过手动优化的 Triton kernel 和一系列工程技巧,把微调速度提升 2-5 倍,显存占用降低 50-80%。 最大的卖点是:在 Google Colab 的免费 T4 GPU(16GB 显存)上就能微调 7B 模型。 一、安装123pip install unsloth# 安装对应 PyTorch 版本的 unsloth# 它会自动下载适配的 transformers 等依赖 如果是 Colab 环境,使用官方一键安装: 12# Colab 安装!pip install unsloth 二、加载模型123456789from unsloth import FastLanguageModelimport torchmodel, tokenizer = FastLanguageModel.from_pretrained( model_name="unsloth/Qwen2.5-7B-Instruct-bnb-4bit", # Unsloth 预量化好的模型 max_seq_lengt...
微调入门:什么是 Fine-tuning,什么时候需要它
前言网上很多文章上来就教你跑微调代码,但很少讲清楚一个根本问题:你需不需要微调。 这篇文章先回答”什么时候需要微调”,再讲清楚微调的核心概念和方法,最后给出一个决策框架。 一、微调 vs RAG:什么时候选哪个 RAG(检索增强) 微调(Fine-tuning) 解决的问题 让模型知道它不知道的事实 让模型学会它不会的行为 典型场景 “公司年假怎么请?” “用公司客服特有的语气回复用户” 数据需求 文档(PDF、TXT、网页等) 几百到几万条”输入-输出”示例对 成本 低,不需要 GPU 训练 中到高,需要 GPU 维护 文档更新即生效 需要重新训练 延迟 多了检索步骤,略慢 没有检索步骤,快 举例 产品手册问答、制度查询 特定风格的文案生成、领域分类、结构化提取 简单判断标准: 12345678你的任务需要模型知道很多事实类信息? → 用 RAG你的任务需要模型以特定的格式/风格/逻辑去推理和生成? → 考虑微调两个都要? → RAG + 微调 结合使用 二、全量微调 vs LoRA vs QLoRA全量微调(Full Fin...
Claude Code 扩展机制:理解 MCP、Skills 与 Agent 协作
前言Claude Code 不是一个孤立的命令行工具——它通过 MCP、Skills 和 Agent 三层机制,可以接入外部数据源、复用工作流程、编排多智能体协作。 这篇文章从概念到配置,把这三种机制说清楚。 一、MCP(Model Context Protocol,模型上下文协议)MCP 是什么MCP 是 Anthropic 提出的一套开放协议,让 AI 模型能安全地访问外部工具和数据源。你可以把它理解为”AI 的 USB 接口”——只要实现了 MCP 协议,任何工具和数据源都能被 Claude 调用。 在没有 MCP 之前,让 AI 查数据库或调 API 需要自己写代码封装 Function Calling。有了 MCP,第三方直接提供现成的 MCP Server,配置一下就能用。 MCP 的架构123456Claude Code(客户端) │ ├── MCP Server A ── 连接数据库,执行 SQL 查询 ├── MCP Server B ── 连接 GitHub API,管理 Issue 和 PR ├── MCP Server C ── ...
Claude Code + CCSwitch 使用教程:从安装到实践
前言Claude Code 是 Anthropic 推出的命令行 AI 编程助手,直接在终端里运行。和 Copilot 的补全模式不同,Claude Code 是对话式的——你告诉它要做什么,它读你的代码、写修改、跑命令,像一个在终端里随时待命的结对程序员。 CCSwitch 是社区开发的一个配置管理工具,用来解决 Claude Code 的多账号切换、Token 管理、模型选择等问题。 一、Claude Code 安装前提条件 Node.js >= 18 一个 Anthropic API Key(console.anthropic.com 申请)或者 Claude 订阅账号的 Token 安装1npm install -g @anthropic-ai/claude-code 验证: 1claude --version 初始化配置123456# 方式一:用 API Key(按量计费)export ANTHROPIC_API_KEY=sk-ant-xxxxxxxx# 方式二:用 Claude 订阅账号的 OAuth Tokenclaude login# 这会...