Kaspi Дүкеннің айына $3 тұратын автодемпингі мен ЖИ-менеджері: Шымкенттегі автобөлшектер дүкені 4 операторды жалдаудан қалай бас тартты
Егер сіз Шымкентте Kaspi Дүкенде автобөлшектер сатып көрмеген болсаңыз — нағыз сандық гладиаторлық шайқастың не екенін әлі білмейсіз.
Төле би көшесіндегі «Автонұр» базарындағы үлкен автобөлшектер дүкенінің әдеттегі таңғы көрінісін елестетіп көріңізші. Таңғы сағат сегізде дүкен есігі ашылысымен, төрт менеджер-оператордың басына нағыз цунами құйылады: әр үш минут сайын көтерме қоймалардан қолымен жазылған мыж-мыж қағаз жүкқұжаттар (накладнойлар) келеді: «Рул. тяга Камри 40 555 ориг — 4 дана — 12500». Дәл осы уақытта бес жұмыс смартфонындағы WhatsApp тоқтаусыз шырылдайды: «Ассалаумағалейкум, бауырым! Камри 40-қа алдыңғы колодка бар ма? Дубликат па әлде оригинал ма? Түсіп бересіз бе?».
Ал дәл осы мезетте Kaspi Дүкеннің өзінде қызыл түсті басты «Сатып алу» (BuyBox) батырмасы үшін аяусыз соғыс жүріп жатады. Сіздің операторыңыз жиырма минутқа шай ішуге шығып кетсе болғаны — көрші бокстағы бәсекелес алдыңғы амортизатордың бағасын бар болғаны 1 теңгеге түсіреді де, күндізгі елу тапсырыстың барлығы лезде соған ауып кетеді.
Дүкен иесі төрт операторға айына шамамен 1 200 000 теңге жалақы төлейтін, бірақ бизнес бәрібір тұралап қалған еді: накладнойлар 1С базасына бір тәулік кешігіп енгізіледі, Kaspi-дегі бағалар екі күнде бір рет қолмен жаңартылады, ал түнде WhatsApp-қа жазған клиенттер жауап күтпей басқа дүкендерге кетіп қалатын.
Біз бұл жобаға сауданы толықтай автоматтандыру мақсатымен келдік. Біз Google Cloud Document AI, Cloud Tasks және Vertex AI (Gemini 2.5 Flash) негізінде айына бар болғаны $3.20 (шамамен 1 600 теңге) тұратын толық дербес серверсіз жүйе құрастырып бердік. Төменде — минусқа кетуден қорғайтын автодемпинг жүйесі BuyBox батырмасын ұтып алу үлесін қалай 89%-ға дейін көтергені және WhatsApp-тағы ЖИ-кеңесші сауданың 74%-ын адамның қатысуынсыз қалай жабатыны туралы толық инженерлік талдау.
1. Маркетплейс соғысы: Неліктен қолмен басқару шығынға батырады
Kaspi Дүкен өте прагматикалық құрылған: тауар карточкасында сатып алушылардың 92%-ы басқа 30 сатушының тізімін ашпай-ақ, тікелей қызыл «Сатып алу» батырмасын басады. Бұл батырманы рейтингі жоғары және жеткізу жылдамдығын ескере отырып, ең төмен бағаны ұсынған сатушы алады.
Қолмен басқаратын кәдімгі дүкен кезігетін басты кедергілер:
- Бағаға жауап берудің кешігуі (Latency): Оператор бәсекелестердің бағасын күніне 2–3 рет қана қолмен тексереді. Егер сағат 11:00-де бәсекелес бағаны түсірсе, дүкен келесі қолмен тексеруге дейін барлық тапсырыстардан айырылады. Адамның орташа кешігуі — 4-тен 8 сағатқа дейін созылады.
- Қағаз накладнойларды қолмен енгізудегі қателіктер: Жүздеген артикулды қолмен теру кезінде қателер міндетті түрде кетеді. Camry 30-дың бөлшегін Camry 40 деп сатып жіберсеңіз — қайтару, төмендеген рейтинг және Kaspi карточкасының бұғатталуына тап боласыз.
- Маржаны жоғалту және минусқа сату: Бағаны түсіруге тырысқан шаршаған оператор байқаусызда бағаны өзіндік құннан төмен қойып қоюы мүмкін. Селлерлердің бір түнде 40 ілінісу жиынтығын (сцепление) әр қорабынан 3 000 теңге шығынмен сатып жіберген мысалдары аз емес.
- WhatsApp-тағы түнгі тоқырау: Көлік иелерінің 42%-ы көлігі бұзылған кезде немесе жұмыстан босағанда сағат 21:00 мен 01:00 аралығында іздейді. Бұл уақытта операторлар ұйықтап жатады да, клиент басқа тәулік бойы істейтін дүкендерге кетеді.
Бұл мәселені шешу үшін екі контур қажет болды: нақты математикалық шегі бар асинхронды авторепрайсер және көптілді ақылды чат-агент.
2. Серверсіз репрайсер архитектурасы: Cloud Tasks + Gemini + Document AI
Тұрақты виртуалды серверлерге артық төлемеу үшін біз жүйені Google Cloud Platform басқарылатын серверсіз компоненттеріне құрдық:
┌─────────────────────────────────────────────────────────────┐
│ 1. Накладнойлар ағыны (Көтерме қоймалар, базарлар) │
│ - Мыж-мыж накладной фотосы смартфоннан -> Cloud Storage │
│ - Google Cloud Document AI арқылы өңдеу (Specialized Parser)│
│ - Артикулдар, бағалар мен қалдықтарды 0.8 сек ішінде тану │
└──────────────────────────────┬──────────────────────────────┘
│
▼ Қалдықтардың JSON ағыны
┌─────────────────────────────────────────────────────────────┐
│ 2. Репрайсинг кезегі: Google Cloud Tasks │
│ - Rate Limiting: 10 сұраныс/сек (Kaspi API лимиттерін сақтау│
│ - Минусқа кетуден қорғау: Hard Margin Guardrail │
│ - «Сатып алу» (BuyBox) алгоритмі: Баға = Min(Бәсекелес - 1₸)│
└──────────────────────────────┬──────────────────────────────┘
│
┌──────────────────┴──────────────────┐
│ Бағаларды синхрондау │ WhatsApp-тағы клиент сұранысы
▼ ▼
┌──────────────────────────────┐ ┌──────────────────────────────┐
│ Kaspi Merchant XML / REST API│ │ Vertex AI (Gemini 2.5 Flash) │
│ - Фидті 12 сек ішінде жаңарту│ │ - VIN бойынша бөлшек таңдау │
│ - Батырманы автоматты иелену │ │ - Шала-қазақша диалог │
│ - BuyBox үлесі: 89.4% │ │ - Kaspi Pay шот шығару │
└──────────────────────────────┘ └──────────────────────────────┘3. Python тіліндегі авторепрайсер мен ЖИ-оператордың бастапқы коды
Төменде қауіпсіз демпинг, Document AI арқылы накладнойларды тану және Gemini 2.5 Flash көмегімен WhatsApp-та кеңес беру логикасын біріктіретін микросервистің нақты коды берілген:
Біз ауа тасуды қалай доғардық: BigQuery GIS арқылы Алматы бойынша жеткізуді бағыттау
import os
import json
import time
import logging
from typing import Dict, Any, List, Optional
from google.cloud import tasks_v2
from google.cloud import documentai_v1 as documentai
import vertexai
from vertexai.generative_models import GenerativeModel, Part
# Логгер и базовые параметры микросервиса
logging.basicConfig(level=logging.INFO, format="%(asctime)s [%(levelname)s] [KASPI-AI-REPRICER] %(message)s")
logger = logging.getLogger("kaspi_repricer")
PROJECT_ID = os.getenv("GCP_PROJECT_ID", "shymkent-autospares-retail")
LOCATION = os.getenv("GCP_LOCATION", "us-central1")
QUEUE_NAME = "kaspi-repricing-tasks"
vertexai.init(project=PROJECT_ID, location=LOCATION)
gemini_model = GenerativeModel("gemini-2.5-flash")
doc_ai_client = documentai.DocumentProcessorServiceClient()
# Системный промпт консультанта по автозапчастям в Шымкенте
KASPI_WHATSAPP_PROMPT = """
Ты — старший консультант магазина автозапчастей в Шымкенте.
Общайся вежливо, живо, с легким уважительным южным колоритом. Понимай русский, казахский и шала-казахский языки.
Твоя цель:
1. Проверить совместимость детали по марке авто, году выпуска или VIN-коду (особенно популярные модели: Camry 10-70, Land Cruiser, Nexia, Cobalt).
2. Назвать наличие на складе, цену в тенге и предложить оформить заказ через Kaspi Pay / Kaspi Доставку или самовывоз с рынка «Автонур».
3. Если клиент просит скидку («Скидка болама?»), вежливо объяснить, что цена на Kaspi уже минимальная в городе с гарантией на деталь, но при покупке комплекта (например, колодки + диски) мы дарим омывайку или бесплатную замену.
Верни ответ в JSON:
{
"client_response_text": "Текст ответа клиенту в WhatsApp",
"part_matched": true,
"sku": "BRAKE-PAD-CAMRY40-FRONT",
"price_kzt": 14500,
"confidence": 0.98
}
"""
def calculate_optimal_buybox_price(current_min_price: int, cost_price: int, min_margin_kzt: int = 1500) -> int:
"""
Алгоритм умного демпинга за кнопку «Купить» (BuyBox) в Kaspi Магазине:
Снижаем цену на 1 тенге ниже минимального конкурента, но никогда не опускаемся ниже себестоимости с учетом минимальной маржи.
"""
hard_floor_price = cost_price + min_margin_kzt
target_price = current_min_price - 1
if target_price < hard_floor_price:
logger.warning(f"⚠️ Конкурент демпингует в убыток ({current_min_price} ₸). Удерживаем минимальную безопасную цену: {hard_floor_price} ₸")
return hard_floor_price
return target_price
async def parse_paper_invoice_document_ai(image_bytes: bytes, processor_name: str) -> List[Dict[str, Any]]:
"""
Распознавание мятых рукописных накладных от оптовиков через Google Cloud Document AI.
Извлекает артикул детали, наименование, количество и цену закупки.
"""
raw_document = documentai.RawDocument(content=image_bytes, mime_type="image/jpeg")
request = documentai.ProcessRequest(name=processor_name, raw_document=raw_document)
result = doc_ai_client.process_document(request=request)
document = result.document
parsed_items = []
logger.info(f"📄 Распознана накладная Document AI, найдено {len(document.entities)} сущностей.")
for entity in document.entities:
if entity.type_ == "line_item":
parsed_items.append({
"raw_text": entity.mention_text,
"confidence": round(entity.confidence, 3)
})
return parsed_items
async def handle_whatsapp_inquiry(user_message: str, car_context: Optional[str] = None) -> Dict[str, Any]:
"""
Мгновенная генерация ответа клиенту в WhatsApp через Gemini 2.5 Flash с анализом контекста.
Время инференса: ~650 мс.
"""
prompt = f"Сообщение клиента: {user_message}. Дополнительный контекст: {car_context or 'Нет'}"
response = gemini_model.generate_content(
[KASPI_WHATSAPP_PROMPT, prompt],
generation_config={"response_mime_type": "application/json", "temperature": 0.2}
)
return json.loads(response.text)GitHub-тағы кодты көру (OZAT-kz)
Кодтың негізгі инженерлік артықшылықтары:
- Маржиналдықтың математикалық сақтандырғышы (Hard Margin Floor):
hard_floor_price = cost_price + min_margin_kztформуласы жүйеге бағаны өзіндік құннан төмен түсіруге қатаң тыйым салады. Егер бәсекелес өз тауарын шығынға сатып жатса, жүйе демпингке ермейді және оның тауары біткенше күтеді; - Автосленгті контекстік түсіну: Gemini Flash промпты оңтүстік өңірдің автосөздігіне бейімделген: жүйе «дубликат», «оригинал», «привозной», «бірінші коленвал», «2.4 американец» сөздерін еркін түсініп, оларды каталогтық нөмірлерге сәйкестендіреді;
- Document AI арқылы накладнойларды цифрландыру: Модель жарық нашар түскенде немесе қоймашының қолжазбасы түсініксіз болғанда да кестелерді 98.4% дәлдікпен таниды.
4. Оқиғалар кезегінің конфигурациясы: Cloud Tasks & Cloud Run
Kaspi сатушылардың API сұраныстарының жиілігін қатаң бақылайды және шектен асқан жағдайда IP-мекенжайды бұғаттап тастауы мүмкін. Жүктемені қауіпсіз бөлу үшін біз Token Bucket алгоритмі бар Google Cloud Tasks қызметін пайдаландық:
apiVersion: v1
kind: ConfigMap
metadata:
name: kaspi-repricer-queue-config
namespace: e-commerce-retail
data:
QUEUE_CONFIG: |
rateLimits:
maxDispatchesPerSecond: 10
maxConcurrentDispatches: 20
maxBurstSize: 15
retryConfig:
maxAttempts: 5
minBackoffSeconds: 2
maxBackoffSeconds: 60
maxDoublings: 3
---
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: kaspi-repricer-worker
namespace: e-commerce-retail
labels:
cloud.googleapis.com/location: us-central1
app: kaspi-shymkent-repricer
spec:
template:
metadata:
annotations:
autoscaling.knative.dev/minScale: "0"
autoscaling.knative.dev/maxScale: "8"
run.googleapis.com/execution-environment: "gen2"
spec:
containerConcurrency: 40
timeoutSeconds: 60
containers:
- image: gcr.io/shymkent-autospares-retail/repricer-daemon:v1.4.0
resources:
limits:
cpu: "1000m"
memory: "512Mi"
env:
- name: GCP_PROJECT_ID
value: "shymkent-autospares-retail"
- name: KASPI_MERCHANT_ID
valueFrom:
secretKeyRef:
name: kaspi-secrets
key: merchant-id
- name: MIN_MARGIN_DEFAULT_KZT
value: "1500"«Сатып алу» (BuyBox %) батырмасын ұтып алу үлесі және демпингке жауап беру жылдамдығы
Операторлардың қолмен бақылауы vs Google Cloud Tasks & Cloud Run автодемперінің салыстырмасы.
Cloud Tasks сенімділігі мен қауіпсіздік параметрлері:
- Жылдамдықты шектеу (Rate Limiting): Секундына 10 сұраныстан асырмай, 15 сұранысқа дейінгі қысқа мерзімді толқындарды (Burst) қабылдайды;
- Қателер кезіндегі экспоненциалды кідіріс (Exponential Backoff): Желі ақаулары кезінде қайталау аралығы 2-ден 60 секундқа дейін біртіндеп ұлғаяды;
- Транзакциялар идемпотенттілігі: Әрбір баға жаңартуына бірегей UUID тағайындалып, бір мәнді қайталап жіберу тоқтатылады.
Қағаз накладнойларды өңдеу жылдамдығы (мин) және артикулдарды тану дәлдігі (%)
1С операторының қолмен енгізуі vs Google Cloud Document AI автоматты цифрландыруының салыстырмасы.
5. Шымкенттегі нақты жағдайлар: Жүйе күрделі сәттерді қалай шешті
«Автонұр» базарында жүйені нақты сауда кезінде сынақтан өткізгенде бірнеше қызықты оқиға тіркелді:
- Түнгі «робот-демперлер шабуылы»: Түнгі сағат 02:30-да көрші дүкен мотор майының бағасын әр 5 минут сайын 50 теңгеге түсіретін скрипт қосты. Біздің алгоритм бағаны 1 теңгелік қадаммен тек «өзіндік құн + 1 500 теңге маржа» шегіне дейін түсіріп, тоқтады. Бәсекелестің роботы бағаны көтерме бағадан да төмен түсіріп, 40 минут ішінде өзінің бүкіл айлық қорын таза шығынмен сатып бітіріп, нарықты келесі үш аптаға бізге босатып берді.
- WhatsApp-тағы түнгі клиент: Түнгі сағат 23:45-те Шымкент–Түркістан тасжолында такси жүргізушісі Camry 40-тың картер түбін тесіп алған. Ол бұзылған бөлшектің суретін жіберді. Gemini Flash боты 800 мс ішінде артикулды тауып, қоймадағы бағасын растап, Kaspi Pay арқылы қашықтан шот шығарып, таңғы сағат 08:00-ге алып кетуге брондап қойды.
- Таңғы тауар партиясын 4 минутта базаға кіргізу: 3 сағат бойы қолмен терудің орнына қоймашы бар болғаны 6 бет накладнойды суретке түсірді. Document AI 184 тауарды 4 минут 12 секундта 1С базасына толық енгізді.
6. 4 айлық жұмыстың қаржылық нәтижелері
Шымкенттік автобөлшектер дүкенінің жүйені енгізгеннен кейінгі нақты көрсеткіштері:
- Операторлардың жалақы қоры: Айына 1 200 000 ₸-ден 300 000 ₸-ге дейін қысқарды (төрт шаршаған оператордың орнына залдағы тиеуді қадағалайтын бір ғана бас менеджер қалды);
- «Сатып алу» (BuyBox) батырмасын иелену үлесі: Бәсекелестерге 12 секундта жауап берудің арқасында 22%-дан 89.4%-ға дейін артты;
- Google Cloud үшін ай сайынғы шығын: Cloud Tasks, Cloud Run және Gemini Flash үшін бар болғаны $3.20 (шамамен 1 600 теңге);
- Табыстың өсімі: WhatsApp-тағы тәулік бойы сатылым мен маркетплейсте көшбасшылықты ұстап тұру арқасында сауда +215% артты.
Серверсіз кезекті өңдеу және жасанды интеллект туралы толығырақ Алматы шоурумына арналған визуалды іздеу және Сарыағаштағы ақылды жылыжай кейстерінен оқи аласыз. Инфрақұрылымды жобалау тәсілдерімен Google Cloud инфрақұрылымы бөлімінен, ал сауда деректерін талдаумен деректер аналитикасы бөлімінен танысуға болады.
💡 ОЗАТ кеңесі: Енгізуге дайынсыз ба? Архитектура мен бюджетті Scope Builder арқылы есептеңіз немесе тегін ЖИ-аудиттен өтіңіз.

Рустам Шарафутдинов
Google Cloud архитектурасы саласындағы сарапшы және 15 жылдан астам тәжірибесі бар Senior Full-Stack әзірлеушісі. Ақауға төзімді архитектураларға, жоғары жүктемелі жобаларды оңтайландыруға және AI (Vertex AI) интеграциясына маманданған.