news 2026/11/2 11:41:14

2026山东大学项目实训4月7日

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2026山东大学项目实训4月7日

一、问题背景

在 CodeGuard AI 项目早期,系统已经可以把 PR 变更交给 AI 分析,但很快遇到一个工程问题:如果模型只返回一段自然语言文本,系统后续很难继续处理。

自然语言回答可以阅读,但不能稳定落库,也不方便前端按文件、严重程度和状态展示,更无法支撑质量门禁、评论草稿和审计追踪。一个真正的审查平台不能只把 AI 回答贴出来,而要让 AI 输出成为后端可以治理的数据。

二、我的思路

我把 AI 审查结果抽象成结构化 Finding。每个问题都必须包含文件路径、行号、标题、严重程度、问题分类、描述、修复建议、证据、证据来源和置信度。

这样 AI 输出就从“能看的一段话”变成了“能被系统继续处理的数据对象”。

三、关键代码与实现讲解

最核心的是先定义 AI 输出的结构。

class GeneratedFinding(BaseModel): path: str title: str severity: str category: str description: str suggestion: str | None = None line: int | None = None end_line: int | None = None source: str = "llm" rule_id: str | None = None skill_id: str | None = None evidence: str | None = None evidence_source: str | None = None evidence_line: int | None = None confidence: float | None = None

这段结构的重点不是字段多,而是每个字段都对应后续链路中的一个动作。

path和line用来决定评论能否定位到具体文件和行;severity和category用来支撑前端分组和质量门禁风险计算;rule_id和skill_id用来追溯问题来源;evidence、evidence_source、evidence_line和confidence则为后续 verifier 做二次校验提供依据。

一次审查还需要整体总结,所以我又把 summary 和 findings 组合成统一输出。

class GeneratedSummary(BaseModel): overview: str strengths: list[str] = Field(default_factory=list) concerns: list[str] = Field(default_factory=list) next_steps: list[str] = Field(default_factory=list) class LLMReviewOutput(BaseModel): findings: list[GeneratedFinding] summary: GeneratedSummary

这样前端进入审查任务详情页时,不需要直接面对一堆零散评论,而是可以先看到整体结论,再展开具体问题。

四、为什么这样做

结构化 Finding 是后续所有能力的基础。如果没有统一结构,系统只能展示 AI 文本,不能做治理。

有了结构化 Finding 以后,后端可以落库,前端可以筛选和分组,质量门禁可以计算风险,评论中心可以生成草稿,规则引擎可以继续调整严重程度和建议内容,审计日志也能追踪问题来源。

五、实际效果

这一阶段完成后,CodeGuard AI 不再是简单的 AI 问答页面,而是开始具备审查平台的数据基础。

AI 生成的问题可以被保存、过滤、去重、排序、确认和发布。后续的技能执行、上下文分析、候选校验、规则治理和评论草稿,都是基于这套结构继续往下做的。

六、小结

这一阶段让我意识到,AI 审查系统的关键不是让模型说得更多,而是让模型说出的内容能被系统稳定处理。

结构化 Finding 把 AI 输出从“能看”变成了“能管”,这是整个审查链路能够继续扩展的前提。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/1 7:32:27

为什么你的3DS游戏总是卡顿?Citra模拟器画质优化的逆向思维

为什么你的3DS游戏总是卡顿?Citra模拟器画质优化的逆向思维 【免费下载链接】citra A Nintendo 3DS Emulator 项目地址: https://gitcode.com/GitHub_Trending/ci/citra 还在为《精灵宝可梦》的模糊画面而苦恼?或是《火焰纹章》的战斗动画卡成PPT…

作者头像 李华
网站建设 2026/10/19 17:56:44

嵌入式开发必读:如何从EEPROM数据手册中挖掘关键非技术信息

1. 项目概述:从一份数据手册说起最近在整理一个老项目的硬件设计资料,翻箱倒柜找出了Microchip 25LC1024这颗SPI EEPROM的数据手册。说实话,对于嵌入式开发者而言,数据手册(Datasheet)就是我们的“圣经”&a…

作者头像 李华
网站建设 2026/11/1 16:06:58

QDKT全面拆解Harness工程

一、Harness 的核心概念与定义1.1 基本定义Harness(驾驭/约束工程)是围绕大模型(LLM)构建的一套工程策略与思维方式,其核心目标是让 Agent 在长时间、高复杂度的任务执行中保持稳定、清醒与可控。Deepseek 的定义&…

作者头像 李华
网站建设 2026/10/19 18:17:36

2026人像抠图换背景工具保姆级教程,多款工具手把手操作指南

你是不是经常遇到这些困扰:自拍想更换氛围感背景,抠完边缘自带白边黑边;简历证件照底色不符,手动涂抹抠图耗时长;做自媒体头像、写真配图,发丝细节怎么都处理不自然;想找人像抠图换背景工具对比…

作者头像 李华
网站建设 2026/10/23 9:33:06

基于Springboot2+vue2的高校办公室行政事务管理系统

1. Base64 编码 解锁技能,猴子打野出装需 5 大米 ,才能真正驾驭“猴三棒”的暴力美学 鞋子/小野刀/贪婪之噬/暗影战斧/泣血之刃/名刀司命 铭文组合为8夺萃、1狩猎、1兽痕、5祸源、5无双、10鹰眼 必备技能:Base64 编码解码 2. 项目简介 高校…

作者头像 李华
网站建设 2026/10/23 8:25:00

深度解析:Android超大图片加载的性能优化与内存管理实战指南

深度解析:Android超大图片加载的性能优化与内存管理实战指南 【免费下载链接】LargeImage Android 加载大图 可以高清显示10000*10000像素的图片,轻松实现微博长图功能 项目地址: https://gitcode.com/gh_mirrors/la/LargeImage 在移动应用开发中…

作者头像 李华