Документация по LLMTracer
Модуль LLMTracer предназначен для трассировки запросов к LLM, а также для сбора статистики по токенам, времени выполнения и ошибкам. Все данные записываются в таблицу llm_tracer.
Класс: Session
Подключается через
let LLMTracer = require("Common.AIHelpers.LLMTracer")
createSession(options)
Создаёт новую сессию трассировки.
Пример:
let session = LLMTracer.createSession({
business_id: "123",
bot_id: "456",
lead_id: "789",
script_id: "script_1",
command_id: "cmd_1",
agent_name: "MyAgent",
provider: "OpenAI",
model: "gpt-4"
})
Параметры:
| Имя | Тип | Описание |
|---|---|---|
| business_id | String | Идентификатор бизнеса |
| bot_id | String | Идентификатор бота |
| lead_id | String | Идентификатор лида |
| script_id | String | Идентификатор скрипта |
| command_id | String | Идентификатор команды |
| agent_name | String | Имя агента |
| provider | String | Название провайдера LLM |
| model | String | Название модели LLM |
Return
Session — Экземпляр сессии трассировки.
getCurrentSession()
Получает текущую сессию из атрибута лида.
Пример:
let session = LLMTracer.getCurrentSession()
Параметры:
Нет
Return
Session | null — Текущий объект сессии или null, если не найден.
prepareRecordData(data)
Преобразует данные в безопасный формат для записи в таблицу.
Пример:
let safeData = LLMTracer.prepareRecordData({ message: "Тест", status: "ok" })
Параметры:
| Имя | Тип | Описание |
|---|---|---|
| data | Object | Объект с исходными данными |
Return
Object — Объект с преобразованными значениями.
recordTrace(traceData)
Записывает трассировку в таблицу llm_tracer.
Пример:
LLMTracer.recordTrace({
agent_name: "MyAgent",
outclient_name: "ClientA",
step: "step1",
outclient_time: 120,
provider: "OpenAI",
model: "gpt-4",
type: "info",
message: "Запрос выполнен",
record: {},
params: {},
status: "ok",
input_tokens: 100,
output_tokens: 50
})
Параметры:
| Имя | Тип | Описание |
|---|---|---|
| agent_name | String | Имя агента |
| outclient_name | String | Имя внешнего клиента |
| step | String | Название шага |
| outclient_time | Number | Время выполнения шага (мс) |
| provider | String | Название провайдера LLM |
| model | String | Название модели LLM |
| type | String | Тип трассировки (info, error и др.) |
| message | String | Сообщение |
| record | Object | Дополнительные данные |
| params | Object | Параметры запроса |
| status | String | Статус выполнения |
| input_tokens | Number | Количество входных токенов |
| output_tokens | Number | Количество выходных токенов |
Return
Boolean — true при успехе, false при ошибке.
recordTraceLLM(llm, timerCtrl, traceData)
Записывает трассировку по активному LLMClient.
Пример:
LLMTracer.recordTraceLLM(llmClient, "START_TIME", { message: "Старт" })
Параметры:
| Имя | Тип | Описание |
|---|---|---|
| llm | Object | Экземпляр LLMClient |
| timerCtrl | String | Контроллер времени ("", "START_TIME", "END_TIME") |
| traceData | Object | Дополнительные параметры трассировки |
Return
Boolean — true при успехе, false при ошибке.
recordTraceQuery(llm, timerCtrl, traceData)
Записывает трассировку для запросов к внешним сервисам.
Пример:
LLMTracer.recordTraceQuery(llmClient, "END_TIME", { message: "Финиш" })
Параметры:
| Имя | Тип | Описание |
|---|---|---|
| llm | Object | Экземпляр LLMClient |
| timerCtrl | String | Контроллер времени ("", "START_TIME", "END_TIME") |
| traceData | Object | Дополнительные параметры трассировки |
Return
Boolean — true при успехе, false при ошибке.
info(message, data)
Записывает информационную трассировку.
Пример:
LLMTracer.info("Запрос выполнен", { step: "step1" })
Параметры:
| Имя | Тип | Описание |
|---|---|---|
| message | String | Текст сообщения |
| data | Object | Дополнительные данные |
Return
Boolean — true при успехе, false при ошибке.
error(message, data)
Записывает ошибку в трассировку и отправляет сообщение админу.
Пример:
LLMTracer.error("Ошибка запроса", { code: 500 })
Параметры:
| Имя | Тип | Описание |
|---|---|---|
| message | String | Текст ошибки |
| data | Object | Дополнительные данные |
Return
Boolean — true при успехе, false при ошибке.
countTokens(dateRange)
Подсчитывает количество токенов за указанный период.
Пример:
LLMTracer.countTokens({ from: "2024-06-01 00:00:00", to: "2024-06-30 23:59:59" })
Параметры:
| Имя | Тип | Описание |
|---|---|---|
| from | String | Начальная дата ("YYYY-MM-DD HH:MM:SS") |
| to | String | Конечная дата |
Return
Object — { input_tokens, output_tokens, total_tokens }
getActiveSessionsCount(minutes)
Подсчитывает количество активных сессий за последние N минут.
Пример:
LLMTracer.getActiveSessionsCount(10)
Параметры:
| Имя | Тип | Описание |
|---|---|---|
| minutes | Number | Глубина окна в минутах (по умолчанию 5) |
Return
Number — Количество активных сессий.
Быстрый старт
- Создайте сессию:
LLMTracer.createSession({ ... }) - Запишите шаг:
LLMTracer.recordTrace({ ... }) - Для LLM: используйте
recordTraceLLM() - Для ошибок: используйте
error() - Для статистики: используйте
countTokens()
Нет комментариев