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

本文来自腾讯蓝鲸智云社区用户: 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平台、云原生技术,还是处于“期望顶峰”的大模型技术,蓝鲸始终坚持脚踏实地地推动技术的实际应用,不断降低运维使用新技术的门槛。当然,我们在中途休息小憩时,也不会忘记仰望星空,选择摘取几颗耀眼的“技术之星”,照亮我们的前行之路。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/60786.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

独家|京东上线自营秒送,拿出二十年底牌和美团竞争

京东自营秒送开启招商,即时零售也要全托管? 作者|王迟 编辑|杨舟 据「市象」独家获悉,京东将在近期上线自营秒送业务,目前已经开始邀约制招商。「市象」获得的招商资料显示,和5月刚升级上线的京东秒送以POP模式不同&…

GEE 数据集——美国gNATSGO(网格化国家土壤调查地理数据库)完整覆盖了美国所有地区和岛屿领土的最佳可用土壤信息

目录 简介 代码 引用 网址推荐 知识星球 机器学习 gNATSGO(网格化国家土壤调查地理数据库) 简介 gNATSGO(网格化国家土壤调查地理数据库)数据库是一个综合数据库,完整覆盖了美国所有地区和岛屿领土的最佳可用土…

JavaSE常用API-日期(计算两个日期时间差-高考倒计时)

计算两个日期时间差(高考倒计时) JDK8之前日期、时间 Date SimpleDateFormat Calender JDK8开始日期、时间 LocalDate/LocalTime/LocalDateTime ZoneId/ZoneDateTIme Instant-时间毫秒值 DateTimeFormatter Duration/Period

15分钟学 Go 第 53 天 :社区资源与学习材料

第53天:社区资源与学习材料 目标 了解Go语言官方资源掌握社区重要学习平台学会利用开源项目学习构建个人知识体系 一、Go语言官方资源汇总 资源类型网址说明Go官网golang.org官方文档、下载、教程Go Blogblog.golang.org技术博客、最新特性介绍Go Playgroundpla…

删库跑路,启动!

起因:这是一个悲伤的故事,在抓logcat时 device待机自动回根目录了,而题主对当前路径的印象还停留在文件夹下,不小心在根目录执行了rm -rf * … 所以,这是个悲伤的故事,东西全没了…device也黑屏了&#xff…

如何优化Kafka消费者的性能

要优化 Kafka 消费者性能,你可以考虑以下策略: 并行消费:通过增加消费者组中的消费者数量来并行处理更多的消息,从而提升消费速度。 批量消费:配置 fetch.min.bytes 和 fetch.max.wait.ms 参数来控制批量消费的大小和…

开始使用 Elastic AI Assistant 进行可观察性和 Microsoft Azure OpenAI

作者:Jonathan Simon 按照此分步过程开始使用 Elastic AI Assistant for Observability 和 Microsoft Azure OpenAI。 最近,Elastic 宣布,AI Assistant for Observability 现已面向所有 Elastic 用户开放。AI Assistant 为 Elastic Observabi…

vue2项目启用tailwindcss - 开启class=“w-[190px] mr-[20px]“ - 修复tailwindcss无效的问题

效果图 步骤 停止编译"npm run dev"安装依赖 npm install -D tailwindcssnpm:tailwindcss/postcss7-compat postcss^7 autoprefixer^9 创建文件/src/assets/tailwindcss.css,写入内容: tailwind base; tailwind components; tailwind utiliti…

深度学习——AE、VAE

🌺历史文章列表🌺 机器学习——损失函数、代价函数、KL散度机器学习——特征工程、正则化、强化学习机器学习——常见算法汇总机器学习——感知机、MLP、SVM机器学习——KNN机器学习——贝叶斯机器学习——决策树机器学习——随机森林、Bagging、Boostin…

【数字图像处理+MATLAB】基于 Sobel 算子计算图像梯度并进行边缘增强:使用 imgradientxy 函数

引言 在图像处理中,边缘通常是图像中像素强度变化最大的地方,这种变化可以通过计算图像的梯度来量化。梯度是一个向量,它的方向指向像素强度增加最快的方向,它的大小(或者说幅度)表示像素强度增加的速度。…

建设展示型网站企业渠道用户递达

展示型网站的主要作用便是作为企业线上门户平台、信息承载形式、拓客咨询窗口、服务/产品宣传订购、其它内容/个人形式呈现等,网站发展多年,现在依然是企业线上发展的主要工具之一且有建设的必要性。 谈及整体价格,自制、定制开发、SAAS系统…

无桥Boost-PFC 双闭环控制MATLAB仿真

一、无桥Boost-PFC原理概述 无桥 Boost-PFC(Power Factor Correction,功率因数校正)的工作原理是通过特定的电路结构和控制策略,对输入电流进行校正,使其与输入电压同相位,从而提高电路的功率因数&#xf…

java访问华为网管软件iMaster NCE的北向接口时传递参数问题

上一篇文章介绍了利用《java访问华为网管软件iMaster NCE的北向接口》的一般性步骤,这里详细介绍其中一个读取性能数据的示例。原因是读取华为网管软件北向接口,完全找不到可供参考的例子。如果不需要传递什么参数,就能获取到结果&#xff0c…

深度学习之pytorch常见的学习率绘制

文章目录 0. Scope1. StepLR2. MultiStepLR3. ExponentialLR4. CosineAnnealingLR5. ReduceLROnPlateau6. CyclicLR7. OneCycleLR小结参考文献 https://blog.csdn.net/coldasice342/article/details/143435848 0. Scope 在深度学习中,学习率(Learning R…

【扩散——BFS】

题目 代码 #include <bits/stdc.h> using namespace std; const int t 2020, off 2020; #define x first #define y second typedef pair<int, int> PII; int dx[] {0, 0, 1, -1}, dy[] {-1, 1, 0, 0}; int dist[6080][6080]; // 0映射到2020&#xff0c;2020…

Linux软件包管理与Vim编辑器使用指南

目录 一、Linux软件包管理器yum 1.什么是软件包&#xff1f; 2.什么是软件包管理器&#xff1f; 3.查看软件包 4.安装软件 ​编辑 5.卸载软件 Linux开发工具&#xff1a; 二、Linux编辑器---vim 1.vim的基本概念 (1) 正常/普通模式&#xff08;Normal mode&#xff0…

R门 - rust第一课陈天 -内存知识学习笔记

内存 #mermaid-svg-1NFTUW33mcI2cBGB {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-1NFTUW33mcI2cBGB .error-icon{fill:#552222;}#mermaid-svg-1NFTUW33mcI2cBGB .error-text{fill:#552222;stroke:#552222;}#merm…

数据结构--数组

一.线性和非线性 线性&#xff1a;除首尾外只有一个唯一的前驱和后继。eg&#xff1a;数组&#xff0c;链表等。 非线性&#xff1a;不是线性的就是非线性。 二.数组是什么&#xff1f; 数组是一个固定长度的存储相同数据类型的数据结构&#xff0c;数组中的元素被存储在一…

Vue的基础使用

一、为什么要学习Vue 1.前端必备技能 2.岗位多&#xff0c;绝大互联网公司都在使用Vue 3.提高开发效率 4.高薪必备技能&#xff08;Vue2Vue3&#xff09; 二、什么是Vue 概念&#xff1a;Vue (读音 /vjuː/&#xff0c;类似于 view) 是一套 构建用户界面 的 渐进式 框架…

unity单例模式的不同声明(待完善

总结&#xff1a; 这段代码实现了一个泛型单例模式&#xff08;Singleton Pattern&#xff09;&#xff0c;用于确保某个类&#xff08;由泛型参数 T 指定&#xff09;在整个应用程序中只有一个实例&#xff0c;并且在第一次访问时才创建该实例。该模式保证了该实例的全局唯一…