基于业务知识和代码库增强的大模型生成代码实践
1.存在的问题
1.研发产品新人上手难:系统存在知识壁垒,需求背景知识不了解,上线容易出问题,有些壁垒知识只能靠口述,效率极低,上线游链路不了解
2.资料散乱:各处资料散乱,虽然可能已经沉淀,但随着人员迭代,可能逐步丢失,造成公司重要资产损失
3.运维时间长:面向运维和研发需要日常答疑的时间长,占据开发的核心工作时间
4.研发新人对于历次变更不熟悉,或者系统交接存在风险
5.测试新人对于历次变更看不懂代码无法把控风险
6.产品对于之前的逻辑不熟悉,对于刚接手的系统不了解
8.大模型是否能够学会历次的需求变更?
9.大模型是否能够写出业务代码
2.解题思路
基于以上问题,从产研角度思考了对于产研角度对于大模型的日常应用的三个阶段并进行了实战
1.日常简单使用大模型,此处不再赘述,属于通识
2.大模型结合系统相关的知识库,用于解决日常运维以及产研变更或产研新人对于系统不熟悉的问题
3.大模型结合系统相关的知识库和代码,用于了解历史代码变更点,新需求依据TRD生成代码
3.结果
阶段1-成果
略-大模型使用通识
阶段2-成果
1.沉淀了适合于大模型基于系统纬度的最佳语料库模版,大模型会变,工具会变,沉淀的文章是核心资产
2.提问时可给出具体文档位置,确定来源,快速获得结果
3.通过制作一个系统维度的大模型,可以推动研发产品整理所有的文档沉淀
4.能够结合大模型能力给出衍生答案和具体例子
阶段3-成果
1.能够给出该代码库的历史变更检索
2.对于新人产品来说,能够给出该系统的所有变更需求的分析和总结
3.对于新人研发来说能够依据TRD写代码,修改即用
4.对于新人研发来说能够询问大模型获取类似需求的改动思路和改动点
4.大模型应用STAGE-1
此阶段不赘述,作为一个基本常识,能够运用基本的提示词对大模型提问一些常见的工作问题
5.大模型应用STAGE-2
5.1架构图
5.2 实践案例-DMS技术专家实践
5.2.1推荐语料库
示例文档添加 扩充文档作用 细化 给出具体范例
1.【必备】经典的需求TRD、ERD整理
ERD文档: 系统文档的梳理可以有助于模型快速熟悉系统,并且可以解释业务方面的知识
TRD文档: 模型可以结合TRD文档,可以从技术角度提出专业意见,并且对系统/技术知识进行解答
系统梳理文档: 可以从数据库设计/系统设计/系统业务功能分享等角度,对系统文档进行补充
1.【推荐】研发注意事项/常见问题:
技术专家可以结合常见问题的文档,给出专业的解释,并且结合历史案例,预防事故的发生。
例如:
(1)历史出现的白虎线上问题,避免线上问题的再次发生
(2)研发/产品整理的Q/A文档,协助产研快速定位并且解决问题
1.【必备】DMS系统PRD/DMS需求集
通过PRD文档,可以帮助模型理解业务,并且结合具体需求,对需求的特定问题进行解答
1.【必备】系统常见的坑合集
通过常见系统问题,例如上线前需要预热,redis共用一套风险,某些MQ流量大消费可能时常积压,
5.2.2推荐提示词(可迭代)
【实践】1.问题解答:为产品经理提供准确的信息和解答,处理他们关于门店工单或系统功能的问题,同时解决研发新人或非本系统研发人员的疑问。
2.方案指引:当研发人员对系统有疑问时,从系统层面详细解释问题,并提供解决方案。当产品团队需要业务知识支持时,协助他们进行解释,并为门店反馈的工单提供可行的解决方案。
3.系统的详细介绍:针对任何人提出的系统设计问题,结合ERD、TRD等文档,详细解释数据库设计、系统设计或业务流程设计,并通过可能的使用场景进行说明。
4.注意事项:在研发提出注意事项或建议时,结合研发注意事项中的问题和案例,以及历史真实问题,提供建议。当产品团队对某一场景有疑问时,结合常见问题和运营手册中的相关问题,给予专业回答。
5.2.3范例
6.大模型应用STAGE-3
6.1架构图
实现具体方案:通过将历史需求切割,让大模型学会针对于业务系统每一个需求是如何做的,就像我们当初初入职场时,mentor如何带领我们逐步做一个需求,另外对大模型补充业务知识,让其真正成为一个熟悉业务,并且会写代码的Agent,使用模型训练时,使用京东内部自研的言犀大模型,能够保障代码安全,和召回准确度
6.2实践案例
6.2.1历史变动检索
现在想要结合<交易历史需求变更>知识库 拼拼融合华冠改了什么 给出改动代码
6.2.2历史变更分析
现在想要结合<交易历史需求变更>知识库 总结拼拼融合华冠改动点 我是产品 看不懂代码 给出
6.2.2依据TRD写代码
类的全路径com.jd.xstore.settlement.center.biz.service.CommonSettlementFacadeSaasImpl#calculateTotalPrice
改造点PRD:
1)支持POS传入是否使用京豆,
2)查询积理会员系统获取京豆总数量和本单抵扣数量、转变比例,
3)根据京豆总数量和本单抵扣数量、转变比例,计算可抵扣金额,京豆总余(不使用也返回)
4)进行各资产试算
5)结果返回京豆可抵扣金额,本次抵扣数量,京豆总刷量、京豆总余额(不使用也返回)。
6.2.3做过的类似的需求设计
新增加一种SendPayParam 需要改动哪些 类型需求支持
7.未来优化点
1.比较依赖需求变动的coding库,如果新增需求较少,写出来的代码可能比较薄弱
2.强依赖与新增知识库和代码库的召回能力,依赖于合并记录和需求的绑定关系,如果未来对此进行强要求可以提升代码准确率
关注公众号
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
Git 2.52-rc0 发布,推进 SHA-1 与 SHA-256 的互操作支持
Git 2.52-rc0 已发布,这是为 Git 下一代主版本( Git 3.0)做准备的候选版本,Git 3.0 计划在 2026 年末左右发布。 此版本主要聚焦底层机制调整而非大功能更新。 主要变化 推进 SHA-1 与 SHA-256 的互操作支持(SHA1-SHA256 interop) Git 长期以来使用 SHA-1 哈希算法,但为提升安全性,未来将默认转向 SHA-256。 在 2.52-rc0 中,开始加入 “SHA1 与 SHA256 混合环境/兼容” 的工作。虽然仍是初步阶段,但目的是希望在 Git 3.0 时实现良好的互操作体验。 对于有旧仓库基于 SHA-1 的情况,这样的兼容性十分关键,以避免迁移/回退过程中出现破坏。 默认分支名称提示(Default branch name hint) 未来 Git 3.0 将默认初始分支从 “master” 改为 “main”。 在 2.52-rc0 中增加了一个提示机制:当用户仓库初建时,如果仍使用 “master” 名称,系统将提示如何重命名为 “main”,也会提示如果用户想继续使用 “master” 应如何操作。 ...
-
下一篇
Rust 基金会建立“维护者基金”,为核心开发者提供长期支持
Rust 基金会近日宣布了“Maintainers Fund”(维护者基金)项目,旨在为负责 Rust 语言核心开发与维护的工程师提供持续、透明、长期的资金支持。这项计划将聚焦于真正维护 Rust 语言本身的贡献者,而非下游依赖 Rust 的众多项目。 基金会表示,Rust 生态的长期健康依赖于这些核心维护者的稳定投入,但目前许多工作仍主要依靠志愿贡献,持续性与资源压力成为挑战。维护者基金的目标,就是为这些关键角色提供可持续的支持环境,让语言能够稳健演进。 “维护者基金”目标包括: 向 Rust 的维护者和贡献者提供可靠支持。 与 Rust 项目领导理事会(Leadership Council)及项目团队合作,识别高影响、优先的工作领域,并将支持引导到那些正在处理这些工作的维护者上。 提供资金使用的可见性(visibility into how funding is used)以促进透明度。 Rust 基金会将在接下来的几个月内制定基金的具体结构,包括资金募集方式、分配机制以及与 Rust 项目领导理事会的协作方式。基金将坚持透明原则,并公开资金用途,以确保与 Rust 项目的优先事项...
相关文章
文章评论
共有0条评论来说两句吧...









微信收款码
支付宝收款码