Разработка AI-системы для генерации описаний объектов недвижимости

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1 услугВсе 1566 услуг
Разработка AI-системы для генерации описаний объектов недвижимости
Простая
~2-3 рабочих дня
Часто задаваемые вопросы
Направления AI-разработки
Этапы разработки AI-решения
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1218
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    853
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1047
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    825

AI-генерация описаний объектов недвижимости

Автоматическая генерация объявлений о продаже/аренде недвижимости из структурированных данных. Применяется в агентствах, на порталах (ЦИАН, Авито, Яндекс.Недвижимость), у застройщиков с большими каталогами.

Генератор объявлений

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

Batch обработка каталога

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+ объектами — batch-генерация всего каталога занимает 15–30 минут. Стоимость через GPT-4o: ~$0.01–0.03 за объявление. Сроки: скрипт генерации + интеграция с CRM — 1–2 недели.