consolidator

Форк
0
/
NeuroConsolidator.py 
52 строки · 2.3 Кб
1
import os
2
from typing import Any
3
import requests
4
import pandas as pd
5
  
6
class NeuroConsolidator(object):
7
    """Класс для укрупнения через нейоросеть
8
    """
9
    version = "1.0"
10
    def __init__(self,api_url:str):
11
        """Конструктор класса
12

13
        Args:
14
            api_url (str): API Url
15
        """
16
        self.api_url=api_url
17
        
18
    def send_single_request(self,rec:pd.Series,mat_type_col:str,nomeclature_col:str,mat_type_descr_col:str=None,mat_type_sep:str=",",n_predictions:int=1)->list[tuple[str,float]]:
19
        """Послать запрос по единичной номенклатуре 
20

21
        Args:
22
            rec (pd.Series): Запись из dataframe
23
            mat_type_col (str): Колонка Вида материала (сложный или простой)
24
            nomeclature_col (str): Колонка номенклатуры
25
            mat_type_descr_col (str, optional): Колонка описания вида метариала. Defaults to None.
26
            mat_type_sep (str, optional): Разделитель сложного вида материала. Defaults to ",".
27
            n_predictions (int, optional): Количество вариантов. Defaults to 1.
28

29
        Returns:
30
            list[tuple[str,float]]: Набор результатов
31
        """
32
        try:
33
            nomeclature=str(rec[nomeclature_col])
34
            mat_type_code=None
35
            mat_type_descr=None
36
            if mat_type_descr_col is None:
37
                mat_type_splt = str(rec[mat_type_col]).split(mat_type_sep)
38
                mat_type_code = mat_type_splt[0].strip()
39
                mat_type_descr = mat_type_splt[1].strip()
40
            else:
41
                mat_type_code = str(rec[mat_type_col])
42
                mat_type_descr = str(rec[mat_type_descr_col])
43
            request_data = {"data":[{"type_code":mat_type_code,"material_type":mat_type_descr,"name":nomeclature}], "n_predictions":n_predictions}
44
            response = requests.post(self.api_url,json=request_data)
45
            rjson = response.json()
46
            result_dict:dict = rjson["predictions"][0]
47
            result = []
48
            for key in result_dict.keys():
49
                prc = round(float(result_dict[key])*100,1)
50
                result.append((key,prc))
51
            return result
52
        except: raise

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.