Найти в Дзене
SkyNet | Новости ИИ

Как создать полностью автономного агента для анализа технического обслуживания местного автопарка с помощью SmolAgents и модели Qwen

В этом руководстве мы рассмотрим процесс создания полностью автономного агента для анализа технического обслуживания автопарка с использованием SmolAgents и локальной модели Qwen. Мы генерируем данные телеметрии, загружаем их с помощью специального инструмента и позволяем нашему агенту анализировать риски технического обслуживания без обращений к внешним API. На каждом этапе реализации мы видим, как агент интерпретирует структурированные журналы, применяет логические фильтры, обнаруживает аномалии и, наконец, выдаёт чёткое визуальное предупреждение для менеджеров автопарка. Установка библиотек Мы устанавливаем все необходимые библиотеки и импортируем основные модули, которые мы используем для создания нашего агента. Мы настраиваем SmolAgents, Transformers и базовые инструменты для обработки телеметрии и бесперебойной работы локальной модели. На этом этапе мы подготавливаем нашу среду и проверяем правильность загрузки всех компонентов перед тем, как двигаться дальше. ```python import

Как создать полностью автономного агента для анализа технического обслуживания местного автопарка с помощью SmolAgents и модели Qwen

В этом руководстве мы рассмотрим процесс создания полностью автономного агента для анализа технического обслуживания автопарка с использованием SmolAgents и локальной модели Qwen. Мы генерируем данные телеметрии, загружаем их с помощью специального инструмента и позволяем нашему агенту анализировать риски технического обслуживания без обращений к внешним API. На каждом этапе реализации мы видим, как агент интерпретирует структурированные журналы, применяет логические фильтры, обнаруживает аномалии и, наконец, выдаёт чёткое визуальное предупреждение для менеджеров автопарка.

Установка библиотек

Мы устанавливаем все необходимые библиотеки и импортируем основные модули, которые мы используем для создания нашего агента. Мы настраиваем SmolAgents, Transformers и базовые инструменты для обработки телеметрии и бесперебойной работы локальной модели. На этом этапе мы подготавливаем нашу среду и проверяем правильность загрузки всех компонентов перед тем, как двигаться дальше.

```python

import os

import pandas as pd

import matplotlib.pyplot as plt

from smolagents import CodeAgent, Tool, TransformersModel

```

Генерация данных

Мы генерируем фиктивный набор данных для автопарка, который наш агент будет анализировать. Мы создаём небольшой, но реалистичный набор полей телеметрии, преобразуем его в DataFrame и сохраняем в виде CSV-файла. Здесь мы создаём основной источник данных, который управляет рассуждениями и прогнозами агента.

```python

fleet_data = {

"truck_id": ["T-101", "T-102", "T-103", "T-104", "T-105"],

"driver": ["Ali", "Sara", "Mike", "Omar", "Jen"],

"avgspeedkmh": [65, 70, 62, 85, 60],

"fuelefficiencykml": [3.2, 3.1, 3.3, 1.8, 3.4],

"enginetempc": [85, 88, 86, 105, 84],

"lastmaintenancedays": [30, 45, 120, 200, 15]

}

df = pd.DataFrame(fleet_data)

df.tocsv("fleetlogs.csv", index=False)

print(" 'fleet_logs.csv' created.")

```

Определение инструмента для загрузки данных

Мы определяем FleetDataTool, который действует как мост между агентом и базовым файлом телеметрии. Мы даём агенту возможность загружать и проверять CSV-файл, чтобы понять его структуру. Этот инструмент становится основой для каждого последующего анализа, который выполняет модель.

```python

class FleetDataTool(Tool):

name = "loadfleetlogs"

description = "Loads vehicle telemetry logs from 'fleet_logs.csv'. Returns the data summary."

inputs = {}

output_type = "string"

def forward(self):

try:

df = pd.readcsv("fleetlogs.csv")

return f"Columns: {list(df.columns)}\nData Sample:\n{df.to_string()}"

except Exception as e:

return f"Error loading logs: {e}"

```

Загрузка локальной модели

Мы загружаем локальную модель Qwen2.5 и инициализируем нашего CodeAgent с помощью специального инструмента. Затем мы создаём подробный запрос, в котором описываем шаги рассуждений, которым мы хотим, чтобы агент следовал, и выполняем его от начала до конца.

```python

print(" Downloading & Loading Local Model (...

Читать далее