diff --git a/.python-version b/.python-version
index 2c07333..3410832 100644
--- a/.python-version
+++ b/.python-version
@@ -1 +1 @@
-3.11
+cpython-3.13.5-linux-x86_64-gnu
diff --git a/ml/train.py b/ml/train.py
index 649e01e..8ccf9e3 100644
--- a/ml/train.py
+++ b/ml/train.py
@@ -1,5 +1,5 @@
import os
-import matplotlib.pyplot as plt
+import matplotlib.pyplot as plt # type: ignore
import torch
import torch.nn as nn
from torchvision.datasets import ImageFolder # type: ignore
@@ -19,7 +19,7 @@ def get_labels(input_dir, img_size):
transforms.Resize(img_size),
transforms.RandomHorizontalFlip(),
transforms.ToTensor(),
- transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
+ transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]),
]
)
dataset = ImageFolder(root=input_dir, transform=transform)
@@ -47,7 +47,7 @@ def load_model(model_path: str, labels_dict: dict, device: str = "cuda") -> nn.M
model = torchvision.models.resnet50(weights=ResNet50_Weights.DEFAULT)
model.fc = nn.Sequential(
nn.Dropout(0.5), # Регуляризация
- torch.nn.Linear(model.fc.in_features, len(labels_dict))
+ torch.nn.Linear(model.fc.in_features, len(labels_dict)),
)
return model
model = torch.load(model_path, map_location=device, weights_only=False)
diff --git a/pyproject.toml b/pyproject.toml
index 2a1e521..38a6d1a 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -3,21 +3,31 @@ name = "ai"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
-requires-python = "~=3.11"
+requires-python = "~=3.13"
dependencies = [
- "granian>=2.2.4",
+ "granian==2.5",
"jinja2>=3.1.6",
- "starlite>=1.51.16",
- "numpy==1.23.5",
+ "numpy==2.3.4",
"pillow>=11.1.0",
"markdown>=3.9",
+ "aiocache",
+ "torch>=2.9.1",
+ "ruff>=0.14.5",
+ "mypy>=1.18.2",
+ "uvicorn>=0.38.0",
+ "pydantic>=2.12.4",
+ "litestar==2.18.0",
+ "ujson>=5.11.0",
+ "torchvision>=0.24.1",
+ "types-requests>=2.32.4.20250913",
+ "types-markdown>=3.10.0.20251106",
]
[project.optional-dependencies]
default = [
- "torch>=2.6.0",
+ "torch>=2.9.1",
"torchvision>=0.21.0",
- "mypy>=1.15.0",
+ "mypy>=1.18",
"pyqt5>=5.15.11",
"requests>=2.32.3",
"ruff>=0.11.5",
@@ -25,35 +35,15 @@ default = [
"matplotlib>=3.10.1",
]
-api = [
- "torch>=2.6.0",
- "torchvision>=0.21.0",
-]
-
-[tool.uv]
-conflicts = [
- [
- { extra = "default" },
- { extra = "api" },
- ],
-]
-
[tool.uv.sources]
torch = [
- { index = "pytorch-cu124", extra = "default" },
- { index = "pytorch-cpu", extra = "api" },
+ { index = "pytorch-cpu", extra = "default" },
]
torchvision = [
- { index = "pytorch-cu124", extra = "default" },
- { index = "pytorch-cpu", extra = "api" },
+ { index = "pytorch-cpu", extra = "default" },
]
-[[tool.uv.index]]
-name = "pytorch-cu124"
-url = "https://download.pytorch.org/whl/cu124"
-explicit = true
-
[[tool.uv.index]]
name = "pytorch-cpu"
url = "https://download.pytorch.org/whl/cpu"
diff --git a/server/main.py b/server/main.py
index 3479923..fccdf5f 100644
--- a/server/main.py
+++ b/server/main.py
@@ -1,93 +1,35 @@
from pathlib import Path
+import os
import markdown
-from PIL import Image
-from starlite import (
+from litestar import (
Controller,
- StaticFilesConfig,
get,
post,
- Body,
MediaType,
- RequestEncodingType,
- Starlite,
- UploadFile,
- Template,
- TemplateConfig,
- HTTPException
+ Litestar,
)
-from starlite.contrib.jinja import JinjaTemplateEngine
-import io
-import os
-import json
+from litestar.enums import RequestEncodingType
+from litestar.datastructures import UploadFile
+from litestar.params import Body
+from litestar.exceptions import HTTPException
+from litestar.contrib.jinja import JinjaTemplateEngine
+from litestar.template.config import TemplateConfig
+from litestar.response import Template
+from litestar.static_files import create_static_files_router
-import torch
-from torchvision import transforms # type: ignore
-import torch.nn.functional as F
+
+from server.services.descriptions import CharactersService, Breed, CharactersRepository
+from server.services.recognizer import RecognizerService, RecognizerRepository
os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
-def load_model(model_path, device="cpu"):
- model = torch.load(model_path, map_location=device, weights_only=False)
- model.eval()
- return model
+recognizer_service = RecognizerService(RecognizerRepository())
+characters_service = CharactersService(CharactersRepository())
-DOG_MODEL = load_model("server/models/dogs_model.pth")
-CAT_MODEL = load_model("server/models/cats_model.pth")
-
-with open("server/meta/labels_dogs.json", "r") as f:
- data_labels = f.read()
- labels_dogs = json.loads(data_labels)
-
-with open("server/meta/labels_cats.json", "r") as f:
- data_labels = f.read()
- labels_cats = json.loads(data_labels)
-
-
-with open("server/meta/images.json", "r") as f:
- IMAGES = json.loads(f.read())
-
-def predict_image(image, model, device="cuda") -> list[tuple]:
- img_size = (224, 224)
- preprocess = transforms.Compose(
- [
- transforms.Resize(img_size),
- transforms.ToTensor(),
- transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)),
- ]
- )
- input_tensor = preprocess(image)
- input_batch = input_tensor.unsqueeze(0).to(device) # Добавляем dimension для батча
-
- with torch.no_grad():
- output = model(input_batch)
-
- probabilities = torch.nn.functional.softmax(output[0], dim=0)
- k = 5
- topk_probs, predicted_idx = torch.topk(probabilities, k)
-
- data = []
- for i in range(k):
- data.append((predicted_idx[i].item(), float(topk_probs[i].item())))
- return data
-
-breed_dir = Path("server/meta/breed_descriptions")
-DOGS_BEERS = []
-
-# Идем по каждому текстовому файлу с описанием породы
-for breed_file in breed_dir.glob("*.txt"):
- breed_name = breed_file.stem # имя файла без расширения - название породы
- description = breed_file.read_text(encoding="utf-8") # читаем описание из файла
- DOGS_BEERS.append({
- "name": breed_name.replace("_", " "),
- "alias": breed_file.stem,
- "description": description.strip()
- })
-DOGS_BEERS.sort(key=lambda b: b["name"])
-
-class BeerdsController(Controller):
+class BreedsController(Controller):
path = "/beerds"
@post("/dogs")
@@ -95,96 +37,69 @@ class BeerdsController(Controller):
self, data: UploadFile = Body(media_type=RequestEncodingType.MULTI_PART)
) -> dict:
body = await data.read()
-
- img_file = Image.open(io.BytesIO(body))
- predicted_data = predict_image(img_file, DOG_MODEL, "cpu")
- results = {}
- images = []
- for d in predicted_data:
- predicted_idx, probabilities = d
- predicted_label = labels_dogs[str(predicted_idx)]
- name = predicted_label.replace("_", " ")
- images.append({
- "name": name,
- "url": [f"/static/assets/dog/{predicted_label}/{i}" for i in IMAGES['dog'][predicted_label]]
- })
- results[probabilities] = name
- return {
- "results": results,
- "images": images,
- }
+ return await recognizer_service.predict_dog_image(body)
@post("/cats")
async def beerds_cats(
self, data: UploadFile = Body(media_type=RequestEncodingType.MULTI_PART)
) -> dict:
body = await data.read()
-
- img_file = Image.open(io.BytesIO(body))
- predicted_data = predict_image(img_file, CAT_MODEL, "cpu")
- results = {}
- images = []
- for d in predicted_data:
- predicted_idx, probabilities = d
- predicted_label = labels_cats[str(predicted_idx)]
- name = predicted_label.replace("_", " ")
- images.append({
- "name": name,
- "url": [f"/static/assets/cat/{predicted_label}/{i}" for i in IMAGES['cat'][predicted_label]]
- })
- results[probabilities] = predicted_label
- return {
- "results": results,
- "images": images,
- }
+ return await recognizer_service.predict_cat_image(body)
-class BaseController(Controller):
+class DescriptionController(Controller):
path = "/"
@get("/")
async def dogs(self) -> Template:
- return Template(name="dogs.html")
-
+ return Template(template_name="dogs.html")
+
@get("/cats")
async def cats(self) -> Template:
- return Template(name="cats.html")
-
+ return Template(template_name="cats.html")
+
@get("/contacts")
async def contacts(self) -> Template:
- return Template(name="contacts.html")
-
+ return Template(template_name="contacts.html")
+
@get("/donate")
async def donate(self) -> Template:
- return Template(name="donate.html")
-
+ return Template(template_name="donate.html")
+
@get("/dogs-characteristics")
async def dogs_characteristics(self) -> Template:
- return Template(name="dogs-characteristics.html", context={"breeds": DOGS_BEERS})
-
+ breeds = await characters_service.get_characters()
+ return Template(
+ template_name="dogs-characteristics.html", context={"breeds": breeds}
+ )
+
@get("/dogs-characteristics/{name:str}")
async def beer_description(self, name: str) -> Template:
- data = [b for b in DOGS_BEERS if b.get("alias") == name]
- if len(data) == 0:
+ breed = await characters_service.get_character(name)
+ if breed is None:
raise HTTPException(status_code=404, detail="Порода не найдена")
- return Template(name="beers-description.html", context={
- "text": markdown.markdown(data[0].get("description")),
- "title": data[0].get("name"),
- "images": [f"/static/assets/dog/{name}/{i}" for i in IMAGES['dog'][name]],
- })
-
+ images = await recognizer_service.images_dogs()
+ return Template(
+ template_name="beers-description.html",
+ context={
+ "text": markdown.markdown(breed.description),
+ "title": breed.name,
+ "images": [f"/static/assets/dog/{name}/{i}" for i in images[name]],
+ },
+ )
@get("/sitemap.xml", media_type=MediaType.XML)
async def sitemaps(self) -> bytes:
+ breeds: list[Breed] = await characters_service.get_characters()
lastmod = "2025-10-04T19:01:03+00:00"
beers_url = ""
- for b in DOGS_BEERS:
- beers_url += f'''
+ for b in breeds:
+ beers_url += f"""
- https://xn-----6kcp3cadbabfh8a0a.xn--p1ai/dogs-characteristics/{b.get("alias")}
+ https://xn-----6kcp3cadbabfh8a0a.xn--p1ai/dogs-characteristics/{b.alias}
{lastmod}
-'''
+"""
return f"""
""".encode()
-
@get("/robots.txt", media_type=MediaType.TEXT)
async def robots(self) -> str:
@@ -226,11 +140,12 @@ Sitemap: https://xn-----6kcp3cadbabfh8a0a.xn--p1ai/sitemap.xml
"""
-app = Starlite(
+app = Litestar(
debug=True,
- route_handlers=[BeerdsController, BaseController],
- static_files_config=[
- StaticFilesConfig(directories=[Path("server/static")], path="/static"),
+ route_handlers=[
+ BreedsController,
+ DescriptionController,
+ create_static_files_router(path="/static", directories=["server/static"]),
],
template_config=TemplateConfig(
directory=Path("server/templates"),
diff --git a/server/services/__init__.py b/server/services/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/server/services/descriptions/__init__.py b/server/services/descriptions/__init__.py
new file mode 100644
index 0000000..9df84b7
--- /dev/null
+++ b/server/services/descriptions/__init__.py
@@ -0,0 +1,13 @@
+from server.services.descriptions.repository import (
+ CharactersRepository,
+ ACharactersRepository,
+)
+from server.services.descriptions.service import CharactersService
+from server.services.descriptions.domain import Breed
+
+__all__ = (
+ "CharactersRepository",
+ "ACharactersRepository",
+ "CharactersService",
+ "Breed",
+)
diff --git a/server/services/descriptions/domain.py b/server/services/descriptions/domain.py
new file mode 100644
index 0000000..16d70ff
--- /dev/null
+++ b/server/services/descriptions/domain.py
@@ -0,0 +1,8 @@
+from dataclasses import dataclass
+
+
+@dataclass(frozen=True)
+class Breed:
+ name: str
+ alias: str
+ description: str
diff --git a/server/services/descriptions/repository/__init__.py b/server/services/descriptions/repository/__init__.py
new file mode 100644
index 0000000..001ed29
--- /dev/null
+++ b/server/services/descriptions/repository/__init__.py
@@ -0,0 +1,6 @@
+from server.services.descriptions.repository.repository import (
+ CharactersRepository,
+ ACharactersRepository,
+)
+
+__all__ = ("CharactersRepository", "ACharactersRepository")
diff --git a/server/meta/breed_descriptions/австралийский келпи.txt b/server/services/descriptions/repository/breed_descriptions/австралийский келпи.txt
similarity index 100%
rename from server/meta/breed_descriptions/австралийский келпи.txt
rename to server/services/descriptions/repository/breed_descriptions/австралийский келпи.txt
diff --git a/server/meta/breed_descriptions/австралийский терьер.txt b/server/services/descriptions/repository/breed_descriptions/австралийский терьер.txt
similarity index 100%
rename from server/meta/breed_descriptions/австралийский терьер.txt
rename to server/services/descriptions/repository/breed_descriptions/австралийский терьер.txt
diff --git a/server/meta/breed_descriptions/австралийский_шелковистый_терьер.txt b/server/services/descriptions/repository/breed_descriptions/австралийский_шелковистый_терьер.txt
similarity index 100%
rename from server/meta/breed_descriptions/австралийский_шелковистый_терьер.txt
rename to server/services/descriptions/repository/breed_descriptions/австралийский_шелковистый_терьер.txt
diff --git a/server/meta/breed_descriptions/американская_эскимосская_собака.txt b/server/services/descriptions/repository/breed_descriptions/американская_эскимосская_собака.txt
similarity index 100%
rename from server/meta/breed_descriptions/американская_эскимосская_собака.txt
rename to server/services/descriptions/repository/breed_descriptions/американская_эскимосская_собака.txt
diff --git a/server/meta/breed_descriptions/американский_бульдог.txt b/server/services/descriptions/repository/breed_descriptions/американский_бульдог.txt
similarity index 100%
rename from server/meta/breed_descriptions/американский_бульдог.txt
rename to server/services/descriptions/repository/breed_descriptions/американский_бульдог.txt
diff --git a/server/meta/breed_descriptions/американский_стаффордширский_терьер.txt b/server/services/descriptions/repository/breed_descriptions/американский_стаффордширский_терьер.txt
similarity index 100%
rename from server/meta/breed_descriptions/американский_стаффордширский_терьер.txt
rename to server/services/descriptions/repository/breed_descriptions/американский_стаффордширский_терьер.txt
diff --git a/server/meta/breed_descriptions/английский_кокер_спаниель.txt b/server/services/descriptions/repository/breed_descriptions/английский_кокер_спаниель.txt
similarity index 100%
rename from server/meta/breed_descriptions/английский_кокер_спаниель.txt
rename to server/services/descriptions/repository/breed_descriptions/английский_кокер_спаниель.txt
diff --git a/server/meta/breed_descriptions/английский_сеттер.txt b/server/services/descriptions/repository/breed_descriptions/английский_сеттер.txt
similarity index 100%
rename from server/meta/breed_descriptions/английский_сеттер.txt
rename to server/services/descriptions/repository/breed_descriptions/английский_сеттер.txt
diff --git a/server/meta/breed_descriptions/английский_спрингер-спаниель.txt b/server/services/descriptions/repository/breed_descriptions/английский_спрингер-спаниель.txt
similarity index 100%
rename from server/meta/breed_descriptions/английский_спрингер-спаниель.txt
rename to server/services/descriptions/repository/breed_descriptions/английский_спрингер-спаниель.txt
diff --git a/server/meta/breed_descriptions/английский_фоксхаунд.txt b/server/services/descriptions/repository/breed_descriptions/английский_фоксхаунд.txt
similarity index 100%
rename from server/meta/breed_descriptions/английский_фоксхаунд.txt
rename to server/services/descriptions/repository/breed_descriptions/английский_фоксхаунд.txt
diff --git a/server/meta/breed_descriptions/аппенцеллер_зенненхунд.txt b/server/services/descriptions/repository/breed_descriptions/аппенцеллер_зенненхунд.txt
similarity index 100%
rename from server/meta/breed_descriptions/аппенцеллер_зенненхунд.txt
rename to server/services/descriptions/repository/breed_descriptions/аппенцеллер_зенненхунд.txt
diff --git a/server/meta/breed_descriptions/афганская_борзая.txt b/server/services/descriptions/repository/breed_descriptions/афганская_борзая.txt
similarity index 100%
rename from server/meta/breed_descriptions/афганская_борзая.txt
rename to server/services/descriptions/repository/breed_descriptions/афганская_борзая.txt
diff --git a/server/meta/breed_descriptions/аффенпинчер.txt b/server/services/descriptions/repository/breed_descriptions/аффенпинчер.txt
similarity index 100%
rename from server/meta/breed_descriptions/аффенпинчер.txt
rename to server/services/descriptions/repository/breed_descriptions/аффенпинчер.txt
diff --git a/server/meta/breed_descriptions/басенджи.txt b/server/services/descriptions/repository/breed_descriptions/басенджи.txt
similarity index 100%
rename from server/meta/breed_descriptions/басенджи.txt
rename to server/services/descriptions/repository/breed_descriptions/басенджи.txt
diff --git a/server/meta/breed_descriptions/бассет_хаунд.txt b/server/services/descriptions/repository/breed_descriptions/бассет_хаунд.txt
similarity index 100%
rename from server/meta/breed_descriptions/бассет_хаунд.txt
rename to server/services/descriptions/repository/breed_descriptions/бассет_хаунд.txt
diff --git a/server/meta/breed_descriptions/бедлингтон-терьер.txt b/server/services/descriptions/repository/breed_descriptions/бедлингтон-терьер.txt
similarity index 100%
rename from server/meta/breed_descriptions/бедлингтон-терьер.txt
rename to server/services/descriptions/repository/breed_descriptions/бедлингтон-терьер.txt
diff --git a/server/meta/breed_descriptions/бернский_зенненхунд.txt b/server/services/descriptions/repository/breed_descriptions/бернский_зенненхунд.txt
similarity index 100%
rename from server/meta/breed_descriptions/бернский_зенненхунд.txt
rename to server/services/descriptions/repository/breed_descriptions/бернский_зенненхунд.txt
diff --git a/server/meta/breed_descriptions/бигль.txt b/server/services/descriptions/repository/breed_descriptions/бигль.txt
similarity index 100%
rename from server/meta/breed_descriptions/бигль.txt
rename to server/services/descriptions/repository/breed_descriptions/бигль.txt
diff --git a/server/meta/breed_descriptions/бладхаунд.txt b/server/services/descriptions/repository/breed_descriptions/бладхаунд.txt
similarity index 100%
rename from server/meta/breed_descriptions/бладхаунд.txt
rename to server/services/descriptions/repository/breed_descriptions/бладхаунд.txt
diff --git a/server/meta/breed_descriptions/бобтейл.txt b/server/services/descriptions/repository/breed_descriptions/бобтейл.txt
similarity index 100%
rename from server/meta/breed_descriptions/бобтейл.txt
rename to server/services/descriptions/repository/breed_descriptions/бобтейл.txt
diff --git a/server/meta/breed_descriptions/боксер.txt b/server/services/descriptions/repository/breed_descriptions/боксер.txt
similarity index 100%
rename from server/meta/breed_descriptions/боксер.txt
rename to server/services/descriptions/repository/breed_descriptions/боксер.txt
diff --git a/server/meta/breed_descriptions/большой_швейцарский_зенненхунд.txt b/server/services/descriptions/repository/breed_descriptions/большой_швейцарский_зенненхунд.txt
similarity index 100%
rename from server/meta/breed_descriptions/большой_швейцарский_зенненхунд.txt
rename to server/services/descriptions/repository/breed_descriptions/большой_швейцарский_зенненхунд.txt
diff --git a/server/meta/breed_descriptions/бордер-колли.txt b/server/services/descriptions/repository/breed_descriptions/бордер-колли.txt
similarity index 100%
rename from server/meta/breed_descriptions/бордер-колли.txt
rename to server/services/descriptions/repository/breed_descriptions/бордер-колли.txt
diff --git a/server/meta/breed_descriptions/бордер-терьер.txt b/server/services/descriptions/repository/breed_descriptions/бордер-терьер.txt
similarity index 100%
rename from server/meta/breed_descriptions/бордер-терьер.txt
rename to server/services/descriptions/repository/breed_descriptions/бордер-терьер.txt
diff --git a/server/meta/breed_descriptions/бостон-терьер.txt b/server/services/descriptions/repository/breed_descriptions/бостон-терьер.txt
similarity index 100%
rename from server/meta/breed_descriptions/бостон-терьер.txt
rename to server/services/descriptions/repository/breed_descriptions/бостон-терьер.txt
diff --git a/server/meta/breed_descriptions/бретонский_эпаньоль.txt b/server/services/descriptions/repository/breed_descriptions/бретонский_эпаньоль.txt
similarity index 100%
rename from server/meta/breed_descriptions/бретонский_эпаньоль.txt
rename to server/services/descriptions/repository/breed_descriptions/бретонский_эпаньоль.txt
diff --git a/server/meta/breed_descriptions/бриар.txt b/server/services/descriptions/repository/breed_descriptions/бриар.txt
similarity index 100%
rename from server/meta/breed_descriptions/бриар.txt
rename to server/services/descriptions/repository/breed_descriptions/бриар.txt
diff --git a/server/meta/breed_descriptions/бульмастиф.txt b/server/services/descriptions/repository/breed_descriptions/бульмастиф.txt
similarity index 100%
rename from server/meta/breed_descriptions/бульмастиф.txt
rename to server/services/descriptions/repository/breed_descriptions/бульмастиф.txt
diff --git a/server/meta/breed_descriptions/веймаранер.txt b/server/services/descriptions/repository/breed_descriptions/веймаранер.txt
similarity index 100%
rename from server/meta/breed_descriptions/веймаранер.txt
rename to server/services/descriptions/repository/breed_descriptions/веймаранер.txt
diff --git a/server/meta/breed_descriptions/вельш-корги_кардиган.txt b/server/services/descriptions/repository/breed_descriptions/вельш-корги_кардиган.txt
similarity index 100%
rename from server/meta/breed_descriptions/вельш-корги_кардиган.txt
rename to server/services/descriptions/repository/breed_descriptions/вельш-корги_кардиган.txt
diff --git a/server/meta/breed_descriptions/вельш-корги_пемброк.txt b/server/services/descriptions/repository/breed_descriptions/вельш-корги_пемброк.txt
similarity index 100%
rename from server/meta/breed_descriptions/вельш-корги_пемброк.txt
rename to server/services/descriptions/repository/breed_descriptions/вельш-корги_пемброк.txt
diff --git a/server/meta/breed_descriptions/вельш-спрингер-спаниель.txt b/server/services/descriptions/repository/breed_descriptions/вельш-спрингер-спаниель.txt
similarity index 100%
rename from server/meta/breed_descriptions/вельш-спрингер-спаниель.txt
rename to server/services/descriptions/repository/breed_descriptions/вельш-спрингер-спаниель.txt
diff --git a/server/meta/breed_descriptions/венгерская_выжла.txt b/server/services/descriptions/repository/breed_descriptions/венгерская_выжла.txt
similarity index 100%
rename from server/meta/breed_descriptions/венгерская_выжла.txt
rename to server/services/descriptions/repository/breed_descriptions/венгерская_выжла.txt
diff --git a/server/meta/breed_descriptions/вест-хайленд-уайт-терьер.txt b/server/services/descriptions/repository/breed_descriptions/вест-хайленд-уайт-терьер.txt
similarity index 100%
rename from server/meta/breed_descriptions/вест-хайленд-уайт-терьер.txt
rename to server/services/descriptions/repository/breed_descriptions/вест-хайленд-уайт-терьер.txt
diff --git a/server/meta/breed_descriptions/гаванский_бишон.txt b/server/services/descriptions/repository/breed_descriptions/гаванский_бишон.txt
similarity index 100%
rename from server/meta/breed_descriptions/гаванский_бишон.txt
rename to server/services/descriptions/repository/breed_descriptions/гаванский_бишон.txt
diff --git a/server/meta/breed_descriptions/гиеновидная_собака.txt b/server/services/descriptions/repository/breed_descriptions/гиеновидная_собака.txt
similarity index 100%
rename from server/meta/breed_descriptions/гиеновидная_собака.txt
rename to server/services/descriptions/repository/breed_descriptions/гиеновидная_собака.txt
diff --git a/server/meta/breed_descriptions/грюнендаль.txt b/server/services/descriptions/repository/breed_descriptions/грюнендаль.txt
similarity index 100%
rename from server/meta/breed_descriptions/грюнендаль.txt
rename to server/services/descriptions/repository/breed_descriptions/грюнендаль.txt
diff --git a/server/meta/breed_descriptions/денди-динмонт-терьер.txt b/server/services/descriptions/repository/breed_descriptions/денди-динмонт-терьер.txt
similarity index 100%
rename from server/meta/breed_descriptions/денди-динмонт-терьер.txt
rename to server/services/descriptions/repository/breed_descriptions/денди-динмонт-терьер.txt
diff --git a/server/meta/breed_descriptions/динго.txt b/server/services/descriptions/repository/breed_descriptions/динго.txt
similarity index 100%
rename from server/meta/breed_descriptions/динго.txt
rename to server/services/descriptions/repository/breed_descriptions/динго.txt
diff --git a/server/meta/breed_descriptions/дирхаунд.txt b/server/services/descriptions/repository/breed_descriptions/дирхаунд.txt
similarity index 100%
rename from server/meta/breed_descriptions/дирхаунд.txt
rename to server/services/descriptions/repository/breed_descriptions/дирхаунд.txt
diff --git a/server/meta/breed_descriptions/доберман.txt b/server/services/descriptions/repository/breed_descriptions/доберман.txt
similarity index 100%
rename from server/meta/breed_descriptions/доберман.txt
rename to server/services/descriptions/repository/breed_descriptions/доберман.txt
diff --git a/server/meta/breed_descriptions/дхоль.txt b/server/services/descriptions/repository/breed_descriptions/дхоль.txt
similarity index 100%
rename from server/meta/breed_descriptions/дхоль.txt
rename to server/services/descriptions/repository/breed_descriptions/дхоль.txt
diff --git a/server/meta/breed_descriptions/жесткошёрстный_фокстерьер.txt b/server/services/descriptions/repository/breed_descriptions/жесткошёрстный_фокстерьер.txt
similarity index 100%
rename from server/meta/breed_descriptions/жесткошёрстный_фокстерьер.txt
rename to server/services/descriptions/repository/breed_descriptions/жесткошёрстный_фокстерьер.txt
diff --git a/server/meta/breed_descriptions/золотистый_ретривер.txt b/server/services/descriptions/repository/breed_descriptions/золотистый_ретривер.txt
similarity index 100%
rename from server/meta/breed_descriptions/золотистый_ретривер.txt
rename to server/services/descriptions/repository/breed_descriptions/золотистый_ретривер.txt
diff --git a/server/meta/breed_descriptions/ирландский_водяной_спаниель.txt b/server/services/descriptions/repository/breed_descriptions/ирландский_водяной_спаниель.txt
similarity index 100%
rename from server/meta/breed_descriptions/ирландский_водяной_спаниель.txt
rename to server/services/descriptions/repository/breed_descriptions/ирландский_водяной_спаниель.txt
diff --git a/server/meta/breed_descriptions/ирландский_волкодав.txt b/server/services/descriptions/repository/breed_descriptions/ирландский_волкодав.txt
similarity index 100%
rename from server/meta/breed_descriptions/ирландский_волкодав.txt
rename to server/services/descriptions/repository/breed_descriptions/ирландский_волкодав.txt
diff --git a/server/meta/breed_descriptions/ирландский_красный_сеттер.txt b/server/services/descriptions/repository/breed_descriptions/ирландский_красный_сеттер.txt
similarity index 100%
rename from server/meta/breed_descriptions/ирландский_красный_сеттер.txt
rename to server/services/descriptions/repository/breed_descriptions/ирландский_красный_сеттер.txt
diff --git a/server/meta/breed_descriptions/ирландский_мягкошёрстный_пшеничный_терьер.txt b/server/services/descriptions/repository/breed_descriptions/ирландский_мягкошёрстный_пшеничный_терьер.txt
similarity index 100%
rename from server/meta/breed_descriptions/ирландский_мягкошёрстный_пшеничный_терьер.txt
rename to server/services/descriptions/repository/breed_descriptions/ирландский_мягкошёрстный_пшеничный_терьер.txt
diff --git a/server/meta/breed_descriptions/ирландский_терьер.txt b/server/services/descriptions/repository/breed_descriptions/ирландский_терьер.txt
similarity index 100%
rename from server/meta/breed_descriptions/ирландский_терьер.txt
rename to server/services/descriptions/repository/breed_descriptions/ирландский_терьер.txt
diff --git a/server/meta/breed_descriptions/йоркширский_терьер.txt b/server/services/descriptions/repository/breed_descriptions/йоркширский_терьер.txt
similarity index 100%
rename from server/meta/breed_descriptions/йоркширский_терьер.txt
rename to server/services/descriptions/repository/breed_descriptions/йоркширский_терьер.txt
diff --git a/server/meta/breed_descriptions/карликовый _пинчер.txt b/server/services/descriptions/repository/breed_descriptions/карликовый _пинчер.txt
similarity index 100%
rename from server/meta/breed_descriptions/карликовый _пинчер.txt
rename to server/services/descriptions/repository/breed_descriptions/карликовый _пинчер.txt
diff --git a/server/meta/breed_descriptions/карликовый_пинчер.txt b/server/services/descriptions/repository/breed_descriptions/карликовый_пинчер.txt
similarity index 100%
rename from server/meta/breed_descriptions/карликовый_пинчер.txt
rename to server/services/descriptions/repository/breed_descriptions/карликовый_пинчер.txt
diff --git a/server/meta/breed_descriptions/кеесхонд.txt b/server/services/descriptions/repository/breed_descriptions/кеесхонд.txt
similarity index 100%
rename from server/meta/breed_descriptions/кеесхонд.txt
rename to server/services/descriptions/repository/breed_descriptions/кеесхонд.txt
diff --git a/server/meta/breed_descriptions/керн-терьер.txt b/server/services/descriptions/repository/breed_descriptions/керн-терьер.txt
similarity index 100%
rename from server/meta/breed_descriptions/керн-терьер.txt
rename to server/services/descriptions/repository/breed_descriptions/керн-терьер.txt
diff --git a/server/meta/breed_descriptions/керри-блю-терьер.txt b/server/services/descriptions/repository/breed_descriptions/керри-блю-терьер.txt
similarity index 100%
rename from server/meta/breed_descriptions/керри-блю-терьер.txt
rename to server/services/descriptions/repository/breed_descriptions/керри-блю-терьер.txt
diff --git a/server/meta/breed_descriptions/кинг-чарльз-спаниель.txt b/server/services/descriptions/repository/breed_descriptions/кинг-чарльз-спаниель.txt
similarity index 100%
rename from server/meta/breed_descriptions/кинг-чарльз-спаниель.txt
rename to server/services/descriptions/repository/breed_descriptions/кинг-чарльз-спаниель.txt
diff --git a/server/meta/breed_descriptions/кламбер-спаниель.txt b/server/services/descriptions/repository/breed_descriptions/кламбер-спаниель.txt
similarity index 100%
rename from server/meta/breed_descriptions/кламбер-спаниель.txt
rename to server/services/descriptions/repository/breed_descriptions/кламбер-спаниель.txt
diff --git a/server/meta/breed_descriptions/кокер-спаниель.txt b/server/services/descriptions/repository/breed_descriptions/кокер-спаниель.txt
similarity index 100%
rename from server/meta/breed_descriptions/кокер-спаниель.txt
rename to server/services/descriptions/repository/breed_descriptions/кокер-спаниель.txt
diff --git a/server/meta/breed_descriptions/колли.txt b/server/services/descriptions/repository/breed_descriptions/колли.txt
similarity index 100%
rename from server/meta/breed_descriptions/колли.txt
rename to server/services/descriptions/repository/breed_descriptions/колли.txt
diff --git a/server/meta/breed_descriptions/комондор.txt b/server/services/descriptions/repository/breed_descriptions/комондор.txt
similarity index 100%
rename from server/meta/breed_descriptions/комондор.txt
rename to server/services/descriptions/repository/breed_descriptions/комондор.txt
diff --git a/server/meta/breed_descriptions/континентальный_той-спаниель.txt b/server/services/descriptions/repository/breed_descriptions/континентальный_той-спаниель.txt
similarity index 100%
rename from server/meta/breed_descriptions/континентальный_той-спаниель.txt
rename to server/services/descriptions/repository/breed_descriptions/континентальный_той-спаниель.txt
diff --git a/server/meta/breed_descriptions/крапчато-голубой_кунхаунд.txt b/server/services/descriptions/repository/breed_descriptions/крапчато-голубой_кунхаунд.txt
similarity index 100%
rename from server/meta/breed_descriptions/крапчато-голубой_кунхаунд.txt
rename to server/services/descriptions/repository/breed_descriptions/крапчато-голубой_кунхаунд.txt
diff --git a/server/meta/breed_descriptions/красный_кунхаунд.txt b/server/services/descriptions/repository/breed_descriptions/красный_кунхаунд.txt
similarity index 100%
rename from server/meta/breed_descriptions/красный_кунхаунд.txt
rename to server/services/descriptions/repository/breed_descriptions/красный_кунхаунд.txt
diff --git a/server/meta/breed_descriptions/ксолоитцкуинтли.txt b/server/services/descriptions/repository/breed_descriptions/ксолоитцкуинтли.txt
similarity index 100%
rename from server/meta/breed_descriptions/ксолоитцкуинтли.txt
rename to server/services/descriptions/repository/breed_descriptions/ксолоитцкуинтли.txt
diff --git a/server/meta/breed_descriptions/кувас.txt b/server/services/descriptions/repository/breed_descriptions/кувас.txt
similarity index 100%
rename from server/meta/breed_descriptions/кувас.txt
rename to server/services/descriptions/repository/breed_descriptions/кувас.txt
diff --git a/server/meta/breed_descriptions/курцхаар.txt b/server/services/descriptions/repository/breed_descriptions/курцхаар.txt
similarity index 100%
rename from server/meta/breed_descriptions/курцхаар.txt
rename to server/services/descriptions/repository/breed_descriptions/курцхаар.txt
diff --git a/server/meta/breed_descriptions/курчавошёрстный_ретривер.txt b/server/services/descriptions/repository/breed_descriptions/курчавошёрстный_ретривер.txt
similarity index 100%
rename from server/meta/breed_descriptions/курчавошёрстный_ретривер.txt
rename to server/services/descriptions/repository/breed_descriptions/курчавошёрстный_ретривер.txt
diff --git a/server/meta/breed_descriptions/лабрадор-ретривер.txt b/server/services/descriptions/repository/breed_descriptions/лабрадор-ретривер.txt
similarity index 100%
rename from server/meta/breed_descriptions/лабрадор-ретривер.txt
rename to server/services/descriptions/repository/breed_descriptions/лабрадор-ретривер.txt
diff --git a/server/meta/breed_descriptions/левретка.txt b/server/services/descriptions/repository/breed_descriptions/левретка.txt
similarity index 100%
rename from server/meta/breed_descriptions/левретка.txt
rename to server/services/descriptions/repository/breed_descriptions/левретка.txt
diff --git a/server/meta/breed_descriptions/лейкленд-терьер.txt b/server/services/descriptions/repository/breed_descriptions/лейкленд-терьер.txt
similarity index 100%
rename from server/meta/breed_descriptions/лейкленд-терьер.txt
rename to server/services/descriptions/repository/breed_descriptions/лейкленд-терьер.txt
diff --git a/server/meta/breed_descriptions/леонбергер.txt b/server/services/descriptions/repository/breed_descriptions/леонбергер.txt
similarity index 100%
rename from server/meta/breed_descriptions/леонбергер.txt
rename to server/services/descriptions/repository/breed_descriptions/леонбергер.txt
diff --git a/server/meta/breed_descriptions/лхасский_апсо.txt b/server/services/descriptions/repository/breed_descriptions/лхасский_апсо.txt
similarity index 100%
rename from server/meta/breed_descriptions/лхасский_апсо.txt
rename to server/services/descriptions/repository/breed_descriptions/лхасский_апсо.txt
diff --git a/server/meta/breed_descriptions/маламут.txt b/server/services/descriptions/repository/breed_descriptions/маламут.txt
similarity index 100%
rename from server/meta/breed_descriptions/маламут.txt
rename to server/services/descriptions/repository/breed_descriptions/маламут.txt
diff --git a/server/meta/breed_descriptions/малинуа.txt b/server/services/descriptions/repository/breed_descriptions/малинуа.txt
similarity index 100%
rename from server/meta/breed_descriptions/малинуа.txt
rename to server/services/descriptions/repository/breed_descriptions/малинуа.txt
diff --git a/server/meta/breed_descriptions/малые_бельгийские_собаки.txt b/server/services/descriptions/repository/breed_descriptions/малые_бельгийские_собаки.txt
similarity index 100%
rename from server/meta/breed_descriptions/малые_бельгийские_собаки.txt
rename to server/services/descriptions/repository/breed_descriptions/малые_бельгийские_собаки.txt
diff --git a/server/meta/breed_descriptions/мальтийская_болонка.txt b/server/services/descriptions/repository/breed_descriptions/мальтийская_болонка.txt
similarity index 100%
rename from server/meta/breed_descriptions/мальтийская_болонка.txt
rename to server/services/descriptions/repository/breed_descriptions/мальтийская_болонка.txt
diff --git a/server/meta/breed_descriptions/миниатюрный_пудель.txt b/server/services/descriptions/repository/breed_descriptions/миниатюрный_пудель.txt
similarity index 100%
rename from server/meta/breed_descriptions/миниатюрный_пудель.txt
rename to server/services/descriptions/repository/breed_descriptions/миниатюрный_пудель.txt
diff --git a/server/meta/breed_descriptions/миттельшнауцер.txt b/server/services/descriptions/repository/breed_descriptions/миттельшнауцер.txt
similarity index 100%
rename from server/meta/breed_descriptions/миттельшнауцер.txt
rename to server/services/descriptions/repository/breed_descriptions/миттельшнауцер.txt
diff --git a/server/meta/breed_descriptions/мопс.txt b/server/services/descriptions/repository/breed_descriptions/мопс.txt
similarity index 100%
rename from server/meta/breed_descriptions/мопс.txt
rename to server/services/descriptions/repository/breed_descriptions/мопс.txt
diff --git a/server/meta/breed_descriptions/немецкая_овчарка.txt b/server/services/descriptions/repository/breed_descriptions/немецкая_овчарка.txt
similarity index 100%
rename from server/meta/breed_descriptions/немецкая_овчарка.txt
rename to server/services/descriptions/repository/breed_descriptions/немецкая_овчарка.txt
diff --git a/server/meta/breed_descriptions/немецкий_дог.txt b/server/services/descriptions/repository/breed_descriptions/немецкий_дог.txt
similarity index 100%
rename from server/meta/breed_descriptions/немецкий_дог.txt
rename to server/services/descriptions/repository/breed_descriptions/немецкий_дог.txt
diff --git a/server/meta/breed_descriptions/норвежский_серый_элкхунд.txt b/server/services/descriptions/repository/breed_descriptions/норвежский_серый_элкхунд.txt
similarity index 100%
rename from server/meta/breed_descriptions/норвежский_серый_элкхунд.txt
rename to server/services/descriptions/repository/breed_descriptions/норвежский_серый_элкхунд.txt
diff --git a/server/meta/breed_descriptions/норвич-терьер.txt b/server/services/descriptions/repository/breed_descriptions/норвич-терьер.txt
similarity index 100%
rename from server/meta/breed_descriptions/норвич-терьер.txt
rename to server/services/descriptions/repository/breed_descriptions/норвич-терьер.txt
diff --git a/server/meta/breed_descriptions/норфолк-терьер.txt b/server/services/descriptions/repository/breed_descriptions/норфолк-терьер.txt
similarity index 100%
rename from server/meta/breed_descriptions/норфолк-терьер.txt
rename to server/services/descriptions/repository/breed_descriptions/норфолк-терьер.txt
diff --git a/server/meta/breed_descriptions/ньюфаундленд.txt b/server/services/descriptions/repository/breed_descriptions/ньюфаундленд.txt
similarity index 100%
rename from server/meta/breed_descriptions/ньюфаундленд.txt
rename to server/services/descriptions/repository/breed_descriptions/ньюфаундленд.txt
diff --git a/server/meta/breed_descriptions/оттерхаунд.txt b/server/services/descriptions/repository/breed_descriptions/оттерхаунд.txt
similarity index 100%
rename from server/meta/breed_descriptions/оттерхаунд.txt
rename to server/services/descriptions/repository/breed_descriptions/оттерхаунд.txt
diff --git a/server/meta/breed_descriptions/пекинес.txt b/server/services/descriptions/repository/breed_descriptions/пекинес.txt
similarity index 100%
rename from server/meta/breed_descriptions/пекинес.txt
rename to server/services/descriptions/repository/breed_descriptions/пекинес.txt
diff --git a/server/meta/breed_descriptions/пиренейская _горная_собака.txt b/server/services/descriptions/repository/breed_descriptions/пиренейская _горная_собака.txt
similarity index 100%
rename from server/meta/breed_descriptions/пиренейская _горная_собака.txt
rename to server/services/descriptions/repository/breed_descriptions/пиренейская _горная_собака.txt
diff --git a/server/meta/breed_descriptions/померанский_шпиц.txt b/server/services/descriptions/repository/breed_descriptions/померанский_шпиц.txt
similarity index 100%
rename from server/meta/breed_descriptions/померанский_шпиц.txt
rename to server/services/descriptions/repository/breed_descriptions/померанский_шпиц.txt
diff --git a/server/meta/breed_descriptions/прямошёрстный_ретривер.txt b/server/services/descriptions/repository/breed_descriptions/прямошёрстный_ретривер.txt
similarity index 100%
rename from server/meta/breed_descriptions/прямошёрстный_ретривер.txt
rename to server/services/descriptions/repository/breed_descriptions/прямошёрстный_ретривер.txt
diff --git a/server/meta/breed_descriptions/ризеншнауцер.txt b/server/services/descriptions/repository/breed_descriptions/ризеншнауцер.txt
similarity index 100%
rename from server/meta/breed_descriptions/ризеншнауцер.txt
rename to server/services/descriptions/repository/breed_descriptions/ризеншнауцер.txt
diff --git a/server/meta/breed_descriptions/родезийский риджбек.txt b/server/services/descriptions/repository/breed_descriptions/родезийский риджбек.txt
similarity index 100%
rename from server/meta/breed_descriptions/родезийский риджбек.txt
rename to server/services/descriptions/repository/breed_descriptions/родезийский риджбек.txt
diff --git a/server/meta/breed_descriptions/ротвейлер.txt b/server/services/descriptions/repository/breed_descriptions/ротвейлер.txt
similarity index 100%
rename from server/meta/breed_descriptions/ротвейлер.txt
rename to server/services/descriptions/repository/breed_descriptions/ротвейлер.txt
diff --git a/server/meta/breed_descriptions/русская_псовая_борзая.txt b/server/services/descriptions/repository/breed_descriptions/русская_псовая_борзая.txt
similarity index 100%
rename from server/meta/breed_descriptions/русская_псовая_борзая.txt
rename to server/services/descriptions/repository/breed_descriptions/русская_псовая_борзая.txt
diff --git a/server/meta/breed_descriptions/русский_той.txt b/server/services/descriptions/repository/breed_descriptions/русский_той.txt
similarity index 100%
rename from server/meta/breed_descriptions/русский_той.txt
rename to server/services/descriptions/repository/breed_descriptions/русский_той.txt
diff --git a/server/meta/breed_descriptions/салюки.txt b/server/services/descriptions/repository/breed_descriptions/салюки.txt
similarity index 100%
rename from server/meta/breed_descriptions/салюки.txt
rename to server/services/descriptions/repository/breed_descriptions/салюки.txt
diff --git a/server/meta/breed_descriptions/самоед.txt b/server/services/descriptions/repository/breed_descriptions/самоед.txt
similarity index 100%
rename from server/meta/breed_descriptions/самоед.txt
rename to server/services/descriptions/repository/breed_descriptions/самоед.txt
diff --git a/server/meta/breed_descriptions/сенбернар.txt b/server/services/descriptions/repository/breed_descriptions/сенбернар.txt
similarity index 100%
rename from server/meta/breed_descriptions/сенбернар.txt
rename to server/services/descriptions/repository/breed_descriptions/сенбернар.txt
diff --git a/server/meta/breed_descriptions/сибирский_хаски.txt b/server/services/descriptions/repository/breed_descriptions/сибирский_хаски.txt
similarity index 100%
rename from server/meta/breed_descriptions/сибирский_хаски.txt
rename to server/services/descriptions/repository/breed_descriptions/сибирский_хаски.txt
diff --git a/server/meta/breed_descriptions/силихем-терьер.txt b/server/services/descriptions/repository/breed_descriptions/силихем-терьер.txt
similarity index 100%
rename from server/meta/breed_descriptions/силихем-терьер.txt
rename to server/services/descriptions/repository/breed_descriptions/силихем-терьер.txt
diff --git a/server/meta/breed_descriptions/стандартный_пудель.txt b/server/services/descriptions/repository/breed_descriptions/стандартный_пудель.txt
similarity index 100%
rename from server/meta/breed_descriptions/стандартный_пудель.txt
rename to server/services/descriptions/repository/breed_descriptions/стандартный_пудель.txt
diff --git a/server/meta/breed_descriptions/стаффордширский_бультерьер.txt b/server/services/descriptions/repository/breed_descriptions/стаффордширский_бультерьер.txt
similarity index 100%
rename from server/meta/breed_descriptions/стаффордширский_бультерьер.txt
rename to server/services/descriptions/repository/breed_descriptions/стаффордширский_бультерьер.txt
diff --git a/server/meta/breed_descriptions/суссекс-спаниель.txt b/server/services/descriptions/repository/breed_descriptions/суссекс-спаниель.txt
similarity index 100%
rename from server/meta/breed_descriptions/суссекс-спаниель.txt
rename to server/services/descriptions/repository/breed_descriptions/суссекс-спаниель.txt
diff --git a/server/meta/breed_descriptions/схипперке.txt b/server/services/descriptions/repository/breed_descriptions/схипперке.txt
similarity index 100%
rename from server/meta/breed_descriptions/схипперке.txt
rename to server/services/descriptions/repository/breed_descriptions/схипперке.txt
diff --git a/server/meta/breed_descriptions/тибетский_мастиф.txt b/server/services/descriptions/repository/breed_descriptions/тибетский_мастиф.txt
similarity index 100%
rename from server/meta/breed_descriptions/тибетский_мастиф.txt
rename to server/services/descriptions/repository/breed_descriptions/тибетский_мастиф.txt
diff --git a/server/meta/breed_descriptions/тибетский_терьер.txt b/server/services/descriptions/repository/breed_descriptions/тибетский_терьер.txt
similarity index 100%
rename from server/meta/breed_descriptions/тибетский_терьер.txt
rename to server/services/descriptions/repository/breed_descriptions/тибетский_терьер.txt
diff --git a/server/meta/breed_descriptions/той_пудель.txt b/server/services/descriptions/repository/breed_descriptions/той_пудель.txt
similarity index 100%
rename from server/meta/breed_descriptions/той_пудель.txt
rename to server/services/descriptions/repository/breed_descriptions/той_пудель.txt
diff --git a/server/meta/breed_descriptions/триин-уокер_кунхаунд.txt b/server/services/descriptions/repository/breed_descriptions/триин-уокер_кунхаунд.txt
similarity index 100%
rename from server/meta/breed_descriptions/триин-уокер_кунхаунд.txt
rename to server/services/descriptions/repository/breed_descriptions/триин-уокер_кунхаунд.txt
diff --git a/server/meta/breed_descriptions/уиппет.txt b/server/services/descriptions/repository/breed_descriptions/уиппет.txt
similarity index 100%
rename from server/meta/breed_descriptions/уиппет.txt
rename to server/services/descriptions/repository/breed_descriptions/уиппет.txt
diff --git a/server/meta/breed_descriptions/фландрский_бувье.txt b/server/services/descriptions/repository/breed_descriptions/фландрский_бувье.txt
similarity index 100%
rename from server/meta/breed_descriptions/фландрский_бувье.txt
rename to server/services/descriptions/repository/breed_descriptions/фландрский_бувье.txt
diff --git a/server/meta/breed_descriptions/французский_бульдог.txt b/server/services/descriptions/repository/breed_descriptions/французский_бульдог.txt
similarity index 100%
rename from server/meta/breed_descriptions/французский_бульдог.txt
rename to server/services/descriptions/repository/breed_descriptions/французский_бульдог.txt
diff --git a/server/meta/breed_descriptions/цвергшнауцер.txt b/server/services/descriptions/repository/breed_descriptions/цвергшнауцер.txt
similarity index 100%
rename from server/meta/breed_descriptions/цвергшнауцер.txt
rename to server/services/descriptions/repository/breed_descriptions/цвергшнауцер.txt
diff --git a/server/meta/breed_descriptions/чау-чау.txt b/server/services/descriptions/repository/breed_descriptions/чау-чау.txt
similarity index 100%
rename from server/meta/breed_descriptions/чау-чау.txt
rename to server/services/descriptions/repository/breed_descriptions/чау-чау.txt
diff --git a/server/meta/breed_descriptions/чесапик-бей-ретривер.txt b/server/services/descriptions/repository/breed_descriptions/чесапик-бей-ретривер.txt
similarity index 100%
rename from server/meta/breed_descriptions/чесапик-бей-ретривер.txt
rename to server/services/descriptions/repository/breed_descriptions/чесапик-бей-ретривер.txt
diff --git a/server/meta/breed_descriptions/чихуахуа.txt b/server/services/descriptions/repository/breed_descriptions/чихуахуа.txt
similarity index 100%
rename from server/meta/breed_descriptions/чихуахуа.txt
rename to server/services/descriptions/repository/breed_descriptions/чихуахуа.txt
diff --git a/server/meta/breed_descriptions/чёрно-подпалый_кунхаунд.txt b/server/services/descriptions/repository/breed_descriptions/чёрно-подпалый_кунхаунд.txt
similarity index 100%
rename from server/meta/breed_descriptions/чёрно-подпалый_кунхаунд.txt
rename to server/services/descriptions/repository/breed_descriptions/чёрно-подпалый_кунхаунд.txt
diff --git a/server/meta/breed_descriptions/шелти.txt b/server/services/descriptions/repository/breed_descriptions/шелти.txt
similarity index 100%
rename from server/meta/breed_descriptions/шелти.txt
rename to server/services/descriptions/repository/breed_descriptions/шелти.txt
diff --git a/server/meta/breed_descriptions/ши-тцу.txt b/server/services/descriptions/repository/breed_descriptions/ши-тцу.txt
similarity index 100%
rename from server/meta/breed_descriptions/ши-тцу.txt
rename to server/services/descriptions/repository/breed_descriptions/ши-тцу.txt
diff --git a/server/meta/breed_descriptions/шиба_ину.txt b/server/services/descriptions/repository/breed_descriptions/шиба_ину.txt
similarity index 100%
rename from server/meta/breed_descriptions/шиба_ину.txt
rename to server/services/descriptions/repository/breed_descriptions/шиба_ину.txt
diff --git a/server/meta/breed_descriptions/шотландский_сеттер.txt b/server/services/descriptions/repository/breed_descriptions/шотландский_сеттер.txt
similarity index 100%
rename from server/meta/breed_descriptions/шотландский_сеттер.txt
rename to server/services/descriptions/repository/breed_descriptions/шотландский_сеттер.txt
diff --git a/server/meta/breed_descriptions/шотландский_терьер.txt b/server/services/descriptions/repository/breed_descriptions/шотландский_терьер.txt
similarity index 100%
rename from server/meta/breed_descriptions/шотландский_терьер.txt
rename to server/services/descriptions/repository/breed_descriptions/шотландский_терьер.txt
diff --git a/server/meta/breed_descriptions/энтлебухер_зенненхунд.txt b/server/services/descriptions/repository/breed_descriptions/энтлебухер_зенненхунд.txt
similarity index 100%
rename from server/meta/breed_descriptions/энтлебухер_зенненхунд.txt
rename to server/services/descriptions/repository/breed_descriptions/энтлебухер_зенненхунд.txt
diff --git a/server/meta/breed_descriptions/эрдельтерьер.txt b/server/services/descriptions/repository/breed_descriptions/эрдельтерьер.txt
similarity index 100%
rename from server/meta/breed_descriptions/эрдельтерьер.txt
rename to server/services/descriptions/repository/breed_descriptions/эрдельтерьер.txt
diff --git a/server/meta/breed_descriptions/японский хин.txt b/server/services/descriptions/repository/breed_descriptions/японский хин.txt
similarity index 100%
rename from server/meta/breed_descriptions/японский хин.txt
rename to server/services/descriptions/repository/breed_descriptions/японский хин.txt
diff --git a/server/meta/breed_signs/австралийский келпи.txt b/server/services/descriptions/repository/breed_signs/австралийский келпи.txt
similarity index 100%
rename from server/meta/breed_signs/австралийский келпи.txt
rename to server/services/descriptions/repository/breed_signs/австралийский келпи.txt
diff --git a/server/meta/breed_signs/австралийский терьер.txt b/server/services/descriptions/repository/breed_signs/австралийский терьер.txt
similarity index 100%
rename from server/meta/breed_signs/австралийский терьер.txt
rename to server/services/descriptions/repository/breed_signs/австралийский терьер.txt
diff --git a/server/meta/breed_signs/австралийский_шелковистый_терьер.txt b/server/services/descriptions/repository/breed_signs/австралийский_шелковистый_терьер.txt
similarity index 100%
rename from server/meta/breed_signs/австралийский_шелковистый_терьер.txt
rename to server/services/descriptions/repository/breed_signs/австралийский_шелковистый_терьер.txt
diff --git a/server/meta/breed_signs/американская_эскимосская_собака.txt b/server/services/descriptions/repository/breed_signs/американская_эскимосская_собака.txt
similarity index 100%
rename from server/meta/breed_signs/американская_эскимосская_собака.txt
rename to server/services/descriptions/repository/breed_signs/американская_эскимосская_собака.txt
diff --git a/server/meta/breed_signs/американский_бульдог.txt b/server/services/descriptions/repository/breed_signs/американский_бульдог.txt
similarity index 100%
rename from server/meta/breed_signs/американский_бульдог.txt
rename to server/services/descriptions/repository/breed_signs/американский_бульдог.txt
diff --git a/server/meta/breed_signs/американский_стаффордширский_терьер.txt b/server/services/descriptions/repository/breed_signs/американский_стаффордширский_терьер.txt
similarity index 100%
rename from server/meta/breed_signs/американский_стаффордширский_терьер.txt
rename to server/services/descriptions/repository/breed_signs/американский_стаффордширский_терьер.txt
diff --git a/server/meta/breed_signs/английский_сеттер.txt b/server/services/descriptions/repository/breed_signs/английский_сеттер.txt
similarity index 100%
rename from server/meta/breed_signs/английский_сеттер.txt
rename to server/services/descriptions/repository/breed_signs/английский_сеттер.txt
diff --git a/server/meta/breed_signs/английский_спрингер-спаниель.txt b/server/services/descriptions/repository/breed_signs/английский_спрингер-спаниель.txt
similarity index 100%
rename from server/meta/breed_signs/английский_спрингер-спаниель.txt
rename to server/services/descriptions/repository/breed_signs/английский_спрингер-спаниель.txt
diff --git a/server/meta/breed_signs/английский_фоксхаунд.txt b/server/services/descriptions/repository/breed_signs/английский_фоксхаунд.txt
similarity index 100%
rename from server/meta/breed_signs/английский_фоксхаунд.txt
rename to server/services/descriptions/repository/breed_signs/английский_фоксхаунд.txt
diff --git a/server/meta/breed_signs/аппенцеллер_зенненхунд.txt b/server/services/descriptions/repository/breed_signs/аппенцеллер_зенненхунд.txt
similarity index 100%
rename from server/meta/breed_signs/аппенцеллер_зенненхунд.txt
rename to server/services/descriptions/repository/breed_signs/аппенцеллер_зенненхунд.txt
diff --git a/server/meta/breed_signs/аффенпинчер.txt b/server/services/descriptions/repository/breed_signs/аффенпинчер.txt
similarity index 100%
rename from server/meta/breed_signs/аффенпинчер.txt
rename to server/services/descriptions/repository/breed_signs/аффенпинчер.txt
diff --git a/server/meta/breed_signs/басенджи.txt b/server/services/descriptions/repository/breed_signs/басенджи.txt
similarity index 100%
rename from server/meta/breed_signs/басенджи.txt
rename to server/services/descriptions/repository/breed_signs/басенджи.txt
diff --git a/server/meta/breed_signs/бассет_хаунд.txt b/server/services/descriptions/repository/breed_signs/бассет_хаунд.txt
similarity index 100%
rename from server/meta/breed_signs/бассет_хаунд.txt
rename to server/services/descriptions/repository/breed_signs/бассет_хаунд.txt
diff --git a/server/meta/breed_signs/бедлингтон-терьер.txt b/server/services/descriptions/repository/breed_signs/бедлингтон-терьер.txt
similarity index 100%
rename from server/meta/breed_signs/бедлингтон-терьер.txt
rename to server/services/descriptions/repository/breed_signs/бедлингтон-терьер.txt
diff --git a/server/meta/breed_signs/бигль.txt b/server/services/descriptions/repository/breed_signs/бигль.txt
similarity index 100%
rename from server/meta/breed_signs/бигль.txt
rename to server/services/descriptions/repository/breed_signs/бигль.txt
diff --git a/server/meta/breed_signs/бобтейл.txt b/server/services/descriptions/repository/breed_signs/бобтейл.txt
similarity index 100%
rename from server/meta/breed_signs/бобтейл.txt
rename to server/services/descriptions/repository/breed_signs/бобтейл.txt
diff --git a/server/meta/breed_signs/боксер.txt b/server/services/descriptions/repository/breed_signs/боксер.txt
similarity index 100%
rename from server/meta/breed_signs/боксер.txt
rename to server/services/descriptions/repository/breed_signs/боксер.txt
diff --git a/server/meta/breed_signs/большой_швейцарский_зенненхунд.txt b/server/services/descriptions/repository/breed_signs/большой_швейцарский_зенненхунд.txt
similarity index 100%
rename from server/meta/breed_signs/большой_швейцарский_зенненхунд.txt
rename to server/services/descriptions/repository/breed_signs/большой_швейцарский_зенненхунд.txt
diff --git a/server/meta/breed_signs/бордер-колли.txt b/server/services/descriptions/repository/breed_signs/бордер-колли.txt
similarity index 100%
rename from server/meta/breed_signs/бордер-колли.txt
rename to server/services/descriptions/repository/breed_signs/бордер-колли.txt
diff --git a/server/meta/breed_signs/бордер-терьер.txt b/server/services/descriptions/repository/breed_signs/бордер-терьер.txt
similarity index 100%
rename from server/meta/breed_signs/бордер-терьер.txt
rename to server/services/descriptions/repository/breed_signs/бордер-терьер.txt
diff --git a/server/meta/breed_signs/бостон-терьер.txt b/server/services/descriptions/repository/breed_signs/бостон-терьер.txt
similarity index 100%
rename from server/meta/breed_signs/бостон-терьер.txt
rename to server/services/descriptions/repository/breed_signs/бостон-терьер.txt
diff --git a/server/meta/breed_signs/бретонский_эпаньоль.txt b/server/services/descriptions/repository/breed_signs/бретонский_эпаньоль.txt
similarity index 100%
rename from server/meta/breed_signs/бретонский_эпаньоль.txt
rename to server/services/descriptions/repository/breed_signs/бретонский_эпаньоль.txt
diff --git a/server/meta/breed_signs/бриар.txt b/server/services/descriptions/repository/breed_signs/бриар.txt
similarity index 100%
rename from server/meta/breed_signs/бриар.txt
rename to server/services/descriptions/repository/breed_signs/бриар.txt
diff --git a/server/meta/breed_signs/бульмастиф.txt b/server/services/descriptions/repository/breed_signs/бульмастиф.txt
similarity index 100%
rename from server/meta/breed_signs/бульмастиф.txt
rename to server/services/descriptions/repository/breed_signs/бульмастиф.txt
diff --git a/server/meta/breed_signs/веймаранер.txt b/server/services/descriptions/repository/breed_signs/веймаранер.txt
similarity index 100%
rename from server/meta/breed_signs/веймаранер.txt
rename to server/services/descriptions/repository/breed_signs/веймаранер.txt
diff --git a/server/meta/breed_signs/вельш-корги_кардиган.txt b/server/services/descriptions/repository/breed_signs/вельш-корги_кардиган.txt
similarity index 100%
rename from server/meta/breed_signs/вельш-корги_кардиган.txt
rename to server/services/descriptions/repository/breed_signs/вельш-корги_кардиган.txt
diff --git a/server/meta/breed_signs/вельш-корги_пемброк.txt b/server/services/descriptions/repository/breed_signs/вельш-корги_пемброк.txt
similarity index 100%
rename from server/meta/breed_signs/вельш-корги_пемброк.txt
rename to server/services/descriptions/repository/breed_signs/вельш-корги_пемброк.txt
diff --git a/server/meta/breed_signs/вельш-спрингер-спаниель.txt b/server/services/descriptions/repository/breed_signs/вельш-спрингер-спаниель.txt
similarity index 100%
rename from server/meta/breed_signs/вельш-спрингер-спаниель.txt
rename to server/services/descriptions/repository/breed_signs/вельш-спрингер-спаниель.txt
diff --git a/server/meta/breed_signs/венгерская_выжла.txt b/server/services/descriptions/repository/breed_signs/венгерская_выжла.txt
similarity index 100%
rename from server/meta/breed_signs/венгерская_выжла.txt
rename to server/services/descriptions/repository/breed_signs/венгерская_выжла.txt
diff --git a/server/meta/breed_signs/вест-хайленд-уайт-терьер.txt b/server/services/descriptions/repository/breed_signs/вест-хайленд-уайт-терьер.txt
similarity index 100%
rename from server/meta/breed_signs/вест-хайленд-уайт-терьер.txt
rename to server/services/descriptions/repository/breed_signs/вест-хайленд-уайт-терьер.txt
diff --git a/server/meta/breed_signs/гаванский_бишон.txt b/server/services/descriptions/repository/breed_signs/гаванский_бишон.txt
similarity index 100%
rename from server/meta/breed_signs/гаванский_бишон.txt
rename to server/services/descriptions/repository/breed_signs/гаванский_бишон.txt
diff --git a/server/meta/breed_signs/гиеновидная_собака.txt b/server/services/descriptions/repository/breed_signs/гиеновидная_собака.txt
similarity index 100%
rename from server/meta/breed_signs/гиеновидная_собака.txt
rename to server/services/descriptions/repository/breed_signs/гиеновидная_собака.txt
diff --git a/server/meta/breed_signs/грюнендаль.txt b/server/services/descriptions/repository/breed_signs/грюнендаль.txt
similarity index 100%
rename from server/meta/breed_signs/грюнендаль.txt
rename to server/services/descriptions/repository/breed_signs/грюнендаль.txt
diff --git a/server/meta/breed_signs/денди-динмонт-терьер.txt b/server/services/descriptions/repository/breed_signs/денди-динмонт-терьер.txt
similarity index 100%
rename from server/meta/breed_signs/денди-динмонт-терьер.txt
rename to server/services/descriptions/repository/breed_signs/денди-динмонт-терьер.txt
diff --git a/server/meta/breed_signs/динго.txt b/server/services/descriptions/repository/breed_signs/динго.txt
similarity index 100%
rename from server/meta/breed_signs/динго.txt
rename to server/services/descriptions/repository/breed_signs/динго.txt
diff --git a/server/meta/breed_signs/дирхаунд.txt b/server/services/descriptions/repository/breed_signs/дирхаунд.txt
similarity index 100%
rename from server/meta/breed_signs/дирхаунд.txt
rename to server/services/descriptions/repository/breed_signs/дирхаунд.txt
diff --git a/server/meta/breed_signs/доберман.txt b/server/services/descriptions/repository/breed_signs/доберман.txt
similarity index 100%
rename from server/meta/breed_signs/доберман.txt
rename to server/services/descriptions/repository/breed_signs/доберман.txt
diff --git a/server/meta/breed_signs/дхоль.txt b/server/services/descriptions/repository/breed_signs/дхоль.txt
similarity index 100%
rename from server/meta/breed_signs/дхоль.txt
rename to server/services/descriptions/repository/breed_signs/дхоль.txt
diff --git a/server/meta/breed_signs/жесткошёрстный_фокстерьер.txt b/server/services/descriptions/repository/breed_signs/жесткошёрстный_фокстерьер.txt
similarity index 100%
rename from server/meta/breed_signs/жесткошёрстный_фокстерьер.txt
rename to server/services/descriptions/repository/breed_signs/жесткошёрстный_фокстерьер.txt
diff --git a/server/meta/breed_signs/золотистый_ретривер.txt b/server/services/descriptions/repository/breed_signs/золотистый_ретривер.txt
similarity index 100%
rename from server/meta/breed_signs/золотистый_ретривер.txt
rename to server/services/descriptions/repository/breed_signs/золотистый_ретривер.txt
diff --git a/server/meta/breed_signs/ирландский_волкодав.txt b/server/services/descriptions/repository/breed_signs/ирландский_волкодав.txt
similarity index 100%
rename from server/meta/breed_signs/ирландский_волкодав.txt
rename to server/services/descriptions/repository/breed_signs/ирландский_волкодав.txt
diff --git a/server/meta/breed_signs/ирландский_красный_сеттер.txt b/server/services/descriptions/repository/breed_signs/ирландский_красный_сеттер.txt
similarity index 100%
rename from server/meta/breed_signs/ирландский_красный_сеттер.txt
rename to server/services/descriptions/repository/breed_signs/ирландский_красный_сеттер.txt
diff --git a/server/meta/breed_signs/ирландский_мягкошёрстный_пшеничный_терьер.txt b/server/services/descriptions/repository/breed_signs/ирландский_мягкошёрстный_пшеничный_терьер.txt
similarity index 100%
rename from server/meta/breed_signs/ирландский_мягкошёрстный_пшеничный_терьер.txt
rename to server/services/descriptions/repository/breed_signs/ирландский_мягкошёрстный_пшеничный_терьер.txt
diff --git a/server/meta/breed_signs/ирландский_терьер.txt b/server/services/descriptions/repository/breed_signs/ирландский_терьер.txt
similarity index 100%
rename from server/meta/breed_signs/ирландский_терьер.txt
rename to server/services/descriptions/repository/breed_signs/ирландский_терьер.txt
diff --git a/server/meta/breed_signs/йоркширский_терьер.txt b/server/services/descriptions/repository/breed_signs/йоркширский_терьер.txt
similarity index 100%
rename from server/meta/breed_signs/йоркширский_терьер.txt
rename to server/services/descriptions/repository/breed_signs/йоркширский_терьер.txt
diff --git a/server/meta/breed_signs/карликовый _пинчер.txt b/server/services/descriptions/repository/breed_signs/карликовый _пинчер.txt
similarity index 100%
rename from server/meta/breed_signs/карликовый _пинчер.txt
rename to server/services/descriptions/repository/breed_signs/карликовый _пинчер.txt
diff --git a/server/meta/breed_signs/кеесхонд.txt b/server/services/descriptions/repository/breed_signs/кеесхонд.txt
similarity index 100%
rename from server/meta/breed_signs/кеесхонд.txt
rename to server/services/descriptions/repository/breed_signs/кеесхонд.txt
diff --git a/server/meta/breed_signs/керн-терьер.txt b/server/services/descriptions/repository/breed_signs/керн-терьер.txt
similarity index 100%
rename from server/meta/breed_signs/керн-терьер.txt
rename to server/services/descriptions/repository/breed_signs/керн-терьер.txt
diff --git a/server/meta/breed_signs/керри-блю-терьер.txt b/server/services/descriptions/repository/breed_signs/керри-блю-терьер.txt
similarity index 100%
rename from server/meta/breed_signs/керри-блю-терьер.txt
rename to server/services/descriptions/repository/breed_signs/керри-блю-терьер.txt
diff --git a/server/meta/breed_signs/кинг-чарльз-спаниель.txt b/server/services/descriptions/repository/breed_signs/кинг-чарльз-спаниель.txt
similarity index 100%
rename from server/meta/breed_signs/кинг-чарльз-спаниель.txt
rename to server/services/descriptions/repository/breed_signs/кинг-чарльз-спаниель.txt
diff --git a/server/meta/breed_signs/кламбер-спаниель.txt b/server/services/descriptions/repository/breed_signs/кламбер-спаниель.txt
similarity index 100%
rename from server/meta/breed_signs/кламбер-спаниель.txt
rename to server/services/descriptions/repository/breed_signs/кламбер-спаниель.txt
diff --git a/server/meta/breed_signs/кокер-спаниель.txt b/server/services/descriptions/repository/breed_signs/кокер-спаниель.txt
similarity index 100%
rename from server/meta/breed_signs/кокер-спаниель.txt
rename to server/services/descriptions/repository/breed_signs/кокер-спаниель.txt
diff --git a/server/meta/breed_signs/колли.txt b/server/services/descriptions/repository/breed_signs/колли.txt
similarity index 100%
rename from server/meta/breed_signs/колли.txt
rename to server/services/descriptions/repository/breed_signs/колли.txt
diff --git a/server/meta/breed_signs/комондор.txt b/server/services/descriptions/repository/breed_signs/комондор.txt
similarity index 100%
rename from server/meta/breed_signs/комондор.txt
rename to server/services/descriptions/repository/breed_signs/комондор.txt
diff --git a/server/meta/breed_signs/континентальный_той-спаниель.txt b/server/services/descriptions/repository/breed_signs/континентальный_той-спаниель.txt
similarity index 100%
rename from server/meta/breed_signs/континентальный_той-спаниель.txt
rename to server/services/descriptions/repository/breed_signs/континентальный_той-спаниель.txt
diff --git a/server/meta/breed_signs/крапчато-голубой_кунхаунд.txt b/server/services/descriptions/repository/breed_signs/крапчато-голубой_кунхаунд.txt
similarity index 100%
rename from server/meta/breed_signs/крапчато-голубой_кунхаунд.txt
rename to server/services/descriptions/repository/breed_signs/крапчато-голубой_кунхаунд.txt
diff --git a/server/meta/breed_signs/красный_кунхаунд.txt b/server/services/descriptions/repository/breed_signs/красный_кунхаунд.txt
similarity index 100%
rename from server/meta/breed_signs/красный_кунхаунд.txt
rename to server/services/descriptions/repository/breed_signs/красный_кунхаунд.txt
diff --git a/server/meta/breed_signs/ксолоитцкуинтли.txt b/server/services/descriptions/repository/breed_signs/ксолоитцкуинтли.txt
similarity index 100%
rename from server/meta/breed_signs/ксолоитцкуинтли.txt
rename to server/services/descriptions/repository/breed_signs/ксолоитцкуинтли.txt
diff --git a/server/meta/breed_signs/кувас.txt b/server/services/descriptions/repository/breed_signs/кувас.txt
similarity index 100%
rename from server/meta/breed_signs/кувас.txt
rename to server/services/descriptions/repository/breed_signs/кувас.txt
diff --git a/server/meta/breed_signs/курцхаар.txt b/server/services/descriptions/repository/breed_signs/курцхаар.txt
similarity index 100%
rename from server/meta/breed_signs/курцхаар.txt
rename to server/services/descriptions/repository/breed_signs/курцхаар.txt
diff --git a/server/meta/breed_signs/курчавошёрстный_ретривер.txt b/server/services/descriptions/repository/breed_signs/курчавошёрстный_ретривер.txt
similarity index 100%
rename from server/meta/breed_signs/курчавошёрстный_ретривер.txt
rename to server/services/descriptions/repository/breed_signs/курчавошёрстный_ретривер.txt
diff --git a/server/meta/breed_signs/лабрадор-ретривер.txt b/server/services/descriptions/repository/breed_signs/лабрадор-ретривер.txt
similarity index 100%
rename from server/meta/breed_signs/лабрадор-ретривер.txt
rename to server/services/descriptions/repository/breed_signs/лабрадор-ретривер.txt
diff --git a/server/meta/breed_signs/левретка.txt b/server/services/descriptions/repository/breed_signs/левретка.txt
similarity index 100%
rename from server/meta/breed_signs/левретка.txt
rename to server/services/descriptions/repository/breed_signs/левретка.txt
diff --git a/server/meta/breed_signs/лейкленд-терьер.txt b/server/services/descriptions/repository/breed_signs/лейкленд-терьер.txt
similarity index 100%
rename from server/meta/breed_signs/лейкленд-терьер.txt
rename to server/services/descriptions/repository/breed_signs/лейкленд-терьер.txt
diff --git a/server/meta/breed_signs/леонбергер.txt b/server/services/descriptions/repository/breed_signs/леонбергер.txt
similarity index 100%
rename from server/meta/breed_signs/леонбергер.txt
rename to server/services/descriptions/repository/breed_signs/леонбергер.txt
diff --git a/server/meta/breed_signs/лхасский_апсо.txt b/server/services/descriptions/repository/breed_signs/лхасский_апсо.txt
similarity index 100%
rename from server/meta/breed_signs/лхасский_апсо.txt
rename to server/services/descriptions/repository/breed_signs/лхасский_апсо.txt
diff --git a/server/meta/breed_signs/маламут.txt b/server/services/descriptions/repository/breed_signs/маламут.txt
similarity index 100%
rename from server/meta/breed_signs/маламут.txt
rename to server/services/descriptions/repository/breed_signs/маламут.txt
diff --git a/server/meta/breed_signs/малинуа.txt b/server/services/descriptions/repository/breed_signs/малинуа.txt
similarity index 100%
rename from server/meta/breed_signs/малинуа.txt
rename to server/services/descriptions/repository/breed_signs/малинуа.txt
diff --git a/server/meta/breed_signs/малые_бельгийские_собаки.txt b/server/services/descriptions/repository/breed_signs/малые_бельгийские_собаки.txt
similarity index 100%
rename from server/meta/breed_signs/малые_бельгийские_собаки.txt
rename to server/services/descriptions/repository/breed_signs/малые_бельгийские_собаки.txt
diff --git a/server/meta/breed_signs/мальтийская_болонка.txt b/server/services/descriptions/repository/breed_signs/мальтийская_болонка.txt
similarity index 100%
rename from server/meta/breed_signs/мальтийская_болонка.txt
rename to server/services/descriptions/repository/breed_signs/мальтийская_болонка.txt
diff --git a/server/meta/breed_signs/миниатюрный_пудель.txt b/server/services/descriptions/repository/breed_signs/миниатюрный_пудель.txt
similarity index 100%
rename from server/meta/breed_signs/миниатюрный_пудель.txt
rename to server/services/descriptions/repository/breed_signs/миниатюрный_пудель.txt
diff --git a/server/meta/breed_signs/миттельшнауцер.txt b/server/services/descriptions/repository/breed_signs/миттельшнауцер.txt
similarity index 100%
rename from server/meta/breed_signs/миттельшнауцер.txt
rename to server/services/descriptions/repository/breed_signs/миттельшнауцер.txt
diff --git a/server/meta/breed_signs/мопс.txt b/server/services/descriptions/repository/breed_signs/мопс.txt
similarity index 100%
rename from server/meta/breed_signs/мопс.txt
rename to server/services/descriptions/repository/breed_signs/мопс.txt
diff --git a/server/meta/breed_signs/немецкая_овчарка.txt b/server/services/descriptions/repository/breed_signs/немецкая_овчарка.txt
similarity index 100%
rename from server/meta/breed_signs/немецкая_овчарка.txt
rename to server/services/descriptions/repository/breed_signs/немецкая_овчарка.txt
diff --git a/server/meta/breed_signs/немецкий_дог.txt b/server/services/descriptions/repository/breed_signs/немецкий_дог.txt
similarity index 100%
rename from server/meta/breed_signs/немецкий_дог.txt
rename to server/services/descriptions/repository/breed_signs/немецкий_дог.txt
diff --git a/server/meta/breed_signs/норвежский_серый_элкхунд.txt b/server/services/descriptions/repository/breed_signs/норвежский_серый_элкхунд.txt
similarity index 100%
rename from server/meta/breed_signs/норвежский_серый_элкхунд.txt
rename to server/services/descriptions/repository/breed_signs/норвежский_серый_элкхунд.txt
diff --git a/server/meta/breed_signs/норвич-терьер.txt b/server/services/descriptions/repository/breed_signs/норвич-терьер.txt
similarity index 100%
rename from server/meta/breed_signs/норвич-терьер.txt
rename to server/services/descriptions/repository/breed_signs/норвич-терьер.txt
diff --git a/server/meta/breed_signs/норфолк-терьер.txt b/server/services/descriptions/repository/breed_signs/норфолк-терьер.txt
similarity index 100%
rename from server/meta/breed_signs/норфолк-терьер.txt
rename to server/services/descriptions/repository/breed_signs/норфолк-терьер.txt
diff --git a/server/meta/breed_signs/ньюфаундленд.txt b/server/services/descriptions/repository/breed_signs/ньюфаундленд.txt
similarity index 100%
rename from server/meta/breed_signs/ньюфаундленд.txt
rename to server/services/descriptions/repository/breed_signs/ньюфаундленд.txt
diff --git a/server/meta/breed_signs/оттерхаунд.txt b/server/services/descriptions/repository/breed_signs/оттерхаунд.txt
similarity index 100%
rename from server/meta/breed_signs/оттерхаунд.txt
rename to server/services/descriptions/repository/breed_signs/оттерхаунд.txt
diff --git a/server/meta/breed_signs/пекинес.txt b/server/services/descriptions/repository/breed_signs/пекинес.txt
similarity index 100%
rename from server/meta/breed_signs/пекинес.txt
rename to server/services/descriptions/repository/breed_signs/пекинес.txt
diff --git a/server/meta/breed_signs/пиренейская _горная_собака.txt b/server/services/descriptions/repository/breed_signs/пиренейская _горная_собака.txt
similarity index 100%
rename from server/meta/breed_signs/пиренейская _горная_собака.txt
rename to server/services/descriptions/repository/breed_signs/пиренейская _горная_собака.txt
diff --git a/server/meta/breed_signs/поденко_ибиценко.txt b/server/services/descriptions/repository/breed_signs/поденко_ибиценко.txt
similarity index 100%
rename from server/meta/breed_signs/поденко_ибиценко.txt
rename to server/services/descriptions/repository/breed_signs/поденко_ибиценко.txt
diff --git a/server/meta/breed_signs/померанский_шпиц.txt b/server/services/descriptions/repository/breed_signs/померанский_шпиц.txt
similarity index 100%
rename from server/meta/breed_signs/померанский_шпиц.txt
rename to server/services/descriptions/repository/breed_signs/померанский_шпиц.txt
diff --git a/server/meta/breed_signs/прямошёрстный_ретривер.txt b/server/services/descriptions/repository/breed_signs/прямошёрстный_ретривер.txt
similarity index 100%
rename from server/meta/breed_signs/прямошёрстный_ретривер.txt
rename to server/services/descriptions/repository/breed_signs/прямошёрстный_ретривер.txt
diff --git a/server/meta/breed_signs/ризеншнауцер.txt b/server/services/descriptions/repository/breed_signs/ризеншнауцер.txt
similarity index 100%
rename from server/meta/breed_signs/ризеншнауцер.txt
rename to server/services/descriptions/repository/breed_signs/ризеншнауцер.txt
diff --git a/server/meta/breed_signs/родезийский риджбек.txt b/server/services/descriptions/repository/breed_signs/родезийский риджбек.txt
similarity index 100%
rename from server/meta/breed_signs/родезийский риджбек.txt
rename to server/services/descriptions/repository/breed_signs/родезийский риджбек.txt
diff --git a/server/meta/breed_signs/ротвейлер.txt b/server/services/descriptions/repository/breed_signs/ротвейлер.txt
similarity index 100%
rename from server/meta/breed_signs/ротвейлер.txt
rename to server/services/descriptions/repository/breed_signs/ротвейлер.txt
diff --git a/server/meta/breed_signs/русская_псовая_борзая.txt b/server/services/descriptions/repository/breed_signs/русская_псовая_борзая.txt
similarity index 100%
rename from server/meta/breed_signs/русская_псовая_борзая.txt
rename to server/services/descriptions/repository/breed_signs/русская_псовая_борзая.txt
diff --git a/server/meta/breed_signs/русский_той.txt b/server/services/descriptions/repository/breed_signs/русский_той.txt
similarity index 100%
rename from server/meta/breed_signs/русский_той.txt
rename to server/services/descriptions/repository/breed_signs/русский_той.txt
diff --git a/server/meta/breed_signs/салюки.txt b/server/services/descriptions/repository/breed_signs/салюки.txt
similarity index 100%
rename from server/meta/breed_signs/салюки.txt
rename to server/services/descriptions/repository/breed_signs/салюки.txt
diff --git a/server/meta/breed_signs/самоед.txt b/server/services/descriptions/repository/breed_signs/самоед.txt
similarity index 100%
rename from server/meta/breed_signs/самоед.txt
rename to server/services/descriptions/repository/breed_signs/самоед.txt
diff --git a/server/meta/breed_signs/сенбернар.txt b/server/services/descriptions/repository/breed_signs/сенбернар.txt
similarity index 100%
rename from server/meta/breed_signs/сенбернар.txt
rename to server/services/descriptions/repository/breed_signs/сенбернар.txt
diff --git a/server/meta/breed_signs/сибирский_хаски.txt b/server/services/descriptions/repository/breed_signs/сибирский_хаски.txt
similarity index 100%
rename from server/meta/breed_signs/сибирский_хаски.txt
rename to server/services/descriptions/repository/breed_signs/сибирский_хаски.txt
diff --git a/server/meta/breed_signs/силихем-терьер.txt b/server/services/descriptions/repository/breed_signs/силихем-терьер.txt
similarity index 100%
rename from server/meta/breed_signs/силихем-терьер.txt
rename to server/services/descriptions/repository/breed_signs/силихем-терьер.txt
diff --git a/server/meta/breed_signs/стандартный_пудель.txt b/server/services/descriptions/repository/breed_signs/стандартный_пудель.txt
similarity index 100%
rename from server/meta/breed_signs/стандартный_пудель.txt
rename to server/services/descriptions/repository/breed_signs/стандартный_пудель.txt
diff --git a/server/meta/breed_signs/стаффордширский_бультерьер.txt b/server/services/descriptions/repository/breed_signs/стаффордширский_бультерьер.txt
similarity index 100%
rename from server/meta/breed_signs/стаффордширский_бультерьер.txt
rename to server/services/descriptions/repository/breed_signs/стаффордширский_бультерьер.txt
diff --git a/server/meta/breed_signs/суссекс-спаниель.txt b/server/services/descriptions/repository/breed_signs/суссекс-спаниель.txt
similarity index 100%
rename from server/meta/breed_signs/суссекс-спаниель.txt
rename to server/services/descriptions/repository/breed_signs/суссекс-спаниель.txt
diff --git a/server/meta/breed_signs/схипперке.txt b/server/services/descriptions/repository/breed_signs/схипперке.txt
similarity index 100%
rename from server/meta/breed_signs/схипперке.txt
rename to server/services/descriptions/repository/breed_signs/схипперке.txt
diff --git a/server/meta/breed_signs/тибетский_мастиф.txt b/server/services/descriptions/repository/breed_signs/тибетский_мастиф.txt
similarity index 100%
rename from server/meta/breed_signs/тибетский_мастиф.txt
rename to server/services/descriptions/repository/breed_signs/тибетский_мастиф.txt
diff --git a/server/meta/breed_signs/тибетский_терьер.txt b/server/services/descriptions/repository/breed_signs/тибетский_терьер.txt
similarity index 100%
rename from server/meta/breed_signs/тибетский_терьер.txt
rename to server/services/descriptions/repository/breed_signs/тибетский_терьер.txt
diff --git a/server/meta/breed_signs/той_пудель.txt b/server/services/descriptions/repository/breed_signs/той_пудель.txt
similarity index 100%
rename from server/meta/breed_signs/той_пудель.txt
rename to server/services/descriptions/repository/breed_signs/той_пудель.txt
diff --git a/server/meta/breed_signs/триин-уокер_кунхаунд.txt b/server/services/descriptions/repository/breed_signs/триин-уокер_кунхаунд.txt
similarity index 100%
rename from server/meta/breed_signs/триин-уокер_кунхаунд.txt
rename to server/services/descriptions/repository/breed_signs/триин-уокер_кунхаунд.txt
diff --git a/server/meta/breed_signs/уиппет.txt b/server/services/descriptions/repository/breed_signs/уиппет.txt
similarity index 100%
rename from server/meta/breed_signs/уиппет.txt
rename to server/services/descriptions/repository/breed_signs/уиппет.txt
diff --git a/server/meta/breed_signs/фландрский_бувье.txt b/server/services/descriptions/repository/breed_signs/фландрский_бувье.txt
similarity index 100%
rename from server/meta/breed_signs/фландрский_бувье.txt
rename to server/services/descriptions/repository/breed_signs/фландрский_бувье.txt
diff --git a/server/meta/breed_signs/французский_бульдог.txt b/server/services/descriptions/repository/breed_signs/французский_бульдог.txt
similarity index 100%
rename from server/meta/breed_signs/французский_бульдог.txt
rename to server/services/descriptions/repository/breed_signs/французский_бульдог.txt
diff --git a/server/meta/breed_signs/цвергшнауцер.txt b/server/services/descriptions/repository/breed_signs/цвергшнауцер.txt
similarity index 100%
rename from server/meta/breed_signs/цвергшнауцер.txt
rename to server/services/descriptions/repository/breed_signs/цвергшнауцер.txt
diff --git a/server/meta/breed_signs/чау-чау.txt b/server/services/descriptions/repository/breed_signs/чау-чау.txt
similarity index 100%
rename from server/meta/breed_signs/чау-чау.txt
rename to server/services/descriptions/repository/breed_signs/чау-чау.txt
diff --git a/server/meta/breed_signs/чесапик-бей-ретривер.txt b/server/services/descriptions/repository/breed_signs/чесапик-бей-ретривер.txt
similarity index 100%
rename from server/meta/breed_signs/чесапик-бей-ретривер.txt
rename to server/services/descriptions/repository/breed_signs/чесапик-бей-ретривер.txt
diff --git a/server/meta/breed_signs/чихуахуа.txt b/server/services/descriptions/repository/breed_signs/чихуахуа.txt
similarity index 100%
rename from server/meta/breed_signs/чихуахуа.txt
rename to server/services/descriptions/repository/breed_signs/чихуахуа.txt
diff --git a/server/meta/breed_signs/чёрно-подпалый_кунхаунд.txt b/server/services/descriptions/repository/breed_signs/чёрно-подпалый_кунхаунд.txt
similarity index 100%
rename from server/meta/breed_signs/чёрно-подпалый_кунхаунд.txt
rename to server/services/descriptions/repository/breed_signs/чёрно-подпалый_кунхаунд.txt
diff --git a/server/meta/breed_signs/шелти.txt b/server/services/descriptions/repository/breed_signs/шелти.txt
similarity index 100%
rename from server/meta/breed_signs/шелти.txt
rename to server/services/descriptions/repository/breed_signs/шелти.txt
diff --git a/server/meta/breed_signs/ши-тцу.txt b/server/services/descriptions/repository/breed_signs/ши-тцу.txt
similarity index 100%
rename from server/meta/breed_signs/ши-тцу.txt
rename to server/services/descriptions/repository/breed_signs/ши-тцу.txt
diff --git a/server/meta/breed_signs/шиба_ину.txt b/server/services/descriptions/repository/breed_signs/шиба_ину.txt
similarity index 100%
rename from server/meta/breed_signs/шиба_ину.txt
rename to server/services/descriptions/repository/breed_signs/шиба_ину.txt
diff --git a/server/meta/breed_signs/шотландский_сеттер.txt b/server/services/descriptions/repository/breed_signs/шотландский_сеттер.txt
similarity index 100%
rename from server/meta/breed_signs/шотландский_сеттер.txt
rename to server/services/descriptions/repository/breed_signs/шотландский_сеттер.txt
diff --git a/server/meta/breed_signs/шотландский_терьер.txt b/server/services/descriptions/repository/breed_signs/шотландский_терьер.txt
similarity index 100%
rename from server/meta/breed_signs/шотландский_терьер.txt
rename to server/services/descriptions/repository/breed_signs/шотландский_терьер.txt
diff --git a/server/meta/breed_signs/энтлебухер_зенненхунд.txt b/server/services/descriptions/repository/breed_signs/энтлебухер_зенненхунд.txt
similarity index 100%
rename from server/meta/breed_signs/энтлебухер_зенненхунд.txt
rename to server/services/descriptions/repository/breed_signs/энтлебухер_зенненхунд.txt
diff --git a/server/meta/breed_signs/эрдельтерьер.txt b/server/services/descriptions/repository/breed_signs/эрдельтерьер.txt
similarity index 100%
rename from server/meta/breed_signs/эрдельтерьер.txt
rename to server/services/descriptions/repository/breed_signs/эрдельтерьер.txt
diff --git a/server/meta/breed_signs/японский хин.txt b/server/services/descriptions/repository/breed_signs/японский хин.txt
similarity index 100%
rename from server/meta/breed_signs/японский хин.txt
rename to server/services/descriptions/repository/breed_signs/японский хин.txt
diff --git a/server/services/descriptions/repository/repository.py b/server/services/descriptions/repository/repository.py
new file mode 100644
index 0000000..9b248b3
--- /dev/null
+++ b/server/services/descriptions/repository/repository.py
@@ -0,0 +1,48 @@
+from abc import ABCMeta, abstractmethod
+from pathlib import Path
+
+from aiocache import cached, Cache # type: ignore
+
+from server.services.descriptions.domain import Breed
+
+
+class ACharactersRepository(metaclass=ABCMeta):
+ @abstractmethod
+ async def get_characters(self) -> list[Breed]:
+ pass
+
+ async def get_character(self, alias: str) -> Breed | None:
+ pass
+
+
+class CharactersRepository(ACharactersRepository):
+ def __init__(self):
+ pass
+
+ @cached(ttl=60, cache=Cache.MEMORY)
+ async def get_characters(self) -> list[Breed]:
+ breed_dir = Path("server/services/descriptions/repository/breed_descriptions")
+ breeds: list[Breed] = []
+
+ # Идем по каждому текстовому файлу с описанием породы
+ for breed_file in breed_dir.glob("*.txt"):
+ breed_name = breed_file.stem # имя файла без расширения - название породы
+ description = breed_file.read_text(
+ encoding="utf-8"
+ ) # читаем описание из файла
+ breeds.append(
+ Breed(
+ name=breed_name.replace("_", " "),
+ alias=breed_file.stem,
+ description=description.strip(),
+ )
+ )
+ breeds.sort(key=lambda b: b.name)
+ return breeds
+
+ async def get_character(self, alias: str) -> Breed | None:
+ breeds = await self.get_characters()
+ data = [b for b in breeds if b.alias == alias]
+ if len(data) == 0:
+ return None
+ return data[0]
diff --git a/server/services/descriptions/service.py b/server/services/descriptions/service.py
new file mode 100644
index 0000000..33d0ad2
--- /dev/null
+++ b/server/services/descriptions/service.py
@@ -0,0 +1,15 @@
+from server.services.descriptions.domain import Breed
+from server.services.descriptions.repository import ACharactersRepository
+
+
+class CharactersService:
+ __slots__ = ("_repository",)
+
+ def __init__(self, repository: ACharactersRepository):
+ self._repository = repository
+
+ async def get_characters(self) -> list[Breed]:
+ return await self._repository.get_characters()
+
+ async def get_character(self, alias: str) -> Breed | None:
+ return await self._repository.get_character(alias)
diff --git a/server/services/recognizer/__init__.py b/server/services/recognizer/__init__.py
new file mode 100644
index 0000000..2a7f6b1
--- /dev/null
+++ b/server/services/recognizer/__init__.py
@@ -0,0 +1,7 @@
+from server.services.recognizer.repository import (
+ RecognizerRepository,
+ ARecognizerRepository,
+)
+from server.services.recognizer.service import RecognizerService
+
+__all__ = ("RecognizerRepository", "ARecognizerRepository", "RecognizerService")
diff --git a/server/services/recognizer/domain.py b/server/services/recognizer/domain.py
new file mode 100644
index 0000000..e69de29
diff --git a/server/services/recognizer/repository/__init__.py b/server/services/recognizer/repository/__init__.py
new file mode 100644
index 0000000..6f6143f
--- /dev/null
+++ b/server/services/recognizer/repository/__init__.py
@@ -0,0 +1,6 @@
+from server.services.recognizer.repository.repository import (
+ RecognizerRepository,
+ ARecognizerRepository,
+)
+
+__all__ = ("RecognizerRepository", "ARecognizerRepository")
diff --git a/server/meta/images.json b/server/services/recognizer/repository/meta/images.json
similarity index 100%
rename from server/meta/images.json
rename to server/services/recognizer/repository/meta/images.json
diff --git a/server/meta/labels_cats.json b/server/services/recognizer/repository/meta/labels_cats.json
similarity index 100%
rename from server/meta/labels_cats.json
rename to server/services/recognizer/repository/meta/labels_cats.json
diff --git a/server/meta/labels_dogs.json b/server/services/recognizer/repository/meta/labels_dogs.json
similarity index 100%
rename from server/meta/labels_dogs.json
rename to server/services/recognizer/repository/meta/labels_dogs.json
diff --git a/server/services/recognizer/repository/repository.py b/server/services/recognizer/repository/repository.py
new file mode 100644
index 0000000..45bf6f6
--- /dev/null
+++ b/server/services/recognizer/repository/repository.py
@@ -0,0 +1,54 @@
+from abc import ABCMeta, abstractmethod
+from functools import lru_cache
+
+from aiocache import cached, Cache # type: ignore
+import ujson
+
+
+class ARecognizerRepository(metaclass=ABCMeta):
+ @abstractmethod
+ async def images_dogs(self) -> dict:
+ pass
+
+ @abstractmethod
+ async def images_cats(self) -> dict:
+ pass
+
+ @abstractmethod
+ def labels_dogs(self) -> dict:
+ pass
+
+ @abstractmethod
+ def labels_cats(self) -> dict:
+ pass
+
+
+class RecognizerRepository(ARecognizerRepository):
+ def __init__(self):
+ pass
+
+ @cached(ttl=60, cache=Cache.MEMORY)
+ async def images_dogs(self) -> dict:
+ with open("server/services/recognizer/repository/meta/images.json", "r") as f:
+ return ujson.loads(f.read())["dog"]
+
+ @cached(ttl=60, cache=Cache.MEMORY)
+ async def images_cats(self) -> dict:
+ with open("server/services/recognizer/repository/meta/images.json", "r") as f:
+ return ujson.loads(f.read())["cat"]
+
+ @lru_cache
+ def labels_cats(self) -> dict:
+ with open(
+ "server/services/recognizer/repository/meta/labels_cats.json", "r"
+ ) as f:
+ data_labels = f.read()
+ return ujson.loads(data_labels)
+
+ @lru_cache
+ def labels_dogs(self) -> dict:
+ with open(
+ "server/services/recognizer/repository/meta/labels_dogs.json", "r"
+ ) as f:
+ data_labels = f.read()
+ return ujson.loads(data_labels)
diff --git a/server/services/recognizer/service.py b/server/services/recognizer/service.py
new file mode 100644
index 0000000..e820cce
--- /dev/null
+++ b/server/services/recognizer/service.py
@@ -0,0 +1,113 @@
+from typing import NewType, Any
+import os
+import io
+
+from PIL import Image
+
+os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
+import torch
+from torchvision import transforms # type: ignore
+
+from server.services.recognizer.repository import ARecognizerRepository
+
+
+TorchModel = NewType("TorchModel", torch.nn.Module)
+
+
+def load_model(model_path, device="cpu") -> TorchModel:
+ model = torch.load(model_path, map_location=device, weights_only=False)
+ model.eval()
+ return TorchModel(model)
+
+
+DOG_MODEL = load_model("server/models/dogs_model.pth")
+CAT_MODEL = load_model("server/models/cats_model.pth")
+
+
+class RecognizerService:
+ __slots__ = "_repository"
+
+ def __init__(self, repository: ARecognizerRepository):
+ self._repository = repository
+
+ async def images_cats(self) -> dict:
+ return await self._repository.images_cats()
+
+ async def images_dogs(self) -> dict:
+ return await self._repository.images_dogs()
+
+ async def predict_dog_image(self, image: bytes) -> dict:
+ predicted_data = self._predict(image, DOG_MODEL)
+ results = {}
+ images = []
+ images_dogs = await self._repository.images_dogs()
+ for d in predicted_data:
+ predicted_idx, probabilities = d
+ predicted_label = self._repository.labels_dogs()[str(predicted_idx)]
+ name = predicted_label.replace("_", " ")
+ images.append(
+ {
+ "name": name,
+ "url": [
+ f"/static/assets/dog/{predicted_label}/{i}"
+ for i in images_dogs[predicted_label]
+ ],
+ }
+ )
+ results[probabilities] = name
+ return {
+ "results": results,
+ "images": images,
+ }
+
+ async def predict_cat_image(self, image: bytes) -> dict:
+ predicted_data = self._predict(image, CAT_MODEL)
+ results = {}
+ images = []
+ images_cats = await self._repository.images_cats()
+ for d in predicted_data:
+ predicted_idx, probabilities = d
+ predicted_label = self._repository.labels_cats()[str(predicted_idx)]
+ name = predicted_label.replace("_", " ")
+ images.append(
+ {
+ "name": name,
+ "url": [
+ f"/static/assets/dog/{predicted_label}/{i}"
+ for i in images_cats[predicted_label]
+ ],
+ }
+ )
+ results[probabilities] = name
+ return {
+ "results": results,
+ "images": images,
+ }
+
+ def _predict(self, image: bytes, model, device="cpu") -> list[Any]:
+ img_size = (224, 224)
+ preprocess = transforms.Compose(
+ [
+ transforms.Resize(img_size),
+ transforms.ToTensor(),
+ transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)),
+ ]
+ )
+ input_tensor = preprocess(Image.open(io.BytesIO(image)))
+ input_batch = input_tensor.unsqueeze(0).to(
+ device
+ ) # Добавляем dimension для батча
+
+ with torch.no_grad():
+ output = model(input_batch)
+
+ probabilities = torch.nn.functional.softmax(output[0], dim=0)
+ k = 5
+ topk_probs, predicted_idx = torch.topk(probabilities, k)
+
+ predicted_data = []
+ for i in range(k):
+ predicted_data.append(
+ (predicted_idx[i].item(), float(topk_probs[i].item()))
+ )
+ return predicted_data
diff --git a/server/static/scripts.js b/server/static/scripts.js
index 9f5b61c..75f1824 100644
--- a/server/static/scripts.js
+++ b/server/static/scripts.js
@@ -12,7 +12,6 @@ async function SavePhoto(self) {
let json = await response.json();
let text = "Результаты
";
let uniqChecker = {};
- document.getElementById("donate").style.display = "block";
// Функция для создания HTML галереи
const createGalleryHTML = (urls) => {
diff --git a/server/templates/base.html b/server/templates/base.html
index b2c668a..f5d58b2 100644
--- a/server/templates/base.html
+++ b/server/templates/base.html
@@ -6,9 +6,9 @@
{% block meta %}{% endblock %}
-
+
{% block title %}{% endblock %}
-
+
+