ГлавнаяБлогLeadPilot: AI-скоринг лидов на FastAPI и Claude
AI / Нейросети

LeadPilot: AI-скоринг лидов на FastAPI и Claude

Как я построил LeadPilot — AI-CRM с автоматическим скорингом лидов. Архитектура, код, развертывание. Читайте и применяйте!

Al
Редакция Algolitalgolit.ru
8 мин чтения10 августа 2026 г.

Что такое LeadPilot и зачем он нужен?

Вы когда-нибудь теряли ценного клиента, потому что не успели вовремя обработать заявку? Входящие лиды приходят без оценки и сортировки, и команда тратит часы на ручной триаж. Я решил эту проблему, создав LeadPilot — AI-систему автоматизации лидов, где каждый новый контакт получает оценку, квалификацию и черновик ответа мгновенно. В этой статье я разберу архитектуру, ключевые компоненты и код, чтобы вы могли внедрить похожее решение у себя.

Идея: мгновенный захват и асинхронный скоринг

LeadPilot работает по простому принципу: лид попадает в форму → попадает в очередь → воркер оценивает его от 0 до 100 с помощью Claude Haiku (определяет намерение, температуру, составляет сводку и персональный ответ) → лид появляется в канбан-пайплайне. Захват происходит мгновенно, а скоринг — асинхронно, поэтому пользователь не ждёт ответа системы.

Архитектура: 5 сервисов для масштабирования

Проект состоит из пяти независимых сервисов, каждый из которых выполняет свою роль. Это позволяет легко масштабировать нагрузку и обновлять компоненты без простоя.

  • app — статический фронтенд на React + Vite + Tailwind (SPA).
  • api — Python 3.12, FastAPI — отвечает за захват лидов, JWT-аутентификацию и пайплайн.
  • worker — Python 3.12, обрабатывает очередь и вызывает Claude.
  • db — PostgreSQL 16, хранит лидов и активность.
  • cache — Valkey 7.2, используется как очередь заданий и кэш.

API ставит задачу в Valkey и сразу возвращает ответ, а воркер (отдельный сервис) выполняет медленную AI-работу. Такая развязка через очередь позволяет обрабатывать пиковые нагрузки без потери данных.

Развертывание: инфраструктура как код

Сервисы общаются через приватную сеть с помощью ссылок на переменные окружения — никаких секретов в коде. Пример конфигурации:

run:
  envVariables:
    DB_HOST: ${db_hostname}
    DB_PASS: ${db_password}
    REDIS_HOST: ${cache_hostname}
    REDIS_PASSWORD: ${cache_password}
  start:
    python -m uvicorn app.main:app --host 0.0.0.0 --port 8080

Затем с помощью zcli я запушил API, воркер и фронтенд. Миграции выполняются один раз на версию через zsc execOnce, а эндпоинт /api/health обеспечивает обновления без даунтайма.

AI-скоринг: как это работает

Для скоринга используется Claude Haiku с детерминированным запасным вариантом, чтобы система никогда не падала. Я спроектировал архитектуру и протестировал всё, а написание кода ускорил с помощью Claude Code — это инструмент, который генерирует код по описанию. Вот упрощённый пример функции скоринга на Python:

import os
from anthropic import Anthropic

def score_lead(lead_data: dict) -> dict:
    """Оценивает лид от 0 до 100 и возвращает сводку."""
    client = Anthropic(api_key=os.getenv("ANTHROPIC_API_KEY"))
    prompt = f"Оцени лид: {lead_data}. Верни JSON с полями score, intent, summary."
    try:
        response = client.messages.create(
            model="claude-3-haiku-20240307",
            max_tokens=200,
            messages=[{"role": "user", "content": prompt}]
        )
        # Парсим JSON из ответа
        result = json.loads(response.content[0].text)
        return result
    except Exception:
        # Запасной вариант: детерминированная оценка
        score = min(100, len(lead_data.get("message", "")) * 2)
        return {"score": score, "intent": "unknown", "summary": "Запасной скоринг"}

Этот код можно интегрировать в воркер, который будет обрабатывать очередь из Valkey. Главное — не забыть про обработку ошибок и повторные попытки.

Практический вывод: что делать прямо сейчас

Если вы хотите автоматизировать обработку лидов в своём проекте, начните с малого: создайте FastAPI-приложение, подключите Valkey как очередь и напишите простого воркера. Используйте готовые AI-модели для скоринга, но всегда предусматривайте запасной вариант. Попробуйте LeadPilot вживую по ссылке и посмотрите код на GitHub — это отличный пример современной архитектуры. Внедряйте итеративно: сначала захват, потом скоринг, потом интеграция с CRM. Удачи!

#AI#FastAPI#скоринг лидов#очередь задач#Claude
Al
Редакция Algolit

Пишем про алгоритмы, подготовку к собеседованиям и карьеру в IT — так, чтобы было понятно и полезно.

Хочешь закрепить знания на практике?

Решай задачи на Algolit — интерактивная платформа для обучения

Начать бесплатно →