前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >大模型在蓝鲸运维体系应用——蓝鲸运维开发智能助手

大模型在蓝鲸运维体系应用——蓝鲸运维开发智能助手

原创
作者头像
腾讯蓝鲸助手
发布2024-11-13 10:44:20
发布2024-11-13 10:44:20
3350
举报

本文来自腾讯蓝鲸智云社区用户: CanWay

背景

1、运维转型背景

蓝鲸平台从诞生之初,就一直在不遗余力地推动运维转型,让运维团队可以通过一体化PaaS平台,快速编写脚本,编排流程,开发运维工具,从被动地提供运维支撑服务,转型为主动地提供SRE增值服务。为了让运维人员更快成长为“六边形运维”(参考《在线跟腾讯工程师学习SaaS开发》,泛指运维界的六边形战士,特指掌握了运维开发技能的运维人群),降低运维开发 SaaS 的难度,蓝鲸不仅提供了蓝鲸开发框架,通过集成身份验证、API调用、模板渲染、UI组件库等功能,大幅降低了运维开发SaaS的难度。

在这里插入图片描述
在这里插入图片描述

然而,在实际操作中,我们观察到运维人员的主要工作往往涉及与各种IT对象和环境进行交互。因此,尽管他们学习使用Python这类脚本型语言来进行后台开发相对较为顺畅,但当他们试图设计并开发一个用户体验尚可的前端页面时,却面临较高的入门难度。他们往往面临两种选择:要么开发的页面功能相对简单、设计朴素,要么需要投入大量的时间和精力进行页面布局和交互设计的打磨。

为了解决这个难题,我们进一步提供了运维开发平台,使用低代码技术,通过拖拽组件组装页面,让开发工作可视化灵活组装、所见即所得,并且针对复杂交互场景有很好的适应性,可以灵活地通过函数编码实现。

在这里插入图片描述
在这里插入图片描述

2、大模型对运维开发带来的挑战和机遇

最近几年,大模型的爆发式发展为开发和运维行业带来新的变革,2021 年 7 月 1 日,由 GitHub 和 OpenAI 共同开发的人工智能编码助手——Copilot正式发布,如同连环炸弹的连续迸发,持续为开发者和整个软件行业带来震撼与惊喜。就在上个月,国内首个AI程序员入职了阿里云,这个叫“通义灵码”的程序员具有扎实的编程基础,能熟练使用200多种编程语言,具备生成词级/行级/块级/函数级/类级等代码内容的能力,还能自动生成测试用例、代码优化、生成注释等。而且,通义灵码的工作节奏比996还要极致:7x24小时随叫随到…看起来,大模型的应用似乎要终结开发框架、低代码这类脚手架开发工具。难道,运维不再需要开发转型了?甚至“零运维”在AI的帮助下提前实现了?

不过在最近一段时间,我们团队研究对比了多款国内外大模型,并且在知识查询、开发问答、代码补全、单元测试生成以及SaaS应用构建等多个维度进行了能力测试和验证,事实表明,大模型现阶段还不能完全替代开发者,在一些专业的运维开发领域,能够成为运维人员的“开发副手”,加快运维组织的转型。

大模型的优势分析

首先,我们分析,大模型的主要能力体现在以下几个方面:

1、语言理解

大模型通过训练可以理解和解释自然语言文本,能够回答问题、提供解释、理解指令和上下文含义等。

2、知识总结

大模型可以提取文本知识的关键信息,生成摘要,使得用户能够快速了解长篇文章或报告的主要内容。

3、语言创作

大模型能够根据输入的上下文信息生成连贯、流畅的文本,例如撰写文章、生成对话、创作诗歌或故事等。

4、问答系统

大模型可用于构建问答系统,与用户进行自然语言交流,回答用户提出的问题,如在线客服、智能助手等。

5、文本生成

大模型可以根据上下文生成各种类型的文本,如代码注释、代码补全、单元测试等。

这些能力使得大模型在许多实际应用中具有广泛的应用价值,如搜索引擎、推荐系统、知识库、智能客服等。随着技术的发展和模型的不断优化,大模型的性能和应用范围还将进一步扩大。

而我们推动运维开发转型的主要手段包含一体化运维平台、基于PaaS架构的开发框架、基于低代码技术的运维开发平台,这些工具分别提供了开箱即用的产品功能、可以快速组装的脚手架、所见即所得的图形化界面等多层次的能力,规避运维人员不熟悉开发语言和软件工程的短板,加速能力跃迁。

对比大模型的主流应用形态——AI对话交互和传统的运维产品和工具——GUI交互,两者各有优势。大模型更适合通过对话解决信息查询、上下文检索等问题,并且适合移动或小屏幕设备,在个性化、长尾需求场景里也能较好适配。而传统的GUI交互,在数据处理、高精度任务、快速导航上还保持着优势地位,并且提供了直观的操作体验。

在这里插入图片描述
在这里插入图片描述

大模型在运维开发上的应用

从大模型的原理上看,模型经过海量的数据训练,在开发领域,很多大模型学习了几十亿行代码,庞大的数据基础使得这些模型在代码的规范性、准确性方面展现出了卓越的效果。同时,自然语言理解的突出优势,让大模型在运维和开发专业知识掌握上是非常全面的,并且可以通过RAG等技术实现私域知识的检索,在运维工具开发辅助上可以发挥多种作用,提高开发效率和质量。以下是我们在运维开发领域的主要应用场景:

1、代码生成

在SaaS开发中,开发者经常会遇到需要查询资料或者阅读其他人编写的代码的情况,如果使用浏览器的搜索引擎或者一些开源大模型,必然会经常性地切换窗口打开浏览器,这个过程会给开发人员带来不少干扰。所以,在代码辅助编写场景,我们通过 BKGPT 插件对接大模型和IDE,让开发者可以在编程工具里闭环信息检索的过程,大大提升了开发问题查询效率。

在这里插入图片描述
在这里插入图片描述

其次,我们提供了BKCodeAI 插件,可以实现根据注释中的需求描述,进行代码生成和补全,当前已经支持函数级代码生成。BKCodeAI 安装并配置成功后,IDE 编辑器中,当前光标所处位置的上方有注释或者代码内容时,此时键盘回车、空格、tab 等按键时便会触发 BKCodeAI进行代码生成或补全。

在这里插入图片描述
在这里插入图片描述

较为常见的场景如下:

  • 打开新文件,在第一行写注释,此时回车到下一行后便会触发;
  • 打开老文件,修改文件中的某一行(非第一行)代码,此时在光标所处的回车、空格、tab 便会触发;
  • 触发时,IDE右下角 BKCodeAI 标识处会出现 loading 标识,loading 结束后,便会展示代码生成结果(代码置灰预填充状态);
    在这里插入图片描述
    在这里插入图片描述
  • 按Tab键可以将生成代码真正填充到编辑器内。
    在这里插入图片描述
    在这里插入图片描述

2、代码审查

另一方面,和其他的编程 Copilot 工具一样,BKGPT 是一个助手而非人类程序员的替代品,开发者不能简单地采纳Copilot的建议,还需要结合个人的编程经验和专业知识最终完成SaaS的构建。所以在当前阶段,单元测试、代码审查这类软件质量措施需要坚持执行,不过在大模型的帮助下,不再需要开发者花费太多精力处理这些事项,大模型可以自动生成单元测试,并根据代码的提交记录自动生成 Code Review 建议。

BKCodeAI 插件安装成功后,当在 git push 时,会自动触发 AI CodeReview 任务,CR 任务将异步执行,不会阻塞 push 操作,CR 任务执行完成后会在 IDE 弹窗提醒 CR 详情链接。

在这里插入图片描述
在这里插入图片描述

打开 CR 详情链接,可以跳转到AI开发助手产品的 CR 历史页面,查看到大模型为本地提交的代码自动生成的审查结果。

在这里插入图片描述
在这里插入图片描述

3、专业知识问答

大模型天然在自然语言理解和知识总结有巨大的优势,而嘉为蓝鲸又有上千家各行各业的企业运维解决方案实施经验,积累了海量的运维开发领域专业知识。技术架构上,通过 RAG + Embedding 技术,可以海量的运维知识(截至2023年12月,嘉为知识库存量文档394035篇,月均消费7万+次)向量化存储,作为大模型的外挂知识库,利用大模型强大的总结能力,可以总结提炼出解决方案回复给开发者。并且,针对API调用以及企业内的系统,可以通过Function call技术实时获取更多的知识如API调用测试结果,辅助开发者更准确的验证接口参数。

在这里插入图片描述
在这里插入图片描述

通过打通企业微信机器人,可以让开发者很方便地查询开发知识,该问答机器人除了回答常规的开源知识外,也能很好地提取公司内的私域知识,然后总结后回复给提问者。

在这里插入图片描述
在这里插入图片描述

“正确的问题往往比答案重要,好的问题就是一般的答案”这个结论在大模型领域体现得淋漓尽致,在智能问答助手上线后,我们发现有部分开发者反馈回复不准确,存在大模型“胡说八道”的情况,深入追究,发现往往是开发者的提问比较模糊或者提问格式不符合规范。其实这个现象在大模型的各个行业应用中都比较普遍,这也是为什么会有“提示词工程”的重要原因之一。

为了解决提问不规范的问题,我们单独开发了一个“AI开发助手”的SaaS,通过定义角色的方式预制 Propmt 提示词,这样可以让熟悉“提示词工程”的平台开发工程师汇总运维开发关注的常见问题,比如定义“前端TS专家”,用于解决开发者不熟悉前端的痛点;定义“变量取名专家”,规范开发者的代码变量命名。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

通过“预设角色”功能,智能问答场景进一步降低了开发者的使用门槛,更进一步,平台开发工程师可以把产品的扩展开发能力——插件开发提炼成模板,开放给普通用户使用。这样即使是不懂开发的用户,在页面选择了“插件模板生成员”后,也能快速开发出一个插件出来。

在这里插入图片描述
在这里插入图片描述

经过一段时间的运行,我们也发现了一个非常实用的提示词撰写技巧——CO-STAR 框架。该框架由新加坡政府科技局 (GovTech) 举办的首届 GPT-4 提示工程大赛冠军 Sheila Teo 提出。

在这里插入图片描述
在这里插入图片描述

CO-STAR是结构化的Prompt模板六大要素的首字母缩写,即:

  • © Context 上下文:为任务提供背景信息
  • 通过为大语言模型(LLM)提供详细的背景信息,可以帮助它精确理解讨论的具体场景,确保提供的反馈具有相关性。
  • (O) Objective 目标:明确你要求大语言模型完成的任务
  • 清晰地界定任务目标,可以使大语言模型更专注地调整其回应,以实现这一具体目标。
  • (S) Style 风格:明确你期望的写作风格
  • 可以指定一个特定的著名人物或某个行业专家的写作风格,如商业分析师或 CEO。这将指导大语言模型以一种符合你需求的方式和词汇选择进行回应。
  • (T) Tone 语气:设置回应的情感调
  • 设定适当的语气,确保大语言模型的回应能够与预期的情感或情绪背景相协调。可能的语气包括正式、幽默、富有同情心等。
  • (A) Audience 受众:识别目标受众
  • 针对特定受众定制大语言模型的回应,无论是领域内的专家、初学者还是儿童,都能确保内容在特定上下文中适当且容易理解。
  • ® Response响应:规定输出的格式
  • 确定输出格式是为了确保大语言模型按照你的具体需求进行输出,便于执行下游任务。常见的格式包括列表、JSON 格式的数据、专业报告等。对于大部分需要程序化处理大语言模型输出的应用来说,JSON 格式是理想的选择。

4、原子平台产品集成

在运维的日常工作中,脚本编写是一个比较核心且重要的工作,蓝鲸平台已经提供了一套运维基础操作的原子平台——作业平台,让运维的脚本管理工作页面化,并且云化脚本版本管理模式,贴合现代化开放协同的理念,协作者借助平台,可便捷地共享脚本资源。在大模型的能力加持下,作业平台的脚本管理和问题分析插上了AI的翅膀,尤其是在脚本报错分析、IT对象操作知识等方面,能力非常突出,极大地提升了运维日常的脚本开发效率,降低了脚本出错的概率。

在这里插入图片描述
在这里插入图片描述

5、运维开发平台集成

最后,在低代码开发领域,运维开发平台的优势在于图形化开发方式、大量的预制组件、少量手工编码、实现完整的应用(包含页面、流程、数据等),可以降低开发难度、开发成本,缩短开发周期,但是也存在产品学习成本高、配置和脚本复杂度高、需求转化难度大等问题。而这些短板恰好是大模型的优势——自然语言理解、基本推理、海量代码的积累,所以,大模型可以比较完美地集成到蓝鲸运维开发平台中,并且在以下功能上带来了更高的效率和更好的体验:

  • 自然语言自动生成页面 开发者接到需求后,没有产品经理,可以直接求助大模型帮忙生成页面需要的组件,如表格、登录框等。大模型查询运维开发平台内置的组件,并在页面快速生成组件实例,整个过程比拖拉拽的交互更加高效。
    在这里插入图片描述
    在这里插入图片描述
  • 修改页面字段内容和配置 开发者需要针对组件设计一些交互逻辑,如属性、事件等,可以直接对事件进行描述,如添加一个按钮,并给按钮的点击事件进行描述“跳转到首页”,大模型的收到提示词后生成平台规则要求的配置或代码,效果如下:
    在这里插入图片描述
    在这里插入图片描述
  • 后台代码或SQL生成 运维开发平台的后台代码或SQL语句生成应该与其它的 Copilot 的代码生成方式更优化,分成以下步骤:

1.用户直接在前端页面选择数据源,输入文本,描述需要生成的 SQL 的功能;

2.运维开发平台将数据库表结构和用户输入文本进行格式化整合后,经过 Prompt 优化后发送到大模型;

3.大模型返回SQL语句,用户复制或插入到平台中。

在这里插入图片描述
在这里插入图片描述
  • 需求文档生成应用 更复杂点的场景,运维开发希望能根据业务需求,经过少量人为交互,可以直接生成最终的页面和应用,这个步骤会更加复杂:

1.开发者输入完整的需求,如“新建一个年会打卡抽奖系统”;

2.大模型先根据描述拆解任务,调用运维开发平台能力,生成开发任务步骤和流程,包含设计数据库模型、开发员工信息管理接口、开发打卡系统接口、开发抽奖系统接口、实现用户认证和权限管理、设计API响应格式,以及集成SaaS开发框架、执行开发环境启动和测试预览等部署工作;

3.每个开发任务步骤,大模型会自动生成代码函数片段,并自动调用大模型的 Code Review 能力,生成代码审查报告;

4.开发者根据每个步骤的代码片段,结合 Code Review 结论,可以进一步完善步骤提示词;

5.经过多轮步骤代码自动生成和代码审查,以及少量人为接入,完成最终版本的代码生成;

6.最后,结合蓝鲸SaaS开发框架和自动化部署能力,可以直接把每个步骤的函数代码组装成完整的应用,发布到测试环境进行验证。

在这里插入图片描述
在这里插入图片描述

未来展望

“把AI和大模型的能力赋能给运维团队,推动运维开发转型,实现组织可持续、自生长”始终是蓝鲸品牌的发展理念,无论是已经“越过顶峰、走出低谷”的PaaS平台、云原生技术,还是处于“期望顶峰”的大模型技术,蓝鲸始终坚持脚踏实地地推动技术的实际应用,不断降低运维使用新技术的门槛。当然,我们在中途休息小憩时,也不会忘记仰望星空,选择摘取几颗耀眼的“技术之星”,照亮我们的前行之路。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
    • 1、运维转型背景
    • 2、大模型对运维开发带来的挑战和机遇
  • 大模型的优势分析
    • 1、语言理解
    • 2、知识总结
    • 3、语言创作
    • 4、问答系统
    • 5、文本生成
  • 大模型在运维开发上的应用
    • 1、代码生成
    • 2、代码审查
    • 3、专业知识问答
    • 4、原子平台产品集成
    • 5、运维开发平台集成
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档