Самое важное в жизни - красиво умереть! Вкатываемся в ML/AI!

01.07.26

Интеграция - Нейросети

Реальный ML там, где вы зачем-то используете AI. Вкатываемся под катом!

Слушайте, Джойс, — сказал Иван. — Вот русский мальчик спрашивает, что вы будете делать, когда разбогатеете? 
Ладно, — сказал он. — Я знаю, какого ответа ждёт мальчик. Поэтому спрошу я. Мальчик вырастет и станет взрослым мужчиной. Всю жизнь он будет заниматься своей… как это вы говорите… интересной работой. Но вот он состарится и не сможет больше работать. Чем тогда он будет заниматься, этот мальчик?
Я… не знаю, я как-то не думал… Я постараюсь умереть раньше, чем не смогу работать…
Брови бармена полезли на лоб, он испуганно оглянулся на Ивана. В полнейшем смятении Юра заявил:
И вообще я считаю, что самое важное в жизни для человека — это красиво умереть!

Стажеры, Стругацкие

Всем привет!

Вот и мне пришло время красиво умереть как 1С-негу, но это пока не точно. А красота требует жертв, поэтому я решил, что донесу до сообщества красивый проектик на стыке 1С и ML. Проектик классификации заявок ЖКХ.

 

КЛАССИФИКАЦИЯ ЗАЯВОК ЖКХ

Жизнь 1С-нега прекрасна, она изобилует желтым солнечным светом платформы в красных глазах после ночного обновления, т.к. реструктуризация до сих пор не влезает в нужные три секунды. Динамическое обновление чаще имеет признаки демонического, ибо никогда не знаешь, что там дальше. Поэтому финальная часть спринта заканчивается поставкой инкремента на прод в ноль часов, от чего глаза краснеют, и помочь им даже желтый цвет оформления продуктовой базы не в состоянии. Помимо прочего, от этого желтого начинает тошнить, а если вас тошнит, то что? Правильно - смените профиль! И тут на работе совершенно случайно образуется свободное время в количестве трех дней, ибо задачи сделаны, а новых нет. А если нет новых, то давайте их создадим!

Итак, о чем это я? Да, о заявках в ЖКХ, как поставщике неплохого грязного и шумного датасета для обучения модели. Зачем? Ну чтобы сонные диспетчера не елозили по стулу, силясь выбрать из расплодившейся номенклатуры услуг ту самую, притом частенько промахиваясь из-за дрожания руки. При этом промахиваясь очень избирательно и выбирая "консультация менеджера" вместо того, что стоило бы выбрать.

 

ВИЖУ ЦЕЛЬ - НЕ ВИЖУ ПРЕПЯТСТВИЙ!

Давайте сформулируем задачу: есть 10к заявок, в которых выбрана какая-то услуга, нужно собрать из этого датасет, обучить модель и запилить сервис инференса для классификации, чтобы диспетчер не просто выбирал услугу, а получал варианты услуг по тексту заявки с оценкой того, на сколько модель уверена в том, что сотворила.

 

ДАТАСЕТ

Начнем с элементарного - сохраним датасет, и это единственное, что тут будет на языке 1С:

Запрос = Новый Запрос(
  "ВЫБРАТЬ ТекстЗаявки, Услуга.Код ИЗ Документ.Заявка");

Датасет = Новый Массив;
Для Каждого Строка Из Запрос.Выполнить().Выгрузить() Цикл
  Датасет.Добавить(
    Новый Структура("текст,категория", Строка.ТекстЗаявки, Строка.УслугаКод)
  );
КонецЦикла;
// какая-то наша функция сохранения
ЗапишемJSONвФайл(Датасет);

Получим какой-то такой датасет (мне его Алиса мутнула, как и картинку для статейки):

[
  {
    "текст": "Здравствуйте! В подъезде на 5 этаже перегорела лампочка, темень такая, что ногу сломать можно. Задолбали уже!",
    "категория": "Освещение"
  },
  {
    "текст": "В квартире из крана вместо горячей воды идёт еле тёплая. Уже третий день так, невозможно мыться!",
    "категория": "Водоснабжение"
  },
...
  {
    "текст": "Лифт опять не работает, уже второй раз за неделю! Невозможно с коляской подниматься, это издевательство!",
    "категория": "Лифты"
  }
]

Отличненько! Будем с этим работать дальше. Но для начала поглядим, что же тут не так? А не так тут прям вот все - все эти приветствия, эмоции, дательные и винительные падежи, времена глаголов и все то, что нам ни разу не упало. Поэтому для начала нам надо данные почистить. Как? А вот тут 1С уже делать нечего, сорян желтизна!

 

ЧИСТКА ДАННЫХ

Тут будем пользоваться питончиком и библиотекой pymorphy3.

pymorphy3 — это популярная библиотека для Python, которая выполняет морфологический анализ и лемматизацию (приведение к начальной форме) слов на русском языке.

Напишем чистильщик нашего датасета в несколько строчек некоторого кода:

# все эти либы: для регулярок и для морфологии
import re
import pymorphy3

# Инициализируем инструмент для лемматизации русского языка
morph = pymorphy3.MorphAnalyzer()

# Наш кастомный список стоп-слов для ЖКХ (слова уже в начальной форме!)
JKH_STOP_WORDS = {
    'здравствуйте', 'приветствовать', 'добрый', 'день', 'вечер', 'утро', 
    'пожалуйста', 'уважаемый', 'администрация', 'просить', 'заявить', 
    'обращаться', 'обращение', 'жалоба', 'писать', 'сообщать', 'хотеть',
    'наш', 'мой', 'свой', 'который', 'этот', 'тот', 'какой-то', 'какой'
}

# функция очистки и лемматизации
def clean_and_lemmatize(text):
    if not isinstance(text, str):
        return ""
    
    # 1. Очистка от спецсимволов и цифр
    text = text.lower()
    text = re.sub(r'[^а-яёa-z\s-]', ' ', text)
    
    # 2. Разбиваем на слова
    words = text.split()
    
    lemmatized_words = []
    for word in words:
        # Получаем список разборов
        parsed_variants = morph.parse(word)
        
        # БЕРЕМ ПЕРВЫЙ ВАРИАНТ ИЗ СПИСКА [0] и у него вызываем normal_form
        lemma = parsed_variants[0].normal_form
        
        # 3. Фильтрация стоп-слов
        if lemma not in JKH_STOP_WORDS:
            lemmatized_words.append(lemma)
        
    return " ".join(lemmatized_words)

Что тут у нас происходит? Передаем "грязную" строку, получаем "чистую":

[
    {
        "текст":"в подъезд на этаж перегореть лампочка темень такой что нога сломать можно задолбать уже",
        "категория":"Освещение"
    },
    {
        "текст":"в квартира из кран вместо горячий вода идти еле тёплый уже третий так невозможно мыться",
        "категория":"Водоснабжение"
    },
    {
        "текст":"лифт опять не работать уже второй раз за неделя невозможно с коляска подниматься это издевательство",
        "категория":"Лифты"
    }
]

// Все истории выдуманы, все совпадения случайны.

Вот как-то так и этак получили мы чистой воды датасет. Да, он все-равно несколько шумноват, но уже куда веселее, чем был.

Перейдем к обучению модели!

 

ОБУЧЕНИЕ

Для таких вот задач классификации я пробовал использовать много всякого, например catboost от Яндекса. На конкретно этой задаче он показал очень слабенький результат и требовал достаточно большого времени на обучение. У меня STT-модель меньше училась на 200 часах шумного аугментированного и частотно порезанного звука телефонных разговоров с ненормативной лексикой, чем catboost на 40к заявках. Так что в лес. В итоге остановился на scikit-learn с его LinearSVC.

Как это все работает? Достаточно просто:

1. Берем панду для чтения датафрейма из нашего json.

2. Выделяем оттуда массивы Х и У для текста и категорий.

3. Разделяем данные на обучающую выборку и тест.

4. Создаем цепочку из вектризатора и LinearSVC.

5. Учим модель.

6. Проверяем.

7. Сохраняем.

Вот такой получается код функции для обучения и записывания данных:

def train_and_save_pipeline(cleaned_json_file, output_model_file="jkh_pipeline.pkl"):
    # грузим-грузим датасет
    with open(cleaned_json_file, 'r', encoding='utf-8') as f:
        data = json.load(f)

    # мутим датафрейм
    df = pd.DataFrame(data)

    X = df['текст']
    y = df['категория']
    
    # разделяем на на обучающие и тестовые данные
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42, stratify=y)

    # Склеиваем векторизатор и классификатор в единую цепочку.
    pipeline = Pipeline([
        ('tfidf', TfidfVectorizer(ngram_range=(1, 2), max_features=5000)),
        ('clf', LinearSVC(random_state=42, C=1.0, class_weight='balanced'))
    ])
    
    # Передаем сырой (но уже очищенный нами) текст X_train. 
    # Пайплайн сам внутри вызовет fit_transform для TF-IDF и fit для LinearSVC.
    pipeline.fit(X_train, y_train)
    
    # Для предсказания просто передаем текстовый X_test. Пайплайн сам векторизует его внутри себя.
    y_pred = pipeline.predict(X_test)
    print(classification_report(y_test, y_pred, zero_division=0))
    
    # Сохраняем файл, в котором «зашиты» и правила перевода слов в числа, и логика модели.
    joblib.dump(pipeline, output_model_file)

 

ИНФЕРЕНС

Для инференса нам надо загрузить модель и пропустить через нее очищенный текст. Для этого наваяем такой вот код:

class JkhClassifier:
    def __init__(self, pipeline_path="jkh_pipeline.pkl"):
        self.pipeline = joblib.load(pipeline_path)
        
        # Достаем саму модель и список классов из пайплайна, чтобы знать имена категорий
        self.model = self.pipeline.named_steps['clf']
        self.classes = self.model.classes_

    def predict_top_k(self, raw_text, k=3):
        # Прогоняем текст через векторизатор пайплайна
        # Шаг векторизации в пайплайне называется 'tfidf'
        vectorized_text = self.pipeline.named_steps['tfidf'].transform([cleaned_text])
        
        # Получаем расстояния до гиперплоскостей
        distances = self.model.decision_function(vectorized_text)[0]
        
        # Сортируем индексы оценок по возрастанию и берем последние K
        top_indices = np.argsort(distances)[::-1][:k]
        
        # Формируем красивый список результатов
        results = []
        for idx in top_indices:
            results.append({
                "category": self.classes[idx],
                "score": round(float(distances[idx]), 3) # Оценка уверенности (чем выше, тем лучше)
            })
            
        return results

if __name__ == "__main__":
    # Запускаем классификатор
    classifier = JkhClassifier("jkh_pipeline.pkl")
    
    # Тестовые заявки от джимми
    new_tickets = [
        "Добрый вечер!!! Подскажите, почему опять отключили горячую воду на Ленина 45?? Из крана идет ледяная!",
        "У нас в первом подъезде на пятом этаже лампочка перегорела, темень невозможная, почините пожалуйста.",
        "Алло, аварийная? Срочно!!! Из квартиры сверху хлещет вода, нас заливает, весь потолок в коридоре мокрый!"
    ]

    for complex_ticket in new_tickets:
        # Получаем Топ-3 категории
        ticket = clean_and_lemmatize(complex_ticket)
        top_3_categories = classifier.predict_top_k(ticket)
        
        print(f"Входящая заявка:\n\"{complex_ticket}\"\n")
        print(f"Входящая заявка очищенная:\n\"{ticket}\"\n")

        print("Предложенные моделью категории (Топ-3):")
        
        for i, res in enumerate(top_3_categories, 1):
            print(f"  {i}. {res['category']} (Уверенность: {res['score']})")

И вот что получаем на выходе:

"У нас в первом подъезде на пятом этаже лампочка перегорела, темень невозможная, почините, пожалуйста."

Входящая заявка очищенная:
"у мы в первый подъезд на пятый этаж лампочка перегореть темень невозможный починить"

Предложенные моделью категории (Топ-3):
  1. Освещение (Уверенность: -0.169)
  2. Благоустройство (Уверенность: -0.568)
  3. Авария/Протечка (Уверенность: -0.58)

"Алло, аварийная? Срочно!!! Из квартиры сверху хлещет вода, нас заливает, весь потолок в коридоре мокрый!"

Входящая заявка очищенная:
"алло аварийный срочно из квартира сверху хлестать вода мы заливать весь потолок в коридор мокрый"

Предложенные моделью категории (Топ-3):
  1. Авария/Протечка (Уверенность: -0.237)
  2. Водоснабжение (Уверенность: -0.517)
  3. Благоустройство (Уверенность: -0.626)

Ну и не сложно догадаться, как дальше с этим всем можно работать. Пользуйтесь!

Всем всех благ: счастья, здоровья, ума.

Подписывайтесь на каналы, ставьте лайки, флудите в комментах - делайте свое дело!

Вступайте в нашу телеграмм-группу Инфостарт

ИИ AI ML машинное обучение scikit-learn pymorphy3 LinearSVC

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданным 1С, справке синтакс-помощника и проверки синтаксиса.

15250 руб.

25.08.2025    60221    124    36    

134

Нейросети Пользователь 1С:Предприятие 8 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Оптовая торговля, дистрибуция, логистика Россия Управленческий учет Платные (руб)

Расширение "Искусственный интеллект и нейросети в 1С: Работа с отзывами маркетплейсов" предназначено для применения искусственного интеллекта в повседневной деятельности селлеров на маркетплейсах. Среди функций - работа с отзывами, вопросами и чатами покупателей, диалог с нейросетями, генерация картинок, заполнение описаний номенклатуры и другое.

6100 руб.

03.04.2024    15935    8    0    

12

Нейросети Бесплатно (free)

Простым языком про ИИ-агентов: чем агент отличается от LLM, как работает function calling и зачем нужен MCP. Разбираем структуру JSON, цикл работы агента и показываем "амнезию" модели на эксперименте с Ollama. Для тех, кто хочет понять "базу" без занудства. Часть 1.

26.06.2026    996    Junior_1C    24    

19

Нейросети Программист 1С:Предприятие 8 Бесплатно (free)

Бесплатный MCP-сервер, который даёт ИИ-ассистенту (Claude, Cursor и др.) читать данные рабочей базы 1С простыми словами — остатки, документы, справочники, регистры. Агенту не нужно знать язык запросов 1С: он описывает, что хочет, а сервер строит запрос сам. Работает на любой конфигурации (УТ, ERP, БП, самописная), только чтение, отдаёт лишь то, что доступно текущему пользователю. Вторая функция — отдаёт актуальную структуру метаданных любой конфигурации (таблицы, поля, типы), что полезно и при разработке как контекст для ИИ-агента. Реализован как расширение конфигурации.

22.06.2026    9122    Prepod2003    10    

17

Нейросети Бесплатно (free)

ИИ-агенты в корпоративной разработке 1С: почему инициатива исходит снизу, а не сверху.

17.06.2026    3704    Junior_1C    33    

12

Нейросети Программист Бесплатно (free)

Как мы пришли к ИИ для 1С и что из этого вышло. Расскажу, как мы собираем ИИ-платформу для работы с учетными данными. Зачем нам понадобился MCP, как мы связали его с 1С:Шина, почему уперлись в права доступа и как в итоге устроили агента внутри 1С. Также покажу, где видим место для skills, RAG и OCR, и что пока не стали отдавать модели на самостоятельное выполнение.

15.06.2026    6969    romansun    30    

19

Нейросети Бесплатно (free)

Разбираемся, почему ИИ-агенты теряют контекст, путаются в инструментах и возвращают неполный результат, если всю задачу пытаться решить одним большим промптом. Показываем, как цепочки пошаговых промптов помогают сделать работу агента повторяемой: каждый шаг выполняет одно действие, имеет понятный вход и выход, отдельно проверяется и при необходимости исправляется. Объясняем, как применять этот подход в задачах 1С: анализировать действия пользователя, подбирать инструкции через RAG, работать с журналом регистрации, MCP-инструментами и локальными моделями. На примерах показываем, как снизить непредсказуемость ИИ-агента и превратить его из «угадывающего помощника» в надежный инструмент для бизнес-процессов.

11.06.2026    1113    Exalter    1    

6

Нейросети Рефакторинг и качество кода Программист Бесплатно (free)

Кажется, что code-review с помощью искусственного интеллекта устроено просто: достаточно отправить код в LLM, задать промт и получить список замечаний. На практике такой подход быстро упирается в недетерминированность результата, неверную оценку критичности ошибок в 1С-коде и рекомендации, которые сложно отличить от полезных замечаний. Описываем гибридный подход к автокод-ревью: статический анализатор работает вместе с LLM, а база знаний из стандартов 1С превращается в набор машиночитаемых норм. Такая архитектура помогает снизить количество галлюцинаций, точнее определять критичность нарушений и постепенно развивать качество ревью через итеративное пополнение правил.

09.06.2026    1535    Repich    5    

9
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. chuevsf 403 01.07.26 12:23 Сейчас в теме
Тот кто мертв, умереть не может!)))
starik-2005; Xershi; +2 Ответить
2. user-z99999 78 01.07.26 13:31 Сейчас в теме
На каком железе можно пробовать?
В первую очередь интересует видеокарта, гб и модель?

На входе в ЖКХ это звонок или сайт жкх? Просто на входе можно уже пытаться фильтровать данные.
Если звонок - нажмите 1, 2, 3. Если сайт жкх - выберите категорию обращения.
3. starik-2005 3265 01.07.26 13:32 Сейчас в теме
(2)
железе
На проце на работе обучение занимало примерно.... 2 секунды. i5-13400. Датасет из 10к+ заявок и 111 услуг. Точность очень даже ничего.

ЗЫ: писал там сервис, который будет классифицировать на обученной модели. Среднее время отклика с учетом каспера и вызова из 1С - 10 мс. У диспетчера SLA 5-10 минут.
4. user-z99999 78 01.07.26 13:36 Сейчас в теме
(3) А по какой вероятности делаете отсечку?
например больше 60% - создает робот задачу, запускаем в работу без человека
менее 60% - смотрит человек
6. starik-2005 3265 01.07.26 13:38 Сейчас в теме
(4)
отсечку
По разнице между ТОП1 и ТОП2.
5. user-z99999 78 01.07.26 13:38 Сейчас в теме
Про разметку данных:
"у меня сломался водпровод, срочно"

как размечаете?
7. starik-2005 3265 01.07.26 13:39 Сейчас в теме
(5) Прочитай статью еще раз. Там есть джисоны.
8. user-z99999 78 01.07.26 13:40 Сейчас в теме
(7) из-за орфографии не попал в json, что тогда делать?
9. starik-2005 3265 01.07.26 13:40 Сейчас в теме
(8)
что тогда делать
Ты, смотрю, уже готов платить?
10. infosoft-v 749 01.07.26 13:44 Сейчас в теме
Спасибо за интересную статью.
Не могли бы вы подробнее рассказать про шаг:
"Разделяем данные на обучающую выборку и тест."

Если я правильно понял, то у нас есть только реальные данные тысяч обращений. Откуда вы взяли данные на обучающую выборку и тест?
23. starik-2005 3265 01.07.26 17:42 Сейчас в теме
(10)
Откуда вы взяли данные на обучающую выборку и тест?

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42, stratify=y)

Так вот же. Взяли весь датасет и test_size=0.2 (20%) выделили в тестовую выборку. Дальше на 80% обучили, на 20% проверили.
Оценка качества на тестовой выборке...
                 precision    recall  f1-score   support

Авария/Протечка       0.33      1.00      0.50         1
Благоустройство       0.67      1.00      0.80         2
  Водоснабжение       0.00      0.00      0.00         1
          Лифты       0.00      0.00      0.00         1
      Освещение       0.00      0.00      0.00         1

       accuracy                           0.50         6
      macro avg       0.20      0.40      0.26         6
   weighted avg       0.28      0.50      0.35         6
Показать

Т.к. датасет никакой - 30 единиц, то получили 6 заявок для проверки.
11. user-z99999 78 01.07.26 13:57 Сейчас в теме
(9) А какое качество модели?
не вижу F1-score или какую-либо характеристику
24. starik-2005 3265 01.07.26 17:46 Сейчас в теме
(11)
качество
Оно прямо зависит от качества датасета. Скормишь нагенеренные яндексом 30 строк - получишь хреновое качество. Посадишь тестировщиков разметить реальные заявки - получишь хорошее качество. На рабочем датасете с 11к заявок и 111 вроде бы категорий, качество выше 50%, но авторекомендация в районе 20% на старых и 50% на новых. Т.е. это когда модель видит разницу между ТОП1 и ТОП2, как существенную. Органолептически просмотрел 20 заявок - модель уделывает диспетчера только так.
12. DmitryKlimushkin 01.07.26 14:13 Сейчас в теме
"Если лечиться по написанному, то можно умереть от опечатки...."
Хотя... Я давно погружён в ЖКХ - там уже ничто не может удивлять))
13. RustIG 1962 01.07.26 14:36 Сейчас в теме
Ну и не сложно догадаться, как дальше с этим всем можно работать. Пользуйтесь!

в целом, не понятно, что дальше делать с результатом?

Могу предположить только: можно результат выгрузить в джэйсон.
далее в 1с обработать заявку с учетом джейсон - идентификатор заявки желательно изначально передавать в модель
далее перезаписать категорию заявки, если не совпадает с выбором пользователя (учитываем, что все заявки попадают в 1с из Онлайн-Системы заявок ЖКХ...
25. starik-2005 3265 01.07.26 17:54 Сейчас в теме
(13)
что дальше делать с результатом
Ну вот у тебя робот-отвечатель, в него кто-то наговорил "у меня вода хлещет по стенам течет", робот создает заявку с этим текстом, текст летит в модель, модель отдает услугу с автоакцептом или с рекомендацией показать оператору. Экономия человеко-лет.
"у меня вода хлещет по стенам течет"

Входящая заявка очищенная:
"у я вода хлестать по стена течь"

Предложенные моделью категории (Топ-3):
  1. Авария/Протечка (Уверенность: -0.272)
  2. Благоустройство (Уверенность: -0.486)
  3. Водоснабжение (Уверенность: -0.498)
Показать
26. RustIG 1962 01.07.26 18:38 Сейчас в теме
(25) другой робот начнет звонить и перегрузит систему
14. ksnik 698 01.07.26 15:02 Сейчас в теме
Вывод из статьи: в примере уверенность неправильная, классификация неправильная. Что дальше? На самом деле это Авария/Протечка
ТочкаScarab; +1 Ответить
15. starik-2005 3265 01.07.26 15:41 Сейчас в теме
(14) если хочешь чтобы за тебя подумали - значит чситай, что я создал стоимость.
20. ksnik 698 01.07.26 16:57 Сейчас в теме
(15) а говорите давай статью техническую, это на 3 дня никак не тянет.
21. starik-2005 3265 01.07.26 17:09 Сейчас в теме
(20) так в примере не уверенность, а расстояние до гиперплоскости на основе скудных данных из всегт 30 примеров.
Зы: пример напилил за час дома.
16. gybson 13 01.07.26 15:54 Сейчас в теме
Совсем скоро это будут уметь старшеклассники. Или уже умеют.
17. gybson 13 01.07.26 16:02 Сейчас в теме
Можно в принципе и без нейронки это сделать, если взять хорошую модель для эмбеддинга (конечно за деньги).
LLM все-равно тут будет лучше, она и адрес заодно вытащит и телефон и может служебную инструкцию какую, материалы и выпишет и прочее.

Я вот семантический поиск сделал почти на такой простой вещи, как векторизация
Прикрепленные файлы:
18. starik-2005 3265 01.07.26 16:14 Сейчас в теме
(17) в стате про llm вообще ничего нет, ну кроме алисы, которая датасет придумала чисто для демонстрации.
19. gybson 13 01.07.26 16:44 Сейчас в теме
(18) так и результат совсем простенький
срочность не определяет, хотя в заявках есть явное указание на то, что проблема повторная
а еще бы сгруппировать по адресам, подъездам, районам

я к тому, что сама по себе классификация это задача без звездочки
хотя теперь вообще непонятно что сложно :)
starik-2005; +1 Ответить
22. starik-2005 3265 01.07.26 17:14 Сейчас в теме
(19) да, сейчпс сложно лишь заставить себя разбираться, для многих это просто непреодолимый барьер.
Срочность - это да/нет, мешки с костями это вполне кликом решают а вот классифицировать проблему у них получается фигово. Когда я генерил реальный датасет - там было все очень грустно. Типа "не горит свет" - оператор ставит "консультация". Так что даже в таком виде на дряном датасете у меня 50% новвх заявок показывали уверенное auto, остальгые 50% - need human review. При этои llama-oss-20b (если ниче не путаю) делала чуть лучше, но сильно дольше.отсюда мораль: готовь датасет летом, а ML сразу как подготовишь.
27. gybson 13 01.07.26 18:40 Сейчас в теме
(22) мне это напоминает тот случай, когда где-то гит (или хоть хранилище), задачи, тестирование, ТЗ и прочее, а где-то "да я быстрее руками на проде исправлю". А могут и оба вместе быть.
Для отправки сообщения требуется регистрация/авторизация