双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

拾光友人帐——LLM结合探索CodeArts团队实战总结

102400424刘伟鑫 102400424刘伟鑫 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

拾光友人帐——LLM结合探索CodeArts团队实战总结

这个作业属于哪个课程2601_FZU_SE 软件工程实践
这个作业要求在哪里LLM结合探索CodeArts团队实战总结
这个作业的目标开发融合 LLM 与协同过滤的论坛推荐模块,记录 AI 辅助开发、代码调试与测试过程,完成项目阶段性开发任务
其他参考文献《构建之法》

目录

  • 拾光友人帐——LLM结合探索CodeArts团队实战总结
  • 一、项目基础信息
  • 1. CodeArts仓库信息
  • 2. 团队分工
  • 3. Commit统计说明
  • 4. 系统运行截图
  • 5. 开发困难与解决方案
  • 二、思考与行动
  • 1. 重新回答选题问题
  • 2. 新思考与行动
  • 新思考
  • 后续行动
  • 三、PSP表格
  • 刘传浩 PSP表
  • 李明学 PSP表
  • 王永臻 PSP表
  • 许毅君 PSP表
  • 许煜煌 PSP表
  • 四、团队贡献比例评估
  • 五、AI辅助开发任务记录
  • 任务1:编写LLM智能推荐模块,要求支持mock降级(代表性开发任务)
  • 任务2:实现基于用户历史报名记录的协同过滤推荐补充逻辑(方案验证、错误排查,课程目标4)
  • 任务3:Docker一键部署脚本编写与优化
  • 小结


一、项目基础信息

1. CodeArts仓库信息

仓库在线地址:https://devcloud.cn-north-4.huaweicloud.com/codehub/project/1cc4d1420a3d44a88e53cc3c2084e46f/codehub/3112035/home?ref=master
项目源码分支:dev

使用 PM2 进程管理工具托管前后端服务,实现后台常驻运行,断开 SSH 连接后服务不会停止。本次部署全程没有修改项目源码,通过淘宝 npmmirror 镜像下载 Node24 二进制包解决 node:sqlite 版本依赖问题,顺利在阿里云 ECS 上完成 CNCC2026 会议网站的线上演示部署。服务为 Vite 开发模式,LLM 模块使用模拟数据,满足课程验收演示需求。

img

img

部署后云访问链接:http://47.114.54.180:5173/

2. 团队分工

本团队共6人(含队长),分工如下:

  1. 刘伟鑫:项目整体统筹、需求评审、CodeArts仓库上传与冲突处理、Docker部署、博客文档整合、答辩准备;负责后端LLM智能推荐模块mock逻辑开发。
  2. 刘传浩:前端首页、论坛列表、论坛详情页面开发,页面样式调试。
  3. 李明学:前端日程页面、个人中心、通知公告页面开发,多语言国际化适配。
  4. 王永臻:后端用户模块开发,登录、注册、身份鉴权、权限控制(普通参会者/论坛主席)。
  5. 许毅君:后端业务接口开发,论坛报名、日程统计、数据查询脚本编写。
  6. 许煜煌:墨刀原型设计、数据库设计文档、API文档编写、功能测试、bug收集与验证,协助整理PSP与贡献评估表。

3. Commit统计说明

本次代码统一提交至dev分支,一共95个文件变更

img

img

img

说明:代码全部可在dev分支查看。

4. 系统运行截图

首页截图(中文首页)

img

论坛推荐页面(演示模式)

img

主席管理面板

img

个人日程页面

img

会议总日程页

img

论坛列表页

img

论坛详情页

img

我的报名页面

img

通知公告页面

img

参会人员页面

img

论坛主席专属仪表盘

img

5. 开发困难与解决方案

  1. 困难:LLM模块需要API Key才能调用,申请密钥、充值、接口不稳定会影响演示。
    解决:修改后端llm.js,增加判断逻辑,key为空时自动切换mock演示模式,返回预设推荐结果,保证演示不受第三方接口影响。
  2. 困难:前后端联调跨域问题。
    解决:后端配置跨域中间件,开发环境放开跨域限制,保证前端正常请求后端接口。

二、思考与行动

1. 重新回答选题问题

选题:CNCC2026会议服务系统(带LLM智能论坛推荐)
我们最初选题目标:面向参会人员提供会议论坛浏览、报名、日程管理、主席管理能力,借助大模型根据用户兴趣自动推荐匹配论坛。
重新审视选题:我们认为这个选题具备实际价值,学术会议参会者信息繁杂,手动筛选论坛成本高;但真实大模型API存在成本、稳定性、密钥泄露风险,因此我们调整方案,保留完整推荐交互页面,底层采用mock方案保证演示可用,不降低系统展示效果,同时规避外部依赖风险。
项目核心目标不变:完成一套可部署、可演示的会议服务管理系统,满足参会者、论坛主席两类角色的使用需求。

2. 新思考与行动

新思考

  1. 软件项目不一定要强依赖第三方在线服务,在课程作业场景下,mock降级方案是很合理的工程手段,优先保证系统整体可用、流程闭环,而不是强行接入不稳定的外部依赖。
  2. 版本控制是团队协作的关键,分支保护策略是为了保护主分支,开发时应当养成新建开发分支的习惯,而不是一味使用强制推送覆盖代码。
  3. 6人团队分工更需要明确边界,文档、测试、部署、开发任务同等重要,不能只关注写代码,文档、日志、截图也是重要交付物,否则容易出现任务遗漏。
  4. 很多开发报错不是代码bug,而是版本工具、仓库配置、环境配置问题,这类问题耗时经常超过写代码本身。

后续行动

  1. 后续迭代:如果条件允许,可增加配置页面,可视化切换mock模式/真实LLM接口模式;完善日志输出,方便定位推荐模块运行状态。
  2. 团队规范:后续开发统一使用分支开发流程,dev分支作为开发分支,测试稳定后再合并到master,不再直接操作受保护主分支。
  3. 测试完善:补充冒烟测试脚本,每次修改代码后自动验证核心接口可用性,减少人工测试工作量。
  4. 文档持续维护:API文档、部署文档同步随代码更新,方便其他人拉取代码快速部署运行。

三、PSP表格

刘伟鑫 PSP表
| PSP阶段 | 预估时间(min) | 实际时间(min) | 备注 |
| ---- | ---- | ---- | ---- |
| 计划 | 40 | 35 | 需求确认、6人团队分工安排 |
| 需求分析 | 60 | 70 | 梳理功能、数据库、接口 |
| 设计 | 70 | 80 | 原型、表结构、前后端方案 |
| 编码 | 240 | 270 | 前端、后端业务代码开发 |
| 测试 | 80 | 90 | 功能测试、联调、bug修复 |
| 版本控制 & 部署 | 60 | 110 | CodeArts上传、排错、docker部署 |
| 博客&文档撰写 | 90 | 100 | 写AI Coding、PSP、贡献评估、博客整理 |
| 合计 | 640 | 755 | |

刘传浩 PSP表

PSP阶段预估时间(min)实际时间(min)备注
计划2020参与需求会议,确认前端页面任务
需求分析3035熟悉论坛、首页相关需求
设计4045页面布局、组件结构设计
编码180210首页、论坛列表、论坛详情开发与样式调试
测试6070页面自测,和后端联调,修复样式bug
版本控制 & 提交2025本地提交代码,配合组长合并到dev分支
文档与博客3030整理自己负责模块截图,核对功能描述
合计380435

李明学 PSP表

PSP阶段预估时间(min)实际时间(min)备注
计划2015确认个人中心、日程、通知页面任务
需求分析3030理解报名、日程管理、多语言需求
设计4050个人中心组件、多语言切换方案设计
编码170190日程页面、个人中心、通知公告页面开发、i18n适配
测试5060多语言切换测试、报名流程页面联调
版本控制 & 提交2020提交前端代码,解决简单git冲突
文档与博客2525整理页面截图,补充前端功能说明
合计355390

王永臻 PSP表

PSP阶段预估时间(min)实际时间(min)备注
计划2020认领用户、鉴权模块后端任务
需求分析3540梳理登录、注册、角色权限逻辑
设计4040用户表结构、权限校验方案设计
编码160180登录注册接口、jwt鉴权、角色权限控制开发
测试5055接口自测、权限边界测试,配合前端联调
版本控制 & 提交2020提交后端代码
文档与博客2530补充接口文档中用户相关部分
合计350385

许毅君 PSP表

PSP阶段预估时间(min)实际时间(min)备注
计划2020认领论坛报名、统计相关接口
需求分析3035理解论坛报名、日程统计业务逻辑
设计3540报名数据表、统计查询方案设计
编码150170论坛报名、日程统计、数据查询接口开发
测试4550接口测试,异常报名场景校验
版本控制 & 提交2020提交后端业务代码
文档与博客2525完善业务接口文档
合计325360

许煜煌 PSP表

PSP阶段预估时间(min)实际时间(min)备注
计划1515确认原型、文档、测试任务
需求分析4045通读全部需求,梳理原型要点
设计6070墨刀原型绘制、数据库表结构设计
编码00不负责业务代码开发
测试90100全流程功能测试,收集bug并反馈给开发
版本控制 & 提交1010提交原型、md文档
文档与博客6070编写数据库设计文档、API文档,协助整理博客材料
合计275310

四、团队贡献比例评估

成员贡献占比工作说明
刘伟鑫22%项目统筹、仓库部署、Git排错、docker配置、博客整合、答辩准备、LLM模块开发
刘传浩17%前端首页、论坛列表、论坛详情页面开发、样式调试
许毅君17%后端论坛报名、日程统计、业务接口开发
王永臻16%后端用户模块、登录注册、鉴权权限开发
许煜煌15%原型设计、数据库/API文档、测试、bug记录、资料整理
李明学13%前端日程、个人中心、通知公告页面开发、多语言适配

五、AI辅助开发任务记录

任务1:编写LLM智能推荐模块,要求支持mock降级(代表性开发任务)

关键Prompt(给AI的原始提示)

img

AI输出摘要
AI生成了llm.js完整接口代码,包含环境变量读取、axios请求封装、成功回调、异常捕获,并且内置了mock分支逻辑。代码结构清晰,区分了真实调用路径和mock演示路径,返回的数据结构和前端页面预设字段保持一致。

迭代记录

  1. 第一轮AI输出:mock返回内容比较简单,没有附带推荐理由,前端页面渲染会缺字段。
  2. 二次引导Prompt:> mock返回结果里,每条推荐论坛需要增加reason字段,用来展示推荐理由,和真实LLM返回格式统一。
  3. 第二轮输出:补齐reason字段,数据格式对齐;但是AI在代码里写死了把.env硬编码导入,存在密钥泄露风险。
  4. 第三次调整引导:> 不要直接读取.env文件写死,使用环境变量,并且增加注释提醒不要提交密钥到代码仓库,同时在返回json中增加tag标记demo:true给前端识别。

采纳/修改/拒绝说明

  • ✅ 采纳:整体分支判断逻辑、接口入参出参结构、异常捕获逻辑。
  • ✏️ 修改:mock返回数据结构、增加demo标记、调整注释、移除直接读取.env的危险写法。
  • ❌ 拒绝:AI提出的“直接在代码内置默认key用于演示”方案,理由:密钥硬编码会造成信息泄露,不符合版本仓库安全规范。

任务2:实现基于用户历史报名记录的协同过滤推荐补充逻辑(方案验证、错误排查,课程目标4)

关键Prompt

img

AI输出摘要
AI给出了三表关联SQL(用户-报名-论坛标签),写了协同过滤查询函数,同时写了合并两套推荐数组、加权打分、去重过滤的JS逻辑。整体思路是:先拿到用户已报名标签,查找同标签其他用户,再取出他们的报名论坛,最后和LLM推荐列表合并打分。

迭代记录

  1. 第一轮AI输出:SQL没有做数量限制,当测试数据变多的时候,关联查询返回大量冗余数据,接口响应变慢;并且合并排序只简单拼接,没有加权分数计算。
  2. 二次引导Prompt:> SQLite里面加limit控制候选集,不要全量关联;给每条推荐项增加score字段,LLM推荐基础分60,协同过滤基础分40,同一个论坛多次命中可以叠加分数,最后按score降序。
  3. 第二轮输出:增加limit、基础分,但是存在一个bug:同一个用户多次报名同一个论坛会造成重复统计,分数虚高。
  4. 第三次引导Prompt:> 关联的时候使用distinct去重用户id,避免同一个用户重复报名带来的重复计数;同时增加过滤:过滤掉用户本人已经报名的论坛。

检查验证、采纳判断依据

  • 验证方式:构造多组测试数据,分别测试新用户(无报名记录,协同过滤无结果,只返回LLM/mock推荐)、老用户(有历史报名,混合推荐)、边界场景(所有同标签论坛均已报名);打印接口返回score日志,核对打分逻辑。
  • ✅ 采纳:协同过滤的关联思路、结果合并加权框架、去重过滤框架。
  • ✏️ 修改:增加distinct去重、限制候选集大小、修复分数叠加逻辑、增加空数据兜底。
  • ❌ 拒绝:AI建议的缓存表定时刷新方案,判断依据:课程项目数据量很小,引入定时任务、缓存表会增加系统复杂度,维护成本高,属于过度设计,现阶段不需要。

任务3:Docker一键部署脚本编写与优化

关键Prompt

img

AI输出摘要
生成Dockerfile、docker-compose.yml,配置前后端容器、端口映射、卷挂载,加入跨域配置。

迭代记录

  1. 第一轮:AI默认使用npm,和本项目pnpm包管理器不匹配,构建失败。
  2. 引导修改:> 项目使用pnpm,修改镜像构建步骤,使用pnpm install。
  3. 第二轮:前端容器和后端容器启动顺序没有控制,后端还没启动前端就发起请求,出现跨域报错。
  4. 增加要求:> 增加depends_on控制启动顺序,后端优先启动。

检查验证、采纳判断依据

  • 验证方式:本地执行 docker compose up --build,观察容器启动日志,访问前端页面,测试接口请求。
  • ✅ 采纳:容器编排整体结构、端口映射、跨域中间件配置。
  • ✏️ 修改:包管理器替换为pnpm、增加启动依赖顺序、调整环境变量挂载。
  • 判断依据:所有修改都经过本地部署验证,保证一键部署流程稳定,适配项目现有结构。

小结

使用AI时,不会直接采信全部输出,每一段代码、每一个技术方案都会经过人工检查、本地测试验证;遇到不安全、不符合项目约束的方案直接拒绝。通过分轮次、精细化的prompt引导,逐步修正AI输出的缺陷,让AI产出贴合我们项目的约束(不使用真实LLM密钥、轻量化协同过滤、使用pnpm管理)。

回到目录

...全文

相关推荐

零基础玩转CodeArts代码智能体:能力图谱与可信使用指南

代码智能体是现代IDE中融合静态分析、规则引擎与轻量模型的自动化编码辅助系统,其核心原理在于将模糊的AI建议转化为可追溯、可干预、可验证的具体动作。技术价值体现在提升开发效率的同时保障代码质量与安全可控性,广泛应用于Java/Python/Go等主流语言的补全、缺陷检测、PR评论和单元测试生成等场景。本文聚焦华为云CodeArts平台,深入解析其‘即开即用层’‘配置生效层’与‘实验探索层’三级能力边界,并结合真实项目实践,提供从环境搭建、功能启用到信任校验的完整落地路径,助力开发者建立对代码智能体的理性认知

小红帽的灰灰狼

CodeArts代码智能体:零基础构建领域专用AI编码工作流

代码智能体是将大模型能力深度融入软件工程实践的典型范式,其核心在于通过领域知识注入、结构化提示词驱动与多层校验机制,实现从问题识别到可运行代码的端到端闭环。不同于通用AI编程助手,CodeArts代码智能体依托语法分析、语义推理与上下文感知三重技术栈,支持检视、修复、生成三大能力协同演进,并以项目知识库和代码知识图谱为底座,显著提升缺陷召回率与补丁可信度。该模式已在Java/Python/Go企业级项目中验证91.3%高召回率,适用于DevOps提效、遗留系统加固及低代码场景延伸,尤其适合无云原生经验但具备

覃龙光

华为云GLM-5.1工程级落地:长程稳定、MoE调优与智能体实战

大语言模型在企业生产环境中的真正价值,不在于参数规模或对话流畅度,而在于能否稳定支撑小时级任务、精准调用工具并深度嵌入业务流水线。GLM-5.1作为支持MoE架构与长程推理的工业级模型,其能力释放高度依赖底层硬件协同——尤其在华为云昇腾NPU平台,HBM带宽优化、专家激活配额(expert_quota)控制与心跳维持机制共同决定了8小时连续工作的可行性。结合ModelArts部署、AgentArts编排与CodeArts代码生成,它可实现从GitHub Issue分析到Jira工单闭环、从PDF监管文件结构

weixin_34168880

华为产线落地Coding Agent的工程适配实战指南

Coding Agent(编码智能体)作为大模型在软件开发中的关键落地形态,其核心价值不在于通用代码生成能力,而在于对特定工程环境的深度适配能力。在嵌入式、通信设备等强规范、多工具链、高可靠性要求的工业级产线中,单纯依赖模型微调或Prompt优化往往失效;真正决定‘能否上线’的是语义理解、环境感知与反馈闭环三重工程适配层的协同设计。本文基于华为HarmonyOS驱动模块真实场景,系统阐述如何通过Rule Engine规则引擎、Env-Aware Proxy环境代理及多模态反馈机制,将Agent输出从‘可运行

Maggie H

智谱GLM-5.1华为云Day0上线:开箱即用的大模型工程化实践

大模型落地难,核心在于部署复杂、调用割裂、运维门槛高。本文围绕大语言模型(LLM)的工程化集成与生产就绪能力展开,解析如何通过模型-运行时解耦、服务原子化、接入无感化等关键技术,实现LLM能力像水电一样即开即用。重点涵盖昇腾AI硬件适配、BF16混合精度推理、ZhipuTokenizer-v2分词计费优化等实战细节,支撑金融、政务、制造等场景下的合同审查、代码生成、低代码AI编排等高频应用。聚焦智谱GLM-5.1在华为云ModelArts、CodeArts Snap、Astro等多产品深度集成的真实案例,揭

man One
评论
收藏 已收藏
分享
返回顶部