LLMTracer - Плагин для трассировки запросов к LLM
Описание
LLMTracer - это модуль для трассировки запросов к языковым моделям (LLM) и внешним сервисам. Он позволяет записывать данные о запросах, ответах, ошибках и использовании токенов в таблицу llm_tracer.
Установка
Импортируйте модуль в ваш код:
const LLMTracer = require('Common.Platform.LLMTracer');
Основные возможности
- Создание сессий трассировки
- Запись информационных сообщений
- Запись ошибок
- Подсчет использованных токенов за указанный период
Быстрый старт
1. Создание сессии трассировки
// Создание сессии с параметрами по умолчанию
const session = LLMTracer.createSession();
// Создание сессии с указанием параметров
const session = LLMTracer.createSession({
agent_name: "ChatGPT Assistant",
provider: "OpenAI",
model: "gpt-4"
});
Параметры:
options(Object) - Параметры сессииbusiness_id(string|number) - ID бизнесаbot_id(string|number) - ID ботаlead_id(string|number) - ID лидаscript_id(string|number) - ID скриптаcommand_id(string|number) - ID командыagent_name(string) - Имя агентаprovider(string) - Провайдер LLMmodel(string) - Модель LLM
2. Прямая запись трассировки
// Прямая запись трассировки с указанием всех параметров
LLMTracer.recordTrace({
outclient_name: "OpenAI API",
step: 1,
outclient_time_sec: 2.5,
provider: "OpenAI",
model: "gpt-4",
type: "info",
message: "Запрос выполнен",
status: "success",
input_tokens: 150,
output_tokens: 50
});
Параметры:
traceData(Object) - Данные для записи в таблицуoutclient_name(string) - Имя внешнего клиентаstep(number|string) - Шаг выполненияoutclient_time_sec(number) - Время выполнения запроса в секундахprovider(string) - Провайдер LLMmodel(string) - Модель LLMtype(string) - Тип записи (info, error)message(string) - Сообщениеrecord(string) - Дополнительные данные в формате JSONstatus(string|number) - Статус выполненияinput_tokens(number) - Количество входных токеновoutput_tokens(number) - Количество выходных токенов
3. Запись информационных сообщений
// Запись простого сообщения
LLMTracer.info("Запрос к LLM выполнен успешно");
// Запись сообщения с дополнительными данными
LLMTracer.info("Запрос к LLM выполнен успешно", {
outclient_name: "OpenAI API",
input_tokens: 150,
output_tokens: 50,
outclient_time_sec: 2.5
});
Параметры:
message(string) - Информационное сообщениеdata(Object) - Дополнительные данные для записиoutclient_name(string) - Имя внешнего клиентаstep(number|string) - Шаг выполненияoutclient_time_sec(number) - Время выполнения запроса в секундахprovider(string) - Провайдер LLMmodel(string) - Модель LLMstatus(string|number) - Статус выполненияinput_tokens(number) - Количество входных токеновoutput_tokens(number) - Количество выходных токенов
3. Запись ошибок
try {
// Ваш код...
} catch (error) {
LLMTracer.error("Ошибка при запросе к LLM", {
error_message: error.message,
outclient_name: "OpenAI API"
});
}
4. Подсчет токенов
// Подсчет токенов за все время
const allTokens = LLMTracer.countTokens();
debug(`Всего использовано токенов: ${allTokens.total_tokens}`);
// Подсчет токенов за определенный период
const tokensForPeriod = LLMTracer.countTokens({
from: "2023-01-01 00:00:00",
to: "2023-01-31 23:59:59"
});
debug(`Входящие токены: ${tokensForPeriod.input_tokens}`);
debug(`Исходящие токены: ${tokensForPeriod.output_tokens}`);
debug(`Всего токенов: ${tokensForPeriod.total_tokens}`);
Параметры:
dateRange(Object) - Объект с параметрами временного диапазонаfrom(string) - Начальная дата в формате "YYYY-MM-DD HH:MM:SS"to(string) - Конечная дата в формате "YYYY-MM-DD HH:MM:SS"
Возвращает: Объект с количеством токенов
input_tokens(number) - Количество входных токеновoutput_tokens(number) - Количество выходных токеновtotal_tokens(number) - Общее количество токенов
Структура таблицы llm_tracer
Модуль записывает данные в таблицу llm_tracer со следующими полями:
business_id- ID бизнесаlead_id- ID лидаscript_id- ID скриптаsession_id- ID сессииagent_name- Имя агентаoutclient_name- Имя внешнего клиентаstep- Шаг выполненияoutclient_time- Время выполнения запроса в секундахprovider- Провайдер LLMmodel- Модель LLMtype- Тип записи (info, error)message- Сообщениеrecord- Дополнительные данные в формате JSONstatus- Статус выполненияinput_tokens- Количество входных токеновoutput_tokens- Количество выходных токеновcreated_at- Дата и время создания записи (автоматически)
Импортировать таблицу можно по ссылке: https://stage.metabot.dev/business/export/1216/show?bots=&b_c=0&b_o=0&b_i=0&b_ls=0&b_r=0&b_s=0&b_li=0&b_t=0&b_br=0&b_aie=0&b_aee=0&b_sa=0&cts_llm_tracer=1&b_llm_tracer=1
Нет комментариев