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

本文来自腾讯蓝鲸智云社区用户: 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.rhkb.cn/news/471729.html

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

相关文章

3588 yolov8 onnx 量化转 rknn 并运行

本教程重点不在如何训练模型,重点是全流程链路,想学训练的可以网上找教程 环境 python 3.10.xrknn-toolkit2-2.2.0ultralytics_yolov8rknn 驱动版本2.2 模型训练 yolov8仓库地址:https://github.com/airockchip/ultralytics_yolov8.git下载…

Vue 组件通信及进阶语法

文章目录 一、scoped 样式冲突二、data 是一个函数三、组件通信1. 父子通信1.1 props 校验1.2 props 比较 data 2. 非父子通信2.1 event bus2.2 provide-inject 四、进阶语法1. v-model 详解2. sync 修饰符3. ref 和 $refs4. $nextTick 一、scoped 样式冲突 注意点:…

LeetCode105.从前序与中序遍历构造二叉树

题目要求 给定两个整数数组 preorder 和 inorder &#xff0c;其中 preorder 是二叉树的先序遍历&#xff0c; inorder 是同一棵树的中序遍历&#xff0c;请构造二叉树并返回其根节点。 提示: 1 < preorder.length < 3000inorder.length preorder.length-3000 < pr…

【问卷调研】HarmonyOS SDK开发者社区用户需求有奖调研

问卷请点击&#xff1a;HarmonyOS SDK开发者社区用户需求有奖调研

IOT物联网低代码可视化大屏解决方案汇总

目录 参考来源云服务商阿里云物联网平台产品主页产品文档 开源项目DGIOT | 轻量级工业物联网开源平台项目特点项目地址开源许可 IoTGateway | 基于.NET6的跨平台工业物联网网关项目特点项目地址开源许可 IoTSharp | 基于.Net Core开源的物联网基础平台项目特点项目地址开源许可…

如何在Mac上切换到JDK 17开发环境

在本文中&#xff0c;我将为您介绍如何在Mac上切换到JDK 17&#xff0c;包括下载和安装JDK 17、设置环境变量、在IntelliJ IDEA中配置项目、修改Maven编译配置&#xff0c;并最终使用mvn clean install重新编译项目。通过这个流程&#xff0c;您可以顺利地将开发环境升级到JDK …

玩转ChatGPT:文献阅读 v2.0

一、写在前面 好久不更新咯。 因为最近ChatGPT更新了不少功能&#xff08;水一篇刷存在感&#xff09;&#xff1a; 上线ChatGPT-4o模型&#xff0c;说推理能力还不错&#xff1b;上线联网功能&#xff0c;类似Kimi那种。 所以呢&#xff0c;用它来读文献就挺舒服的了。例如…

自动驾驶系列—从数据采集到存储:解密自动驾驶传感器数据采集盒子的关键技术

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…

HarmonyOS本地存储-Preferences(用户首选项)的使用

一&#xff0c;用户首选项简述 ohos.data.preferences (用户首选项) 用户首选项为应用提供Key-Value键值型的数据处理能力&#xff0c;支持应用持久化轻量级数据&#xff0c;并对其修改和查询。 数据存储形式为键值对&#xff0c;键的类型为字符串型&#xff0c;值的存储数据…

SpringCloud 微服务消息队列灰度方案 (RocketMQ 4.x)

目录 背景遇到的问题 RocketMQ 基础基础消息模型扩展后的消息模型部署模型相关概念点 方案对比影子Topic的方案Tag的方案UserProperty的方案影子Group的方案灰度分区的方案方案对比 灰度分区方案设计适配只有部分灰度的情况所做的功能扩展消费者&#xff08;无灰度&#xff09;…

「QT」文件类 之 QDataStream 数据流类

✨博客主页何曾参静谧的博客&#x1f4cc;文章专栏「QT」QT5程序设计&#x1f4da;全部专栏「Win」Windows程序设计「IDE」集成开发环境「UG/NX」BlockUI集合「C/C」C/C程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「UG/NX」NX定制…

QT<30> Qt中使鼠标变为转圈忙状态

前言&#xff1a;当我们在写软件时&#xff0c;在等待阻塞耗时操作时可以将鼠标变为忙状态&#xff0c;并在一段时间后恢复状态&#xff0c;可以用到GxtWaitCursor&#xff1a;Qt下基于RAII的鼠标等待光标类。 一、效果演示 二、详细代码 在项目中添加C文件&#xff0c;命名为…

Vue的基础使用

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

数据结构Python版

2.3.3 双链表 双链表和链表一样&#xff0c;只不过每个节点有两个链接——一个指向后一个节点&#xff0c;一个指向前一个节点。此外&#xff0c;除了第一个节点&#xff0c;双链表还需要记录最后一个节点。 每个结点为DLinkNode类对象&#xff0c;包括存储元素的列表data、…

FBX福币交易所恒指收跌1.96% 半导体股继续回调

查查配分析11月14日电 周四,港股三大指数集体下跌。截至收盘,恒生指数跌1.96%,恒生科技指数跌3.08%,恒生中国企业指数跌2.21%。大市成交额1733亿港元。 FBX福币凭借用户友好的界面和对透明度的承诺,迅速在加密货币市场中崭露头角,成为广大用户信赖的平台。 来源:Wind 盘面上,科…

【学习日记】notebook添加JAVA支持

作者是个大学生 这个专栏主要收集课时常用的软件 以及女朋友上课用的软件的教程 新开了gitcode 用于上传安装包 环境说明 windows11 java23.0.1 ijava1.1.2 Anaconda-2024.02 需提前配置好java环境 本篇仅对添加支持进行说明 ijava的GitCode链接NotebookAddsSupportForJava:no…

RabbitMQ 篇-深入了解延迟消息、MQ 可靠性(生产者可靠性、MQ 可靠性、消费者可靠性)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 RabbitMQ 的可靠性 2.0 发送者的可靠性 2.1 生产者重试机制 2.2 生产者确认机制 2.2.1 开启生产者确认机制 2.2.2 定义 ReturnCallback 机制 2.2.3 定义 ConfirmC…

【数据结构】AVL树

引言&#xff1a;在实际情况中&#xff0c;数据不仅仅要存储起来&#xff0c;还要进行对数据进行搜索&#xff0c;为了方便进行高效搜索(在此之前的数据结构的搜索基本都是暴力搜索)二叉搜索树应运而生。但是在极端情况下(我们按照有序的方式进行插入)&#xff0c;二叉搜索树就…

CSS的综合应用例子(网页制作)

这是html的一些最基本内容的代码&#xff1a; <!DOCTYPE html> <html lang"zh"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <t…

MySQL查询某个数据库中特定表的空间占用大小

如果您也想要查询某个数据库中特定表的空间占用大小&#xff0c;包括数据和索引的大小&#xff0c;那么您可以使用以下SQL查询。这个查询将显示特定表在数据库中的数据大小、索引大小以及总大小。 SELECT table_name AS Table,ROUND(((data_length index_length) / 1024 / 10…