beerds/scripts/assistant/dogs_descriptions.py

58 lines
2.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import json
import os
import requests
# Основные настройки
OLLAMA_URL = "http://localhost:11434/api/generate"
MODEL_NAME = "qwen3:30b-a3b" # Имя модели в Ollama
def generate_breed_description(breed):
"""Генерирует описание породы с помощью Ollama"""
prompt = f"""Создай подробное и структурированное описание породы собаки {breed}, включая следующие разделы:
1. Происхождение и история породы
2. Физические характеристики (размер, вес, тип шерсти)
3. Характер и поведение (темперамент, уровень энергии, совместимость с детьми и другими животными, насколько опасна без тренировок)
4. Интеллект, способность к обучению, необходимость умственных нагрузок
5. Уход и содержание (необходимость в гигиене, тренировках, физической активности)
6. Потенциальные проблемы со здоровьем и продолжительность жизни
7. Рекомендуемое питание и режим кормления
8. Выводы кому подходит такая порода
Описание должно быть понятным для владельцев, с четкой структурой и полезной информацией."""
response = requests.post(OLLAMA_URL, json={"model": MODEL_NAME, "prompt": prompt, "stream": False})
if response.status_code == 200:
return response.json().get("response", "Не удалось получить описание")
else:
return f"Ошибка при генерации описания для {breed}"
def save_description(breed, description):
"""Сохраняет описание в файл"""
os.makedirs("breed_descriptions", exist_ok=True)
filename = f"breed_descriptions/{breed}.txt"
with open(filename, "w", encoding="utf-8") as f:
f.write(description)
print(f"Сохранено: {filename}")
def main():
with open("../../labels_dogs.json") as f:
beers = json.load(f)
for key in beers:
name = beers[key].replace("_", " ")
print(f"Генерация описания для {name}...")
if os.path.isfile(f"breed_descriptions/{beers[key]}.txt"):
print(f"Описание уже существует: {beers[key]}.")
continue
description = generate_breed_description(name)
save_description(beers[key], description)
if __name__ == "__main__":
main()