|
最新快照版本请使用Spring AI 1.1.0! |
可观察性
Spring AI 基于 Spring 生态系统中的可观测特性,提供关于 AI 相关运营的洞察。
Spring AI 为其核心组件提供指标和追踪功能:聊天客户端(包括顾问),聊天模型,嵌入模型,图像模型和VectorStore.
| 低基数键将被添加到度量和跟踪中,而高基数键只会添加到轨迹中。 |
|
1.0.0-RC1 重大变更 以下配置属性已重新命名以更好地反映其用途:
|
聊天客户端
这spring.ai.chat.client当聊天客户端记录观察结果时call()或stream()作被调用。
它们测量执行调用的时间,并传播相关的追踪信息。
| 名称 | 描述 |
|---|---|
|
总是 |
|
总是 |
|
聊天模型的响应是流吗—— |
|
Spring AI 中的框架 API 类型: |
| 名称 | 描述 |
|---|---|
|
提示内容通过聊天客户端发送。自选。 |
|
导师参数地图。对话ID现在包含在 |
|
配置的聊天客户端顾问列表。 |
|
使用聊天内存时的对话标识符。 |
|
聊天客户端系统参数。自选。被 |
|
聊天客户端系统文本。自选。被 |
|
启用工具功能名称。被 |
|
配置好的聊天客户端函数回调列表。被 |
|
工具名称传递给聊天客户端。 |
|
聊天客户端用户参数。自选。被 |
|
聊天客户端用户文本。自选。被 |
提示内容
这聊天客户端提示内容通常较大,可能包含敏感信息。
因此,默认情况下不会导出。
Spring AI 支持记录提示内容,以帮助调试和排查。
| 属性 | 描述 | 默认值 |
|---|---|---|
|
是否记录聊天客户端的提示内容。 |
|
| 如果你启用了聊天客户端提示内容的日志,就有可能暴露敏感或私密信息。请小心! |
输入数据(已弃用)
这spring.ai.chat.client.observations.include-input属性被弃用,替换为spring.ai.chat.client.observations.log提示词.参见提示内容。 |
这聊天客户端输入数据通常较大,可能包含敏感信息。
因此,默认情况下不会导出。
Spring AI 支持记录输入数据,以帮助调试和排查。
| 属性 | 描述 | 默认值 |
|---|---|---|
|
是否将输入内容纳入观测。 |
|
| 如果你启用了将输入内容纳入观测数据,就有可能暴露敏感或私人信息。请小心! |
聊天客户端顾问
这春.ai.advisor当顾问被处决时,观察数据会被记录下来。
它们测量在顾问身上花费的时间(包括在内顾问身上的时间),并传播相关的追踪信息。
| 名称 | 描述 |
|---|---|
|
总是 |
|
总是 |
|
当顾问在请求处理中应用其逻辑时,其中之一 |
|
Spring AI 中的框架 API 类型: |
| 名称 | 描述 |
|---|---|
|
导师的名字。 |
|
顾问链中的顾问顺序。 |
聊天模式
可观测性功能目前仅支持聊天模型以下AI模型的实现
提供方:Anthropic、Azure OpenAI、Mistral AI、Ollama、OpenAI、Vertex AI、MiniMax、Moonshot、QianFan、Zhipu AI。
未来版本将支持更多AI模型提供商。 |
这gen_ai.client.operation调用聊天模型时会记录观察结果叫或流方法。 它们测量方法完成所花费的时间,并传播相关的追踪信息。
这gen_ai.client.token.usage度量衡量单个模型调用所使用的输入和输出Tokens数量。 |
| 名称 | 描述 |
|---|---|
|
正在执行的行动名称。 |
|
由客户端仪器识别的模型提供者。 |
|
请求对象的型号名称。 |
|
产生反应的模型名称。 |
| 名称 | 描述 |
|---|---|
|
模型请求的频率惩罚设置。 |
|
模型为请求生成的最大Tokens数。 |
|
模型请求的存在惩罚设置。 |
|
模型将用于停止生成更多Tokens的序列列表。 |
|
模型请求的温度设置。 |
|
模型请求的top_k采样设置。 |
|
模型请求的top_p采样设置。 |
|
模型停止生成Tokens的原因,对应每代收到的Tokens。 |
|
AI响应的唯一标识符。 |
|
模型输入(提示词)中使用的Tokens数量。 |
|
模型输出中使用的标记数(完成)。 |
|
模型交换中使用的Tokens总数。 |
|
完整的提示词发给了模特。自选。 |
|
模型收到了完整的回复。 自选。 |
|
请求中提供给模型的工具定义列表。 |
对于测量用户标记,前表列出了观察痕迹中的值。
使用度量名称gen_ai.client.token.usage由聊天模型. |
聊天提示和完成信息
聊天提示和完成数据通常很大,可能包含敏感信息。因此,默认不会导出。
Spring AI 支持记录聊天提示和完成数据,这对故障排除场景非常有用。当可追踪时,日志将包含轨迹信息以更好地对应。
| 属性 | 描述 | 默认值 |
|---|---|---|
|
记录提示内容。 |
|
|
记录完成内容。 |
|
|
在观测中包含错误记录。 |
|
| 如果你启用了聊天提示和完成数据的日志,可能会暴露敏感或隐私信息。请务必小心! |
工具调用
这spring.ai.tool在聊天模型交互中执行工具调用时,会记录观察数据。它们测量通话完成的时间,并传播相关的追踪信息。
| 名称 | 描述 |
|---|---|
|
正在执行的手术名称。总是这样 |
|
负责手术的提供者。总是这样 |
|
SpringAI执行的那种作。总是这样 |
|
工具的名字。 |
名称 |
描述 |
|
工具描述。 |
|
调用工具所用参数的结构。 |
|
工具调用的输入参数。(仅在启用时) |
|
用于调用工具的参数模式。(仅在启用时) |
嵌入模型
可观测性功能目前仅支持嵌入模型以下平台的实现AI模型提供商:Azure OpenAI、Mistral AI、Ollama和OpenAI。未来版本还将支持更多AI模型提供商。 |
这gen_ai.client.operation观察数据记录在嵌入模型方法调用中。它们测量方法完成所花费的时间,并传播相关的追踪信息。
这gen_ai.client.token.usage度量衡量单个模型调用所使用的输入和输出Tokens数量。 |
| 名称 | 描述 |
|---|---|
|
正在执行的行动名称。 |
|
由客户端仪器识别的模型提供者。 |
|
请求对象的型号名称。 |
|
产生反应的模型名称。 |
| 名称 | 描述 |
|---|---|
|
输出嵌入所具有的维数。 |
|
模型输入中使用的Tokens数量。 |
|
模型交换中使用的Tokens总数。 |
对于测量用户标记,前表列出了观察痕迹中的值。
使用度量名称gen_ai.client.token.usage由嵌入模型. |
图像模型
可观测性功能目前仅支持图像模型以下AI模型的实现提供者:OpenAI。未来版本将支持更多AI模型提供者。 |
这gen_ai.client.operation观测数据记录在图像模型方法调用中。
它们测量方法完成所花费的时间,并传播相关的追踪信息。
这gen_ai.client.token.usage度量衡量单个模型调用所使用的输入和输出Tokens数量。 |
| 名称 | 描述 |
|---|---|
|
正在执行的行动名称。 |
|
由客户端仪器识别的模型提供者。 |
|
请求对象的型号名称。 |
| 名称 | 描述 |
|---|---|
|
生成图像返回的格式。 |
|
生成图像的大小。 |
|
生成图像的风格。 |
|
AI响应的唯一标识符。 |
|
产生反应的模型名称。 |
|
模型输入(提示词)中使用的Tokens数量。 |
|
模型输出(生成)中使用的Tokens数量。 |
|
模型交换中使用的Tokens总数。 |
|
完整的提示词发给了模特。自选。 |
对于测量用户标记,前表列出了观察痕迹中的值。
使用度量名称gen_ai.client.token.usage由图像模型. |
向量存储器
Spring AI 中的所有向量存储实现都配备了通过 Micrometer 提供指标和分布式追踪数据的仪器。
这db.vector.client.operation观测数据在与向量存储交互时被记录。
他们测量的是在查询,加和删除作并传播相关的追踪信息。
| 名称 | 描述 |
|---|---|
|
正在执行的作或命令名称。其中之一 |
|
数据库管理系统(DBMS)产品由客户端的仪器标识。其中之一 |
|
Spring AI 中的框架 API 类型: |
| 名称 | 描述 |
|---|---|
|
数据库中集合(表、容器)的名称。 |
|
数据库名称,完全限定服务器地址和端口。 |
|
如果有记录标识符。 |
|
相似性搜索中使用的指标。 |
|
向量的维数。 |
|
向量的名称域(例如字段名)。 |
|
正在执行的搜索查询内容。 |
|
搜索查询中使用的元数据过滤器。 |
|
通过相似性搜索查询返回了文档。自选。 |
|
接受所有搜索分数的相似度阈值。阈值为0.0表示接受任何相似性,或禁用相似阈值过滤。阈值为1.0意味着需要完全匹配。 |
|
查询返回的前k个最相似向量。 |
更多指标参考
本节记录了 Spring AI 组件在 Prometheus 中所发出的指标。
度规命名规范
Spring AI 使用了 Micrometer。基础度量名称使用点(例如,gen_ai.client.operation),普罗米修斯导出时带有下划线和标准后缀:
-
计时器→
<基地>_seconds_count,<基地>_seconds_sum,<基地>_seconds_max,以及(支持时)<基地>_active_count -
计数器→
<基地>_total(单调)
|
以下展示了基度度量名称如何扩展到普罗米修斯时间序列。
|
引用
-
OpenTelemetry — 生成式人工智能的语义约定(概述)
-
Micrometer — 命名仪表
聊天客户端指标
| 公制名称 | 类型 | 单位 | 描述 |
|---|---|---|---|
|
定时器 |
秒 |
ChatClient作(通话/流)的总时间 |
|
计数器 |
计数 |
已完成的ChatClient作次数 |
|
轨距 |
秒 |
ChatClient作的最大观察时长 |
|
轨距 |
计数 |
目前运行中的ChatClient作数量 |
活跃 vs 完成:active_count播出机上通话;这_秒系列仅反映已完成的通话。
聊天模型度量(模型提供者执行)
| 公制名称 | 类型 | 单位 | 描述 |
|---|---|---|---|
|
定时器 |
秒 |
聊天模型作的总执行时间 |
|
计数器 |
计数 |
完成的聊天模型作数量 |
|
轨距 |
秒 |
聊天模型作的最大观测持续时间 |
|
轨距 |
计数 |
目前运行中的聊天模型作数量 |