Elastic 基于 RAG 的 AI 助手:利用 LLM 和私有 GitHub 问题分析应用程序问题

作者:来自 Elastic Bahubali Shetti

作为 SRE,分析应用程序比以往更加复杂。 你不仅必须确保应用程序以最佳状态运行以确保良好的客户体验,而且还必须了解某些情况下的内部工作原理以帮助排除故障。 分析基于生产的服务中的问题是一项团队运动。 它需要 SRE、DevOps、开发和支持才能找到根本原因并进行潜在的补救。 如果它有影响,那就更糟了,因为这是一场与时间的赛跑。 无论情况如何,都有大量信息需要消耗和处理。 这不仅包括客户正在经历的情况,还包括有助于提供最合适解决方案的内部数据。

Elastic 的 AI Assistant 有助于改进 SRE、DevOps、Dev 等的分析。 在使用自然语言问题的单个窗口中,你不仅可以使用一般信息进行分析,还可以将其与以下内容结合起来:

  • 来自内部 GitHub 存储库、Jira 等的问题。
  • 来自 Confluence 等内部 wiki 站点的文档。
  • 你的支持服务引起的客户问题
  • 和更多

在本博客中,我们将引导你了解如何:

  1. 将包含代码和问题的外部 GitHub 存储库(OpenTelemetry 演示存储库)提取到 Elastic 中。 应用 Elastic Learned Sparse EncodeR (ELSER) 并将其存储在 AI 助手的特定索引中。
  2. 将包含 Runbook 信息的内部 GitHub 存储库提取到 Elastic 中。 应用 ELSER 并将处理后的数据存储在AI助手的特定索引中。
  3. 使用 AI 助手分析 Elastic 中的 OpenTelemetry 演示的问题时,请使用这两个索引。

使用 GitHub 数据和 AI Assistant 解决 3 个简单问题

在我们完成从 GitHub 设置数据的步骤之前,让我们回顾一下 SRE 可以使用 AI 助手和 GitHub 存储库做什么。

我们最初使用 Elastic GitHub 连接器连接到 GitHub,并提取和处理两个存储库:OpenTelemetry 演示存储库(公共)和内部 Runbook 存储库(Elastic 内部)。

通过 ELSER 加载并解析这两个之后,我们向 AI 助手询问一些分析过程中通常会问到的简单问题。

OpenTelemetry 演示有多少问题尚未解决?

由于我们提取了整个存储库(截至 2024 年 4 月 26 日),文档数量为 1,529,因此我们向它询问一个关于未解决问题总数的简单问题。 我们特别告诉 AI 助手搜索我们的内部索引,以确保 LLM 知道要求 Elasti c搜索其内部索引以获取问题总数。

Github AI Assistant issues number

基于 Rust 的 shippingservice有任何问题吗?

Elastic 的 AI Assistant 使用 ELSER 遍历加载的 GitHub 存储库,并找到针对 shippingservice 的未解决问题(这是撰写本文时的以下问题)。

Github AI Assistant shipping service issue

有 Cartservice 的操作手册吗?

由于我们加载了带有一些示例 Runbook 的内部 GitHub 存储库,因此 Elastic AI Assistant 可以正确找到该 Runbook。

Github AI Assistant Blog runbook

在浏览本博客时,我们将讨论 AI 助手如何使用 ELSER 发现这些问题,以及如何将其配置为使用你自己的 GitHub 存储库。

使用 Elastic AI Assistant 进行检索增强生成 (RAG)

Elastic 拥有最先进的基于 RAG 的 AI 助手,可实现可观察性和安全性。 它可以帮助你使用以下方式分析数据:

你最喜欢的 LLM(OpenAI、Azure OpenAI、AWS Bedrock 等)
你可以连接到或引入 Elastic 索引的任何内部信息(GitHub、Confluence、客户问题等)

Elastic AI 助手 —— 连接内外部信息

Elastic 的 AI Assistant 之所以能够做到这一点,是因为它支持 RAG,这有助于检索内部信息以及基于 LLM 的知识。

将 SRE 的相关内部信息添加到 Elastic 中:

  • 当数据进入时(例如在 GitHub 存储库中),ELSER 会应用于数据,并添加嵌入(稀疏向量场中的权重和标记)以捕获数据的语义和上下文。
  • 这些数据(GitHub、Confluence 等)经过嵌入处理并存储在 AI 助手可以搜索的索引中。

当你查询 AI 助手信息时:

  • 该查询与使用 ELSER 提取的数据经历相同的推理过程。 输入查询生成一个“稀疏向量”,用于在摄取的数据(GitHub、Confluence 等)中查找最相关的高排名信息。
  • 然后,检索到的数据与查询相结合,并发送到 LLM,然后 LLM 将添加自己的知识库信息(如果需要添加任何内容),或者可能要求 Elastic(通过函数调用)进行分析、绘制图表、甚至进一步搜索。 如果对 Elastic 进行函数调用并提供响应,LLM 会将其添加到其响应中。
  • 结果将是结合 LLM 和内部数据中任何相关内容的最基于上下文的答案。

应用程序、先决条件和配置

如果你想尝试本博客中的步骤,请满足以下一些先决条件:

  • Elastic Cloud 帐户 — 立即注册
  • OpenTelemetry 演示正在运行并连接到 Elastic(APM 文档)
  • 无论你想要使用什么内部 GitHub 存储库,以及一些对分析有用的信息(在我们的演练中,我们将使用一个 GitHub 存储库,其中包含 Elastic 进行演示时不同场景的 runbooks)。
  • 拥有你最喜爱或批准的 LLM 的帐户(OpenAI、Azure OpenAI、AWS Bedrock)

将 GitHub 存储库添加到 Elastic

第一步是设置 GitHub 连接器并连接到你的 GitHub 存储库。 Elastic 拥有来自 GitHub、Confluence、Google Drive、Jira、AWS S3、Microsoft Teams、Slack 等的多个连接器。 因此,虽然我们将在本博客中介绍 GitHub 连接器,但不要忘记其他连接器。

选择 GitHub 连接器并为其命名后,你需要添加两项:

  • GitHub token
  • URL open-telemetry/opentelemetry-demo

接下来,将其添加到向导中的索引中。

创建管道并使用 ELSER 处理数据

为了添加我们在上一节中讨论的嵌入,我们需要将以下内容添加到连接器:

  • 在配置向导中创建管道。
  • 创建自定义管道。
  • 添加 ML 推理管道。
  • 选择 ELSERv2 ML 模型以添加嵌入。
  • 选择需要作为推理管道一部分进行评估的字段。
  • 测试并保存推理管道和整体管道。

同步数据

现在管道已创建,你需要开始同步 github 存储库。 当来自 github 存储库的文档进入时,它们将通过管道并添加嵌入。

嵌入

设置管道后,同步连接器中的数据。 当 GitHub 存储库进入时,推理管道将按如下方式处理数据:

  • 当数据从 GitHub 存储库传入时,ELSER 会应用于数据,并添加嵌入(稀疏向量场中的权重和 tokens)以捕获数据的语义和上下文。
  • 该数据经过嵌入处理并存储在可由 AI 助手搜索的索引中。

当你查看提取的 OpenTelemetry GitHub 文档时,你将看到如何将权重和 tokens 添加到索引中的 Predicted_value 字段。

当用户向人工智能助手提出查询时,这些嵌入现在将用于查找上下文最相关的文档,人工智能助手可能会使用它。

检查 AI 助手是否可以使用索引

Elastic 的 AI 助手使用 ELSER 遍历加载的 Github 存储库,并找到针对 shippingservice 的未解决问题。 (这是撰写本文时的以下问题)。

Github AI Assistant shipping service issue

根据响应,我们可以看到 AI 助手现在可以使用索引来查找问题并用于进一步分析。

结论

你现在已经看到了 Elastic 基于 RAG 的 AI 助手的设置是多么容易。 你可以从多个位置(GitHub、Confluence、Slack 等)引入文档。 我们展示了 GitHub 和 OpenTelemetry 的设置。 这些内部信息可用于管理问题、加速解决和改善客户体验。 查看我们的其他博客,了解 AI 助手如何帮助 SRE 更好地分析、降低 MTTR 并改善整体运营:

  • 使用 Elastic AI Assistant 和 APM 分析 OpenTelemetry 应用程序
  • 用于可观察性的 Elastic AI 助手摆脱了 Kibana!
  • Elastic AI Assistant for Observability 和 Microsoft Azure OpenAI 入门
  • Elastic 8.13:Elastic AI Assistant for Observability 中 Amazon Bedrock 的 GA
  • 使用 AI Assistant for Observability 和组织的运行手册增强 SRE 故障排除
  • 使用 Elastic AI Assistant for Observability 获得情境感知洞察
  • Elastic AI Assistant for Observability 和 Amazon Bedrock 入门

试试看

现有 Elastic Cloud 客户可以直接从 Elastic Cloud 控制台访问其中许多功能。 没有利用云上的 Elastic? 开始免费试用。

所有这一切在你的环境中也是可能的。 今天就了解如何开始。

本文中描述的任何特性或功能的发布和时间安排均由 Elastic 自行决定。 当前不可用的任何特性或功能可能无法按时交付或根本无法交付。

在这篇博文中,我们可能使用或引用了第三方生成人工智能工具,这些工具由其各自所有者拥有和运营。 Elastic 对第三方工具没有任何控制权,我们对其内容、操作或使用不承担任何责任,也不对你使用此类工具可能产生的任何损失或损害负责。 使用人工智能工具处理个人、敏感或机密信息时请务必谨慎。 你提交的任何数据都可能用于人工智能培训或其他目的。 无法保证你提供的信息将得到安全或保密。 在使用之前,你应该熟悉任何生成式人工智能工具的隐私惯例和使用条款。

Elastic、Elasticsearch、ESRE、Elasticsearch Relevance Engine 和相关标志是 Elasticsearch N.V. 的商标、徽标或注册商标。 在美国和其他国家。 所有其他公司和产品名称均为其各自所有者的商标、徽标或注册商标。

原文:Elastic's RAG-based AI Assistant: Analyze application issues with LLMs and private GitHub issues | Elastic Blog

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

EOCR-DS3T-05S电动机保护器 施耐德 EOCR-DS3系列

EOCR-DS3T-05S电动机保护器 施耐德 EOCR-DS3系列型号: EOCR-DS3-05S EOCR-DS3-30S EOCR-DS3-60S EOCR-DS3T-05S EOCR-DS3T-30S EOCR-DS3T-60S 基于MCU(微处理器)的2CT型产品 ■ 实时处理/高精度 ■ 电流设定范围:05型&#xff1…

【SpringBoot整合系列】SpringBoot整合Thymeleaf

目录 背景Thymeleaf简介Thymeleaf的特征模板引擎是什么 代码示例1.引入依赖2.修改配置文件,添加Thymeleaf的配置信息3.编写HTML模板文件4.编写控制器,返回ModelAndView,进行视图渲染 Thymeleaf语法1.常用标签/属性1.1 th:action1.2 th:method…

SpringBoot 使用Outlook邮箱发送邮件

目录 一、开启Outlook设置 二、依赖 三、配置文件 四、代码调用 一、开启Outlook设置 开启设置如图&#xff1a; 二、依赖 <!-- 邮箱依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mai…

Java -- (part25)

一.Junit单元测试 1.概述 是一个单元测试框架,可以代替main方法去执行其他的方法 2.使用 a.导入jar包 b.注解 Test:单独执行一个方法 Before:在Test之前执行,有几个Test就有几个Before After:在Test之后执行,有几个Test就有几个After 二.类的加载机制 1.类的加载时机…

七款好用的上网行为管理软件推荐 |有没有好用的上网行为管理系统

七款好用的上网行为管理软件推荐 |有没有好用的上网行为管理系统 员工上班刷视频&#xff01; 员工上班炒股&#xff01; 员工上班干副业&#xff01; 碰见这种情况怎么办&#xff1f;当然是用电脑监控软件来监视员工的一举一动了&#xff0c;那么这样的软件有哪些呢&#…

充电桩测试:选择适合的负载箱

随着电动汽车的普及&#xff0c;充电桩的需求也在不断增加。为了保证充电桩的性能和安全&#xff0c;对其进行测试是非常重要的。在充电桩测试过程中&#xff0c;选择合适的负载箱是关键。本文将介绍如何选择合适的负载箱进行充电桩测试。 在进行充电桩测试之前&#xff0c;首先…

思腾合力受邀参加VALSE 2024视觉与学习青年学者研讨会

在充满学术氛围的五月&#xff0c;思腾合力荣幸受邀参加了于2024年5月5-7日在重庆举行的第十四届VALSE大会。作为视觉与学习领域的顶级交流平台&#xff0c;VALSE大会每年都吸引着全国专家与学者的目光。 本次大会不仅延续了往届的高水平学术研讨&#xff0c;还进一步拓宽了研究…

【CTF-Crypto】RSA-选择明密文攻击 一文通

RSA&#xff1a;选择明密文攻击 关于选择明/密文攻击&#xff0c;其实这一般是打一套组合拳的&#xff0c;在网上找到了利用的思路&#xff0c;感觉下面这个题目是真正将这个问题实现了&#xff0c;所以还是非常棒的一道题&#xff0c;下面先了解一下该知识点&#xff1a;(来自…

【可实战】被测需求理解(需求文档是啥样的、从哪些角度进行需求评审、需求分析需要分析出哪些内容、如何提高需求分析能力)

产品人员会产出一个需求文档&#xff0c;然后组织一个需求的宣讲。测试人员的任务就是在需求宣讲当中&#xff0c;分析需求有没有存在一些问题&#xff0c;然后在需求宣讲结束之后通过分析需求文档&#xff0c;分析里面的测试点并预估一个排期。 一、需求文档是什么样的&#x…

SmartEDA电路仿真软件风靡教育圈:揭秘其背后的魅力所在

在当今的电子信息时代&#xff0c;随着科技的飞速发展&#xff0c;电路设计与仿真软件在教育领域的应用越来越广泛。特别是SmartEDA这款电路仿真软件&#xff0c;以其强大的功能和直观易用的操作界面&#xff0c;赢得了众多教师的青睐。那么&#xff0c;究竟是什么原因让SmartE…

给汉字注音可以主要拼音不要声调吗?这两个注音小技巧你一定会需要

一&#xff0c;前言 在中文学习中&#xff0c;拼音是一种非常重要的工具&#xff0c;它帮助学习者正确地发音和理解汉字。然而&#xff0c;在拼音的使用中&#xff0c;一个常见的问题是是否应该包含声调。有些人认为&#xff0c;只要拼音中有声母和韵母&#xff0c;就可以准确…

如何使用client-go构建pod web shell

代码示例及原理 原理是利用websocket协议实现对pod的exec登录&#xff0c;利用client-go构造与远程apiserver的长连接&#xff0c;将对pod容器的输入和pod容器的输出重定向到我们的io方法中&#xff0c;从而实现浏览器端的虚拟终端的效果消息体结构如下 type Connection stru…

苏州金龙何以成为塞尔维亚中国客车第一品牌?研发向上服务助力!

5月7日至8日&#xff0c;一场举世瞩目的会晤在塞尔维亚举行。作为塞尔维亚中国客车第一品牌&#xff0c;苏州金龙海格客车也为当地民众绿色公共出行提供了“中国力量”。 目前&#xff0c;苏州金龙海格客车在塞尔维亚保有量近200台&#xff0c;是在塞尔维亚保有量最大的中国客车…

鸿蒙OpenHarmony开发板【快速入门】大合集

快速入门 快速入门概述 基于IDE入门 搭建开发环境 搭建Windows环境搭建Ubuntu环境配置远程访问环境创建工程并获取源码 轻量系统&#xff08;基于Hi3861开发板&#xff09; 编写“Hello World”程序编译烧录运行 小型系统&#xff08;基于Hi3516开发板&#xff09; 编写“Hell…

上海计算机学会2023年8月月赛C++丙组T2下降幂多项式

题目描述 x 的 k 次下降幂定义为 x 的下降幂多项式是由 x 的一组下降幂及系数组成的算式&#xff1a; 给定下降幂多项式 f(x) 的系数 an​,an−1​,⋯,a0​ 与一个值 m&#xff0c;请计算f(m)mod1,000,000,007。 输入格式 第一行&#xff1a;两个整数 n 与 m第二行&#xff…

数据库加密数据模糊匹配查询技术方案

文章目录 前言沙雕方案内存加载解密密文映射表 常规做法实现数据库加密算法参考 分词组合加密&#xff08;推荐&#xff09; 超神方案总结个人简介 前言 在数据安全性和查询效率之间找到平衡是许多数据管理系统所面临的挑战之一。特别是在涉及加密数据的情况下&#xff0c;如何…

数据结构之单链表的基本操作

目录 一.定义一个单链表 二.实现基本操作 1&#xff09;链表的打印 2&#xff09;链表的尾插 3&#xff09;链表的头插 4&#xff09;链表的尾删 5&#xff09;链表的头删 6&#xff09; 链表的查找 7&#xff09;在指定位置之前插入数据 8&#xff09;在指定位置之…

Android 11 输入系统之InputDispatcher和应用窗口建立联系

InputDispatcher把输入事件传给应用之前&#xff0c;需要和应用窗口建立联系&#xff0c;了解了这个过程&#xff0c;就清楚了APP进程和InputDispatcher线程也就是SystemServer进程之间是如何传输数据了 我们向窗口addView的时候&#xff0c;都会调用到ViewRootImpl的setView方…

电脑文件加密软件有哪些?口碑、安全性最好的文件加密软件

某企业的一位员工因不慎将包含敏感客户数据的电脑丢失&#xff0c;导致企业面临巨大的法律风险和经济损失。 这一事件凸显了电脑文件加密的必要性。 如果该企业事先采用了文件加密软件对敏感数据进行保护&#xff0c;即使电脑丢失&#xff0c;攻击者也无法轻易获取到文件内容…

eve 导入linux

mkdir /opt/unetlab/addons/qemu/linux-centos7 cd /opt/unetlab/addons/qemu/linux-centos7 上传hda.qcow2 /opt/unetlab/wrappers/unl_wrapper -a fixpermissions Linux images - (eve-ng.net) Due to very high demand of this section and problems with how to crea…