58 lines
2.8 KiB
Python
58 lines
2.8 KiB
Python
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()
|