插件 〉LLM


开发者

Grafana

注册以接收不定期产品新闻和更新



应用
grafana

LLM

  • 概览
  • 安装
  • 更新日志
  • 相关内容

Grafana LLM 应用(公开预览版)

此 Grafana 应用插件集中管理 Grafana 中对 LLM 的访问。

它负责

  • 存储 LLM 提供商的 API 密钥
  • 通过身份验证代理对 LLM 的请求,以便其他 Grafana 组件无需存储 API 密钥
  • 提供 LLM 提供商(即 OpenAI)流式响应的 Grafana Live 流
  • 提供基于 LLM 的扩展,以增强 Grafana 的扩展点(例如,“解释此面板”)



未来功能将包括

  • 支持更多 LLM 提供商,包括运行时选择自己的提供商的能力
  • 对 LLM 请求进行速率限制,用于成本控制
  • 令牌和成本估算
  • RBAC(基于角色的访问控制)以仅允许特定用户使用 LLM 功能



注意:Grafana LLM 应用插件目前处于 公开预览版。Grafana Labs 提供尽力而为的支持,并且在该功能正式发布之前可能存在重大变更。

面向用户

Grafana Cloud:LLM 应用插件已为所有用户安装,但 LLM 功能默认禁用。要启用 LLM 功能,请在插件配置中选择“通过 Grafana 启用 OpenAI 访问”。

OSS 或 Enterprise:使用您的 OpenAI 兼容 API 密钥安装和配置此插件,以在 Grafana 中启用 LLM 支持的功能。

有关更详细的设置说明,请参阅 LLM 插件 机器学习部分的。

这包括 Grafana 本身内部的新功能,例如解释面板,或插件中的功能,例如自动化事件摘要、火焰图和 Sift 错误日志的 AI 助手等。

所有 LLM 请求都将通过此插件路由,这确保了使用了正确的 API 密钥并正确路由了请求。

面向插件开发者

此插件不用于直接交互;相反,请使用 @grafana/llm 包中的便利函数,如果此插件已安装,它们将与此插件通信。

工作示例可在 '@grafana/llm README' 和 DevSandbox.tsx 类中找到。

首先,将最新版本的 @grafana/llm 添加到 package.json 中的依赖项中

{
  "dependencies": {
    "@grafana/llm": "0.8.0"
  }
}

然后在您的组件中,您可以使用 llm 对象,来自 @grafana/llm,如下所示

import React, { useState } from 'react';
import { useAsync } from 'react-use';
import { scan } from 'rxjs/operators';

import { llms } from ‘@grafana/llm’; import { PluginPage } from ‘@grafana/runtime’;

import { Button, Input, Spinner } from ‘@grafana/ui’;

const MyComponent = (): JSX.Element => { const [input, setInput] = React.useState(’’); const [message, setMessage] = React.useState(’’); const [reply, setReply] = useState(’’);

const { loading, error } = useAsync(async () => { const enabled = await llms.openai.enabled(); if (!enabled) { return false; } if (message === ‘’) { return; } // Stream the completions. Each element is the next stream chunk. const stream = llms.openai .streamChatCompletions({ model: llms.openai.Model.BASE messages: [ { role: ‘system’, content: ‘You are a helpful assistant with deep knowledge of the Grafana, Prometheus and general observability ecosystem.’ }, { role: ‘user’, content: message }, ], }) .pipe( // Accumulate the stream chunks into a single string. scan((acc, delta) => acc + delta, ‘’) ); // Subscribe to the stream and update the state for each returned value. return stream.subscribe(setReply); }, [message]);

if (error) { // TODO: handle errors. return null; }

return ( <div> <Input value={input} onChange={(e) => setInput(e.currentTarget.value)} placeholder=“Enter a message” /> <br /> <Button type=“submit” onClick={() => setMessage(input)}> Submit </Button> <br /> <div>{loading ? <Spinner /> : reply}</div> </div> ); };

在 Grafana Cloud 上安装 LLM

有关更多信息,请访问关于 插件安装 的文档。

更新日志

未发布

0.17.0

  • bug: 确保 Anthropic 的消息中至少有一条具有用户角色,由 @edwardcqian 在 #629 中完成
  • 更新模型默认设置,由 @csmarchbanks 在 #632 和 #635 中完成
    • 基础模型:gpt-4o-mini 更新为 gpt-4.1-mini
    • 大型模型:gpt-4o 更新为 gpt-4.1

0.16.0

  • chore: 将 github.com/grafana/mcp-grafana 提升至 0.2.4,由 @sd2k 在 #618 中完成。这增加了更多工具来检索仪表盘和 OnCall 详细信息。
  • 切换到 Anthropic 的 OpenAI 兼容 API,由 @gitdoluquita 在 #617 中完成。此 PR 还添加了 helper 函数,用于通过流式端点执行工具调用。

0.15.0

  • 移除 README.md 中关于公开预览的提及,由 @Maurice-L-R 在 #610 中完成
  • 提升完整次版本以发布新版本,以便我们可以发布脱离公开预览的版本,由 @SandersAaronD 在 #612 中完成

0.14.1

  • fix: 改进开发者沙盒提示,由 @sd2k 在 #598 中完成
  • workaround: 通过 Websocket 发送发布消息,由 @sd2k 在 #601 中完成
  • fix: 在可能的情况下,使用公共 API 进行发布,由 @sd2k 在 #603 中完成
  • fix: 检查发布中的参数是否 >= 3,而不是 === 3,由 @sd2k 在 #604 中完成
  • chore: 将 github.com/grafana/mcp-grafana 提升至 0.2.2,由 @sd2k 在 #605 中完成
  • chore: 添加 CODEOWNERS,由 @sd2k 在 #607 中完成

0.14.0

  • 允许通过 jsonData 启用开发者沙盒,由 @csmarchbanks 在 #595 中完成
  • feat: 在后端使用 Grafana Live 运行 MCP 服务器,由 @sd2k 在 #574 中完成
  • feat: 将 MCP helper 函数添加到 @grafana/llm 包中,由 @sd2k 在 #590 中完成

0.13.2

  • docs: 添加实现新 LLM 提供商的指南,由 @gitdoluquita 在 #573 中完成
  • Bug: 为向后兼容性复制健康检查详细信息,由 @edwardcqian 在 #585 中完成

0.13.1

  • 更新 plugin-release 中的 action 版本,由 @csmarchbanks 在 #577 中完成
  • fix: 更新 build:all 命令以同时构建插件前端,由 @sd2k 在 #578 中完成

0.12.0

  • 添加对 OpenAI assistant 功能的支持
  • 升级各种依赖项

0.11.0

  • 更新模型默认设置
    • 基础模型:gpt-3.5-turbo 更新为 gpt-4o-mini
    • 大型模型:gpt-4-turbo 更新为 gpt-4o

0.10.9

  • 更新关于 OpenAI 和开放模型的措辞
  • 更新 LLM 设置说明

0.10.8

  • 升级各种依赖项以修复安全问题(例如 #446)

0.10.7

  • 为流请求使用非加密 UUID 生成 #409

0.10.6

  • 修复了无法修复已保存的无效 OpenAI url 的 bug (#405)

0.10.1

  • 设置:区分禁用和未配置 (#350)

0.10.0

  • 重大变更:使用 baselarge 模型名称代替 small/medium/large (#334)
  • 重大变更:从 @grafana/llm 包中移除函数调用参数 (#343)
  • 允许自定义抽象模型与提供商模型之间的映射以及默认模型 (#337, #338, #340)
  • 使 chat completions 和 chat completion stream 端点的 model 字段变为可选 (#341)
  • 不要预加载插件,以免减慢 Grafana 加载时间 (#339)

0.9.1

  • 修复通过资源端点发起的流式请求的处理 (#326)

0.9.0

  • 抽象模型的初始后端支持 (#315)

0.8.6

  • 修复流 EOF 导致的 panic (#308)

0.8.5

  • 添加了一个 displayVectorStoreOptions 标志,用于选择性地显示向量存储配置

0.8.1

  • 添加侧信道攻击缓解措施

0.7.0

  • 将仓库重构为 monorepo,包含前端依赖项
  • 为开发前端依赖项创建开发者沙盒
  • 将 CI/CD 切换到 GitHub Actions

0.6.4

  • 修复 Grafana 管理的 LLM 对 OpenAI 的资源调用会失败的 bug

0.6.3

  • 修复其他 UI bug
  • 修复即使 LLM 已禁用,健康检查也返回 true 的问题

0.6.2

  • 修复 0.6.1 版本引入的 OpenAI 提供商相关的 UI 问题

0.6.1

  • 在 ML 云后端数据库中存储 Grafana 管理的 OpenAI 选择加入状态(仅限 Grafana Cloud)
  • 更新了 Grafana 管理的 OpenAI 选择加入消息(仅限 Grafana Cloud)
  • LLM 提供商选择的 UI 更新

0.6.0

  • 添加 Grafana 管理的 OpenAI 作为提供商选项(仅限 Grafana Cloud)

0.5.2

  • 允许在配置 UI 中配置 Qdrant API 密钥,而不仅限于配置时

0.5.1

  • 修复临时错误被缓存导致 /health 永久失败的问题。

0.5.0

  • 为 VectorAPI 添加基本认证

0.4.0

  • 在配置 UI 中为向量服务添加“已启用”开关
  • 添加了使用示例应用进行开发的说明
  • 改进健康检查以返回更详细的信息
  • 添加对过滤向量搜索的支持
  • 改进向量服务健康检查

0.3.0

  • 添加 Go 包,提供一个 OpenAI 客户端,用于从后端 Go 代码中使用 LLM 应用
  • 添加对 Azure OpenAI 的支持。必须将插件配置为使用 OpenAI,并提供 OpenAI 模型名称和 Azure 部署名称之间的映射关系
  • 将流式错误作为流的一部分返回,格式为 {"error": "<错误消息>"} 等对象

0.2.1

  • 改进健康检查端点以包含各种功能的状态
  • 更改 chat completions 流的路径处理方式,将单独的请求放入单独的流中。现在请求可以将 UUID 作为路径后缀传递,但也向后兼容旧版本的前端代码。

0.2.0

  • 暴露向量搜索 API,使用可配置的 embeddings 源对向量数据库执行语义搜索

0.1.0

  • 支持将来自 Grafana 的 LLM 请求代理到 OpenAI