0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

企业和个人基于业务知识和代码库增强的大模型生成代码实践

京东云 ? 来源:jf_75140285 ? 作者:jf_75140285 ? 2025-07-08 15:31 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1.源起

李明是今年刚加入某互联网公司的研发新人,满怀期待地开始了他的职业生涯。然而,短短两周后,他的热情就被现实浇了一盆冷水。

第一周: 当他第一次接手需求时,mentor只是简单交代了几句:“这个功能之前做过类似的,你参考下历史代码。”可当他打开代码仓库,却发现注释寥寥,变量名像密码一样难懂,更找不到任何需求文档。他硬着头皮修改,结果上线后引发了线上故障——原来有个隐藏的业务规则,只有老员工才知道。

第二周: 测试同事小张跑来问:“这次改动会影响订单状态流转吗?”李明愣住了,他根本不知道系统里还有这样一条链路。小张无奈地说:“上次变更时没留文档,现在只能靠猜。”

第三周: 产品经理突然要求紧急修复一个“历史遗留问题”,但翻遍Confluence,只找到三年前零散的会议记录。运维团队更头疼:每天要花大量时间重复解答“这个报错是什么意思”“服务依赖谁”这类问题。

某天深夜加班时,李明对着屏幕发呆:

?为什么每次变更都像在挖雷?

?为什么系统做这么久,代码烟囱式设计越来越多,知识却只维护在老员工的脑子里?新人学习成本为什么这么大?

?如果有AI能直接告诉我这段代码对应什么需求,或者自动生成业务逻辑说明该多好…

这时,他想如果利用大模型将——它似乎能关联代码、需求文档和运维手册。一个念头闪过:或许,打破这座“代码迷宫”的钥匙,就藏在AI与知识库的结合中?

2.解题思路

连续几周的挫折让李明意识到,这些问题不是他一个人能解决的。他决定主动寻找解决方案。

深夜的办公室里,李明盯着屏幕上复杂的代码,突然萌生了一个想法:如果能把这些零散的知识点都串联起来,是不是就能解决现在的问题?

第一次尝试: 他想起mentor提到过的大模型技术。抱着试试看的心态,他写了个简单的脚本,把公司文档库里的需求文档和代码提交记录做了关联索引。虽然粗糙,但至少能通过关键词搜索到相关文档了。他又想如果把这种基于索引的代码结果,放到大模型训练会碰撞出什么火花呢?

初步验证: 当李明训训练好一个基本的智能体后,当产品经理再次询问某个历史功能时,李明腿间了这个智能体,产品经理查到了两年前的需求,并且还可以做解释。虽然不够完善,但比之前漫无目的地翻找强多了。

系统升级: 受到初步成果的鼓舞,李明开始思考更系统的解决方案。他梳理出三个关键点:

1.基础查询:让新人产品和研发能快速找到常见业务问题的标准答案

2.知识关联:把代码变更和需求文档、故障记录打通,做针对于需求的知识库

3.智能提示:在新需求开发时自动关联历史经验

实际应用: 在开发一个新功能时,李明尝试着把相关历史需求、代码和运维记录都整理到一起。他发现,这样不仅自己理解得更透彻,组内新来的实习生同学都可以用这个快速上手

?

?

?

3.大模型应用STAGE-1

此阶段不赘述,作为一个基本常识,能够运用基本的提示词对大模型提问一些常见的工作问题

4.大模型应用STAGE-2

4.1架构图

?

?

4.2技术路线

ps:此处以DIFY(大模型工作流平台)为例,对于在企业内部的小伙伴要注意权限敏感问题,强烈建议使用各自的内部的大模型平台工具 此处技术路线参考5.2,与5.2类似,此处不赘述

4.3 结果展示-DMS技术专家实践

4.3.1推荐语料库

示例文档添加 扩充文档作用 细化 给出具体范例

1.【必备】经典的需求TRD、ERD整理

ERD文档: 系统文档的梳理可以有助于模型快速熟悉系统,并且可以解释业务方面的知识

TRD文档: 模型可以结合TRD(技术文档),可以从技术角度提出专业意见,并且对系统/技术知识进行解答

系统梳理文档: 可以从数据库设计/系统设计/系统业务功能分享等角度,对系统文档进行补充

1.【推荐】研发注意事项/常见问题:

技术专家可以结合常见问题的文档,给出专业的解释,并且结合历史案例,预防事故的发生。

例如:

(1)历史出现的线上问题,避免线上问题的再次发生

(2)研发/产品整理的Q/A文档,协助产研快速定位并且解决问题

1.【必备】DMS系统PRD/DMS需求集

通过PRD文档,可以帮助模型理解业务,并且结合具体需求,对需求的特定问题进行解答

1.【必备】系统常见的坑合集

通过常见系统问题,例如上线前需要预热,redis共用一套风险,某些MQ流量大消费可能时常积压,

4.3.2推荐提示词

【实践】1.问题解答:为产品经理提供准确的信息和解答,处理他们关于门店工单或系统功能的问题,同时解决研发新人或非本系统研发人员的疑问。

2.方案指引:当研发人员对系统有疑问时,从系统层面详细解释问题,并提供解决方案。当产品团队需要业务知识支持时,协助他们进行解释,并为门店反馈的工单提供可行的解决方案。

3.系统的详细介绍:针对任何人提出的系统设计问题,结合ERD、TRD等文档,详细解释数据库设计、系统设计或业务流程设计,并通过可能的使用场景进行说明。

4.注意事项:在研发提出注意事项或建议时,结合研发注意事项中的问题和案例,以及历史真实问题,提供建议。当产品团队对某一场景有疑问时,结合常见问题和运营手册中的相关问题,给予专业回答。

4.3.3范例

?

?

?

5.大模型应用STAGE-3

5.1架构图

?

?

?

5.2实践路线

5.2.1 步骤1:绑定需求名称和代码之间的关联关系

1. 通过 Issue/PR 编号关联代码

场景:如果代码提交时在 Commit Message 中引用了 Issue/PR 编号(如 Fix #123),可以通过以下步骤获取关联代码:

curl -H "Authorization: token YOUR_TOKEN" 
"https://api.github.com/repos/{owner}/{repo}/issues/{issue_number}"

?返回的 JSON 中会包含 pull_request 字段(如果是 PR)或 timeline_url(通过事件查询关联提交)。

Step 2: 使用 GitHub Commit API 获取具体代码变更:

curl -H "Authorization: token YOUR_TOKEN" 
"https://api.github.com/repos/{owner}/{repo}/commits/{commit_sha}"

方法2. 通过 Search API 直接搜索代码

场景:如果代码文件或提交信息中明确包含需求标识(如 [REQ-123]):

curl -H "Authorization: token YOUR_TOKEN" 
"https://api.github.com/search/commits?q=repo:{owner}/{repo}+[REQ-123]+in:message"

搜索代码文件内容

curl -H "Authorization: token YOUR_TOKEN" 
"https://api.github.com/search/code?q=repo:{owner}/{repo}+REQ-123+in:file"

?注:需启用 GitHub Advanced Security 才支持代码内容搜索。

3. 通过 Pull Request 获取关联代码

场景:如果需求通过 PR 实现,直接获取 PR 的代码变更:

?Step 1: 获取 PR 详情(包含分支和提交):

curl -H "Authorization: token YOUR_TOKEN" 
"https://api.github.com/repos/{owner}/{repo}/pulls/{pr_number}"

?Step 2: 获取 PR 的差异文件(Diff):

curl -H "Authorization: token YOUR_TOKEN" 
"https://api.github.com/repos/{owner}/{repo}/pulls/{pr_number}/files"

4. 如果是相关企业

Step 1: 通过内部的代码平台分页获取该应用的历次变更信息

Step 2: 遍历获取唯一id对应的代码变更然后转换成KEY/VALUE格式

6.2.2 步骤2:将获取的数据进行清洗标注上传知识库

ps:此处以DIFY(大模型工作流平台)为例,对于在企业内部的小伙伴要注意权限敏感问题,强烈建议使用各自的内部的大模型平台工具,否则会有法律风险,涉及代码安全

1. 创建空的知识库

curl --location --request POST 'https://api.dify.ai/v1/datasets' 
--header 'Authorization: Bearer {api_key}' 
--header 'Content-Type: application/json' 
--data-raw '{"name": "name", "permission": "only_me"}'

2. 添加分段(代码-需求对)

curl --location --request POST 'https://api.dify.ai/v1/datasets/{dataset_id}/documents/{document_id}/segments' 
--header 'Authorization: Bearer {api_key}' 
--header 'Content-Type: application/json' 
--data-raw '{
    "segments": [
        {
            "content": "需求描述1的详细内容",
            "answer": "对应的代码实现1",
            "keywords": ["关键词1", "关键词2"]
        },
        {
            "content": "需求描述2的详细内容",
            "answer": "对应的代码实现2",
            "keywords": ["关键词3", "关键词4"]
        }
    ]
}'

方案二:使用元数据增强搜索(高级方案)

1. 创建元数据字段

curl --location 'https://api.dify.ai/v1/datasets/{dataset_id}/metadata' 
--header 'Content-Type: application/json' 
--header 'Authorization: Bearer {api_key}' 
--data '{
    "type": "string",
    "name": "code_language"
}'

2. 上传文档并附加元数据

curl --location --request POST 'https://api.dify.ai/v1/datasets/{dataset_id}/document/create_by_text' 
--header 'Authorization: Bearer {api_key}' 
--header 'Content-Type: application/json' 
--data-raw '{
    "name": "Python代码示例",
    "text": "[代码内容]",
    "indexing_technique": "high_quality",
    "metadata": {
        "code_language": "python"
    }
}'

5.2.3 步骤3配置工作流 (此处仅给出示意图)

?

?

?

5.3结果展示

5.3.1历史变动检索

现在想要结合<交易历史需求变更>知识库 拼拼融合华冠改了什么 给出改动代码

?

?

?

5.3.2历史变更分析

现在想要结合<交易历史需求变更>知识库 总结拼拼融合华冠改动点 我是产品 看不懂代码 给出

?

?

?

5.3.3依据TRD写代码

类的全路径com.jd.xstore.settlement.center.biz.service.CommonSettlementFacadeSaasImpl#calculateTotalPrice

改造点PRD:

1)支持POS传入是否使用京豆,

2)查询积理会员系统获取京豆总数量和本单抵扣数量、转变比例,

3)根据京豆总数量和本单抵扣数量、转变比例,计算可抵扣金额,京豆总余(不使用也返回)

4)进行各资产试算

5)结果返回京豆可抵扣金额,本次抵扣数量,京豆总刷量、京豆总余额(不使用也返回)。

?

?

?

5.3.4做过的类似的需求设计

新增加一种SendPayParam 需要改动哪些 类型需求支持

?

?

?

6.总结

阶段1 - 基础应用 李明首先整理了团队日常使用大模型的常见场景:

?研发人员用AI生成基础代码片段

?测试人员用AI编写测试用例

?产品经理用AI辅助撰写需求文档 这些基础应用虽然简单,但确实提高了部分工作效率。

阶段2 - 知识整合 在取得初步成效后,李明开始着手解决更深层的问题:

1.建立了系统维度的知识库模版,确保关键文档都能被有效收录

2.开发了智能检索功能,不仅能给出答案,还能定位到具体文档位置

3.通过知识库建设,反向推动了各部门完善文档沉淀

4.系统能够结合已有知识,给出更贴近实际的解决方案

阶段3 - 深度应用 随着系统不断完善,李明团队实现了更高级的功能:

1.代码变更追溯:可以查询任意代码段的历史修改记录

2.需求分析:新人产品可以快速了解系统的演进历程

3.开发辅助:研发人员可以基于需求文档自动生成基础代码

4.经验传承:系统可以提供类似需求的实现思路和关键点

这个逐步推进的方案,让团队的知识管理从碎片化走向系统化,有效解决了新人上手难、知识传承难的问题。最重要的是,它建立了一个可持续优化的知识沉淀机制。

7.未来优化

在推进的过程中,李明也发现了一些需要持续改进的问题:

1.代码生成质量依赖需求变动频率李明注意到,对于那些需求变动较少的模块,系统生成的代码往往比较基础,缺乏深度。比如订单核心流程这样长期稳定的模块,生成的代码只能覆盖最基础的场景,难以应对复杂业务逻辑。

2.知识关联的准确性有待提升当前系统对代码变更记录和需求文档的关联还不够精准。特别是在处理历史数据时,经常出现匹配错误的情况。李明发现,如果能严格要求每次代码提交都必须关联明确的需求文档,系统的准确率会有显著提升。

3.他发现,由于采用了RAG技术,生成代码后比较依赖于对于query识别到需求的准确度,比较依赖召回的准确度。

李明意识到,这些问题都需要通过持续优化算法,严格卡控需求和代码绑定来逐步解决。他计划将这些优化点纳入下一阶段的改进计划中。不过他坚信,道阻且长,行则将至,他一次又一次对自己说,"我知道的,我做什么都会成功的"~

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 代码
    +关注

    关注

    30

    文章

    4905

    浏览量

    70988
  • 大模型
    +关注

    关注

    2

    文章

    3191

    浏览量

    4147
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    代码革命的先锋:aiXcoder-7B模型介绍

    ? ? 国内开源代码模型 4月9日aiXcoder宣布正式开源其7B模型Base版,仅仅过去一个礼拜,aiXcoder-7B在软件源代码托管服务平台GitHub上的Star数已超过2
    的头像 发表于 05-20 14:41 ?316次阅读
    <b class='flag-5'>代码</b>革命的先锋:aiXcoder-7B<b class='flag-5'>模型</b>介绍

    AI知识库的搭建与应用:企业数字化转型的关键步骤

    随着数字化转型的加速,AI技术已经成为提升企业运营效率、优化客户体验、推动业务创新的重要工具。而AI知识库作为企业智能化的基础,发挥着至关重要的作用。通过构建高质量的
    的头像 发表于 03-27 15:18 ?492次阅读

    RAKsmart企业服务器上部署DeepSeek编写运行代码

    在RAKsmart企业服务器上部署并运行DeepSeek模型代码示例和详细步骤。假设使用 Python + Transformers + FastAPI实现一个基础的AI服务。主机
    的头像 发表于 03-25 10:39 ?330次阅读

    为什么MotorControl Workbench无法生成代码

    我使用MotorControl Workbench5.4.4生成单电机驱动代码,使用正交编码器精度1024,检查引脚没问题后,进入生成页面,识别到STM32CubeMX版本为6.12.1,选择编译器为Keil5,Pack包选项选
    发表于 03-14 06:28

    《AI Agent 应用与项目实战》阅读心得3——RAG架构与部署本地知识库

    应用。第六章深入探讨了RAG架构的工作原理,该技术通过在推理过程中实时检索和注入外部知识增强模型生成能力。RAG架构的核心是检索器和生成
    发表于 03-07 19:49

    用腾讯ima和Deepseek建立个人微信知识库

    ---基于腾讯混元大模型或Deepseek-r推理模型个人知识库。大模型是通才,知识库是专家大
    的头像 发表于 02-25 17:33 ?1426次阅读
    用腾讯ima和Deepseek建立<b class='flag-5'>个人</b>微信<b class='flag-5'>知识库</b>

    聚云科技荣获亚马逊云科技生成式AI能力认证 助力企业加速生成式AI应用落地

    、数据处理、模型调优到应用集成与部署等方面,助力企业加速生成式AI应用落地。此外,聚云科技还基于亚马逊云科技打造RAGPro企业知识库、AI
    发表于 02-14 13:41 ?176次阅读

    了解DeepSeek-V3 和 DeepSeek-R1两个大模型的不同定位和应用选择

    极点。 2. 电路代码生成 Synopsys VerilogGPT (需企业授权) 专为硬件描述语言(HDL)优化的模型生成可综合的Ver
    发表于 02-14 02:08

    【「基于大模型的RAG应用开发与优化」阅读体验】+第一章初体验

    能,大幅降低计算成本。 四、典型应用场景与挑战 1智能问答系统:结合企业知识库提供精准回答。 2内容生成工具:例如基于行业报告的自动摘要生成。 3个性化推荐:通过用户历史行为检索相
    发表于 02-07 10:42

    STM32CubeMX生成代码,是怎样的HAL架构?

    需要注意,CubeMX只是一个初始化工具,它只是帮你完成了HAL外设和时钟的初始化,具体程序的编写还需要查阅HAL的说明,使用相关函数实现你想实现的功能。CubeMX生成代码包含
    的头像 发表于 01-01 21:01 ?872次阅读
    STM32CubeMX<b class='flag-5'>生成</b>的<b class='flag-5'>代码</b>,是怎样的HAL架构?

    借助浪潮信息元脑企智EPAI高效创建大模型RAG

    面对大量不断迭代的新知识,大模型必须“终身学习”才能满足实际应用的需求。RAG(Retrieval-augmented Generation,检索增强生成)让生成式大
    的头像 发表于 12-19 14:32 ?769次阅读
    借助浪潮信息元脑企智EPAI高效创建大<b class='flag-5'>模型</b>RAG

    阿里云开源Qwen2.5-Coder代码模型系列

    Qwen2.5-Coder-32B-Instruct,在代码生成领域取得了显著成就。据官方介绍,该模型在EvalPlus等十多个主流的代码生成
    的头像 发表于 11-14 11:28 ?1045次阅读

    探索设计稿自动生成Flutter代码的技术方案

    作者:京东物流 冷先锋 近年来,随着人工智能和大模型技术的发展,设计稿(UI视图)自动生成代码的技术也在不断进步。本文将探讨几家知名企业在这一领域的探索和
    的头像 发表于 11-08 10:09 ?1731次阅读
    探索设计稿自动<b class='flag-5'>生成</b>Flutter<b class='flag-5'>代码</b>的技术方案

    如何自动生成verilog代码

    介绍几种自动生成verilog代码的方法。
    的头像 发表于 11-05 11:45 ?1100次阅读
    如何自动<b class='flag-5'>生成</b>verilog<b class='flag-5'>代码</b>

    【实操文档】在智能硬件的大模型语音交互流程中接入RAG知识库

    非常明显的短板。尽管这些模型在理解和生成自然语言方面有极高的性能,但它们在处理专业领域的问答时,却往往不能给出明确或者准确的回答。 这时就需要接一个专有知识库来满足产品专有和专业知识
    发表于 09-29 17:12