插件 〉LLM
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
在 Grafana Cloud 实例上安装插件是一键完成的;更新也是一样。很棒,对吧?
请注意,插件可能需要长达 1 分钟才能在您的 Grafana 中显示。
在 Grafana Cloud 实例上安装插件是一键完成的;更新也是一样。很棒,对吧?
请注意,插件可能需要长达 1 分钟才能在您的 Grafana 中显示。
在 Grafana Cloud 实例上安装插件是一键完成的;更新也是一样。很棒,对吧?
请注意,插件可能需要长达 1 分钟才能在您的 Grafana 中显示。
在 Grafana Cloud 实例上安装插件是一键完成的;更新也是一样。很棒,对吧?
请注意,插件可能需要长达 1 分钟才能在您的 Grafana 中显示。
在 Grafana Cloud 实例上安装插件是一键完成的;更新也是一样。很棒,对吧?
请注意,插件可能需要长达 1 分钟才能在您的 Grafana 中显示。
在 Grafana Cloud 实例上安装插件是一键完成的;更新也是一样。很棒,对吧?
请注意,插件可能需要长达 1 分钟才能在您的 Grafana 中显示。
在 Grafana Cloud 实例上安装插件是一键完成的;更新也是一样。很棒,对吧?
请注意,插件可能需要长达 1 分钟才能在您的 Grafana 中显示。
有关更多信息,请访问关于 插件安装 的文档。
在本地 Grafana 上安装
对于本地实例,插件通过简单的 CLI 命令进行安装和更新。插件不会自动更新,但是当有更新可用时,您将在 Grafana 中收到通知。
1. 安装应用
使用 grafana-cli 工具从命令行安装 LLM
grafana-cli plugins install
插件将安装到您的 grafana 插件目录;默认是 /var/lib/grafana/plugins。有关 cli 工具的更多信息。
2. 启用它
接下来,登录您的 Grafana 实例。导航到插件部分,可在 Grafana 主菜单中找到。
点击 Apps 选项卡,然后在插件部分选择新安装的应用。
要启用该应用,请点击 Config 选项卡。按照应用提供的说明点击“启用”。该应用和任何新的 UI 页面现在可从主菜单中访问,这是由应用创建者设计的。
如果应用中包含仪表盘,它们将尝试自动安装。要查看、重新导入或删除单个仪表盘,请点击 Dashboards 选项卡。
更新日志
未发布
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
- 重大变更:使用
base
和large
模型名称代替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