/
Pavz
/
Project_case3
Обзор
Документация
Войти
/
Pavz
/
Project_case3
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
request_functions.py
54 строки
2 KB
pavel
Refactor code
04 дек 2025, 20:24
04 дек 2025, 20:24
9e52e4d
Код
Авторство
О чём код?
import requests from config import OLLAMA_URL,OLLAMA_MODEL, BATCH_SIZE class RequestManager: def __init__(self, url: str = OLLAMA_URL, model: str = OLLAMA_MODEL, batch_size: int = BATCH_SIZE): self.url = url self.model = model self.batch_size = batch_size # функция для получения id товара def get_offer_key(self, offer): return offer['id'] # функция преобразования товара в строку с определенными полями (fields). принимает товар и список полей def transform_offer(self, offer, fields): formatted_offer = '. '.join(offer[field] for field in fields) offer_id = self.get_offer_key(offer) return [formatted_offer, offer_id] # функция создания списка батчей + ключей. принимает файл товаров и размер батча, возвращает список батчей и список ключей def create_batches(self, file): batches = [] batch = [] key_batch = [] key_batches = [] for good in file: # важно не забыть, что transform_offer возвращает массив - [форматированная строка, ее ключ] transformed_offer = self.transform_offer(good, ['name','market_description']) batch.append(transformed_offer[0]) key_batch.append(transformed_offer[1]) if len(batch) == self.batch_size: batches.append(batch) key_batches.append(key_batch) batch = [] key_batch = [] if batch: batches.append(batch) key_batches.append(key_batch) return [batches,key_batches] # функция получает на вход один батч, модель, ссылку на модель и возвращает список векторов из батча def turn_to_embeddings(self, batch): payload = { "model": self.model, "input": batch } response = requests.post(self.url, json = payload) return response.json()['embeddings']