Skip to content

ilya2184/textclassify

Repository files navigation

Определение статьи ДДС по назначению платежа

Сервис для определния статьи ДДС в поступлении на расчетный счет, списании с расчетного счета: по виду операции и назначению платежа

[POST] /train - form-data:
 file - File - Excel (xlsx) для обучения (например за предыдущий закрытый квартал) с колонкаим:
    ВидОперации, НазначениеПлатежа, СтатьяДвиженияДенежныхСредств
 model_id - string - текстовый идентификатор модели.
    Например ИНН организации, подразделения, год (обычно статьи ДДС утверждаются ежегодно)
 [ANSWER] - JSON - с полем message (Model trained successfully)

[POST] /test - form-data:
 file - File - Excel (xlsx) для тестирования (например за текущий месяц) с колонкаим:
    ВидОперации, НазначениеПлатежа, СтатьяДвиженияДенежныхСредств
 model_id - string - текстовый идентификатор модели.
    Например ИНН организации, подразделения, год (обычно статьи ДДС утверждаются ежегодно)
 [ANSWER] - JSON - с полем accuracy "точность" модели

[POST] /predict - form-data:
 model_id - Text - имя обученной ранее модели
 operataion - string - вид операции.
    Например Оплата от покупателя, Прочее поступление, Оплата поставщику
 text - string - назначение платежа
 [ANSWER] - JSON - с полем article (подходящий текст из колонки СтатьяДвиженияДенежныхСредств)

[POST] /stringmatch - json:
 string_list - string[] - номера договоров, счетов;
    более длинные строки имеют бОльший приоритет даже не смотря на полное совпадение меньшего текста
	Например "Счет № 02" > "01" в тексте "Оплата по счету 02 от 01.01.2024"
 text - string - назначение платежа
 [ANSWER] - JSON - с полем prediction (подходящий текст из string_list)

[POST] /comparelists/start - json:
 threshold_high - int - верхняя граница - сильно совпадающие, 99
 threshold_low - int - верхняя граница - средне совпадающие, 93
 contacts - object[] - имена наших контрагентов:
  "contacts": [
  {"name": "Наименование нашего контрагента"},
  {"name": "ООО 'Ромашка'"},
  {"name": "ООО 'Тюльпан'"},
  {"name": "Рога"} ]
  checklist - object[] - список для сверки:
 "checklist": [
  {"name": "ООО 'Мальчиш-плохиш'"},
  {"name": "ПАО 'Сектанты'"} ]
 [ANSWER] - JSON - идентификатор задания сравнения 202
{
    "task_id": "af24540c-4797-403f-a193-21496bc4f2a2"
}

[GET] /comparelists/status?taskid=af24540c-4797-403f-a193-21496bc4f2a2 - json
если сравнение ещё выполняется, 200
 [ANSWER]
{
   "status": "in progress",
   "task_id": "af24540c-4797-403f-a193-21496bc4f2a2",
   "compareresult": null,
}

если сравнение выполнено, 200
 [ANSWER]
{
   "status": "completed",
   "task_id": "af24540c-4797-403f-a193-21496bc4f2a2",
   "compareresult": {
      "Наименование нашего контрагента": {
         "matches_high": [
            ["Сильно совпадающее наименование плохиша 3", 99],
	   	   ["Сильно совпадающее наименование плохиша 4", 98]],
         "matches_low": [
				["Средне совпадающее наименование плохиша 1", 96],
				["Средне совпадающее наименование плохиша 2", 95]]
      },
	}
}

если нет такого задания, 404
 [ANSWER]
{
   "status": "error"
}

Запуск

Построить имидж (однократно) docker build --tag textclassify .

Запустить docker run --name article -p 5050:5050 textclassify

Сохранить из 1С результат запроса в XLSX за закрытый период (месяц, квартал)

ВЫБРАТЬ
	ТабРеквизиты.ВидОперации КАК ВидОперации,
	ТабРеквизиты.НазначениеПлатежа КАК НазначениеПлатежа,
	ТабРеквизиты.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств
ИЗ Документ.ПоступлениеНаРасчетныйСчет КАК ТабРеквизиты
ГДЕ ТабРеквизиты.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ТабРеквизиты.ВидОперации,
	ТабРеквизиты.НазначениеПлатежа,
	ТабРеквизиты.СтатьяДвиженияДенежныхСредств
ИЗ Документ.СписаниеСРасчетногоСчета КАК ТабРеквизиты
ГДЕ ТабРеквизиты.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания

Обучить модель /train; Использовать и радоваться: /predict

Пример использования onec_example - выгрузка обработки (файлы в формате 1С) с примером использования. В обработке используется КоннекторHTTP Владимира Бондаревского.

Примеры из postman: image image

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published