Крупний забудовник з каталогом 1000+ об'єктів витрачав 3 дні на написання оголошень під 5 порталів. Після впровадження нашого AI-генератора час скоротився до 2 годин. Проблема знайома кожному рієлтору та забудовнику: ручні описи шаблонні, покупці їх пролистують, менеджери витрачають години на правки. Ми розробили AI-генератор, який за секунди створює унікальні описи на основі характеристик, фотографій та геолокації. Наш досвід у NLP та Computer Vision дозволяє адаптувати рішення під будь-який портал — ЦІАН, Авіто, Яндекс.Нерухомість та закордонні майданчики. Модель GPT-4o з Vision API аналізує до 5 фото, визначає стан ремонту, матеріали оздоблення, особливості планування. Результат — конкретний опис без кліше. Ми використовуємо промпт-інжиніринг із системним повідомленням, яке задає стиль компанії та виключає порожні прикметники. Замовте демо-версію генератора для вашого каталогу.
Як AI генерує опис за фото?
На вхід подаються структуровані дані (тип, площа, поверх, адреса, ціна, зручності) та до 5 фотографій. Модель GPT-4o об'єднує текстові та візуальні ознаки: за фото визначає якість ремонту, матеріали, планування; з даних бере метраж та розташування. Промпт налаштований так, щоб першим абзацом йшла ключова інформація (розмір, локація, стан), а опис містив конкретні факти, а не «прекрасна квартира».
from openai import AsyncOpenAI
from dataclasses import dataclass
client = AsyncOpenAI()
@dataclass
class PropertyData:
property_type: str # apartment, house, commercial, land
deal_type: str # sale, rent
rooms: int
area: float # м²
floor: int
total_floors: int
address: str
district: str
metro_distance: int # хвилин пішки
price: float
renovated: bool
amenities: list[str] # балкон, паркінг, ліфт, комора...
year_built: int = None
ceiling_height: float = None
async def generate_property_listing(
property_data: PropertyData,
portal: str = "cian",
tone: str = "professional"
) -> dict:
PORTAL_CONFIGS = {
"cian": {"max_title": 100, "max_desc": 4000},
"avito": {"max_title": 80, "max_desc": 3000},
"yandex_realty": {"max_title": 100, "max_desc": 4000},
}
config = PORTAL_CONFIGS.get(portal, PORTAL_CONFIGS["cian"])
amenities_str = ", ".join(property_data.amenities)
response = await client.chat.completions.create(
model="gpt-4o",
messages=[{
"role": "system",
"content": f"""Ти — рієлтор, що пише продаючі оголошення для {portal}.
Стиль: конкретний, без води, цифри та факти.
Перший абзац — найважливіше (розмір, локація, стан).
НЕ пиши: "прекрасна квартира", "чудовий вид", порожні прикметники.
Заголовок: до {config['max_title']} символів.
Опис: до {config['max_desc']} символів.
Поверни JSON: {{title, description, key_features (3-5 фактів)}}"""
}, {
"role": "user",
"content": f"""
Тип: {property_data.property_type}, {property_data.deal_type}
Кімнат: {property_data.rooms}, Площа: {property_data.area} м²
Поверх: {property_data.floor}/{property_data.total_floors}
Адреса: {property_data.address}, {property_data.district}
До метро: {property_data.metro_distance} хв пішки
Ремонт: {'є' if property_data.renovated else 'потрібен'}
Зручності: {amenities_str}
{'Рік побудови: ' + str(property_data.year_built) if property_data.year_built else ''}
"""
}],
response_format={"type": "json_object"}
)
return json.loads(response.choices[0].message.content)
Аналіз фото через Vision API
async def describe_from_photos(photo_urls: list[str], property_type: str) -> str:
"""Аналізуємо фото квартири, описуємо стан"""
image_contents = [
{"type": "image_url", "image_url": {"url": url}}
for url in photo_urls[:5]
]
response = await client.chat.completions.create(
model="gpt-4o",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": f"Опиши стан {property_type} за фото. Вкажи: стан ремонту, матеріали оздоблення, особливості планування, видимі переваги. 3-4 речення, конкретно."}
] + image_contents
}]
)
return response.choices[0].message.content
Чому автоматизація описів вигідна?
Ручне написання одного оголошення займає 15–20 хвилин — при потоці 100 об'єктів на місяць це 30+ годин копірайтера. AI-генерація обробляє ту ж кількість за 10 хвилин без втрати якості. При цьому економія бюджету на копірайтинг досягає 90%. Порівняння:
| Параметр | Ручний опис | AI-генерація |
|---|---|---|
| Час на 1 оголошення | 15–20 хвилин | 2–5 секунд |
| Вартість за оголошення | суттєва | копійчана |
| Унікальність тексту | залежить від копірайтера | гарантована промптом |
| Адаптація під портал | вручну | автоматично |
| Аналіз фото | окремо | вбудовано |
AI-генерація в 15 разів швидша за людину при порівнянній якості. При цьому ми гарантуємо відповідність tone of voice компанії та виключаємо орфографічні помилки.
Як відбувається batch-обробка каталогу?
Для крупного забудовника з 500+ оголошеннями необхідна пакетна генерація. Ми використовуємо asyncio.gather (див. документацію Python), щоб обробляти об'єкти паралельно:
async def process_real_estate_catalog(
properties: list[dict],
portal: str = "cian"
) -> list[dict]:
generator_tasks = [
generate_property_listing(PropertyData(**p), portal=portal)
for p in properties
]
results = await asyncio.gather(*generator_tasks)
return [{"property": p, "listing": r} for p, r in zip(properties, results)]
Обробка каталогу з 500 об'єктів займає 15–30 хвилин. При цьому вартість генерації одного оголошення нікчемна. Термін впровадження — від 2 тижнів на скрипт генерації та інтеграцію з CRM. Конкретна вартість розраховується індивідуально під обсяг каталогу та вимоги до моделі.
Які типові помилки трапляються при впровадженні?
Ігнорування лімітів порталів — заголовок урізається, опис обрізається. Як зазначено в специфікації API ЦІАН, заголовок оголошення не повинен перевищувати 100 символів. Ми в промпті жорстко задаємо обмеження символів під кожен портал. Відсутність fallback при відмові API — якщо GPT-4o недоступний, система перемикається на резервну модель LLaMA 3 через власний inference. Генерація без перевірки фактів — модель може «додумати» поверх або площу. Додаємо в промпт інструкцію суворо спиратися на надані дані.
Процес впровадження
- Аналітика: аудит поточних оголошень, збір вимог до формату та стилю.
- Проектування: розробка промпту, налаштування Vision API, підготовка скриптів batch-генерації.
- Реалізація: написання коду генератора на Python з підтримкою async, інтеграція з CRM через REST API.
- Тестування: A/B-тест на 50 оголошеннях, коригування промпту за метриками CTR.
- Деплой: розгортання на вашому сервері або в хмарі, документування, навчання команди.
Технічні характеристики рішення:
| Параметр | Значення |
|---|---|
| Модель за замовчуванням | GPT-4o |
| Резервна модель | LLaMA 3 (inference) |
| Формат виводу | JSON (title, description, key_features) |
| Максимум фото | 5 на об'єкт |
| Підтримувані портали | ЦІАН, Авіто, Яндекс.Нерухомість, Zillow, Realtor |
| Мова промпту | Українська (адаптація під інші мови) |
| Протокол інтеграції | REST API / Webhook |
Що входить в роботу
- Промпт-інжиніринг під ваш каталог та tone of voice.
- Код генератора на Python (async, підтримка batch).
- Інтеграція з CRM (REST API, webhooks).
- Адаптація під 3 портали (ЦІАН, Авіто, Яндекс.Нерухомість або будь-які інші) з підтримкою української мови.
- Документація та навчання команди (2 години вебінар + запис).
- Підтримка 1 місяць після деплою.
Замовте пілотний проект — отримайте готовий скрипт за 2 тижні. Зв'яжіться з нами для оцінки вашого каталогу: ми підготуємо демо-генерацію на 50 об'єктах безкоштовно. Наш досвід — 5 років в AI-розробці, понад 20 проектів у сфері нерухомості. Отримайте консультацію з автоматизації ваших оголошень вже сьогодні.







