Разработка AI-цифрового закупщика (AI Procurement Agent)

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1 услугВсе 1566 услуг
Разработка AI-цифрового закупщика (AI Procurement Agent)
Средняя
от 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 Агент закупок — цифровой сотрудник

AI Агент закупок автоматизирует рутинные задачи отдела снабжения: обработку заявок, сравнение предложений поставщиков, проверку документов, ведение договоров, мониторинг исполнения. Снижает цикл закупки для стандартных позиций с нескольких дней до часов.

Обработка заявок на закупку

from openai import AsyncOpenAI
from pydantic import BaseModel
from typing import Literal, Optional

client = AsyncOpenAI()

class PurchaseRequest(BaseModel):
    item_name: str
    quantity: float
    unit: str
    justification: str
    requested_by: str
    department: str
    budget_code: str
    urgency: Literal["urgent", "planned", "routine"]
    estimated_budget: Optional[float]
    preferred_vendor: Optional[str]
    technical_requirements: Optional[str]

class ProcurementAgent:

    async def process_request(self, request_text: str, requester: dict) -> dict:
        """Парсит и обрабатывает запрос на закупку"""

        # Извлечение структурированных данных
        parsed = await client.beta.chat.completions.parse(
            model="gpt-4o",
            messages=[{
                "role": "system",
                "content": "Извлеки структурированные данные из заявки на закупку. Если данных нет — null."
            }, {
                "role": "user",
                "content": f"Заявитель: {requester['name']}, {requester['department']}\nЗаявка: {request_text}",
            }],
            response_format=PurchaseRequest,
            temperature=0,
        )

        pr = parsed.choices[0].message.parsed

        # Проверка бюджета
        budget_check = await self.check_budget_availability(
            budget_code=pr.budget_code,
            amount=pr.estimated_budget,
        )

        # Поиск исторических данных
        similar_purchases = await self.find_similar_purchases(pr.item_name)

        # Рекомендации по поставщику
        vendor_recommendations = await self.get_vendor_recommendations(
            pr.item_name, pr.quantity, similar_purchases
        )

        return {
            "request": pr.model_dump(),
            "budget_status": budget_check,
            "similar_history": similar_purchases[:3],
            "vendor_recommendations": vendor_recommendations,
            "auto_approve": self.can_auto_approve(pr, budget_check),
        }

    def can_auto_approve(self, pr: PurchaseRequest, budget_check: dict) -> bool:
        """Автоматическое одобрение для стандартных позиций в рамках лимита"""
        return (
            budget_check["available"]
            and (pr.estimated_budget or 0) <= 50000  # Лимит автоодобрения 50 тыс руб
            and pr.urgency != "urgent"  # Срочные требуют ручной проверки
            and pr.item_name.lower() not in self.non_standard_items
        )

Анализ предложений поставщиков

async def compare_vendor_offers(
    item: str,
    quantity: float,
    offers: list[dict],
    technical_requirements: str = "",
) -> dict:
    """Анализирует и ранжирует предложения поставщиков"""

    comparison = await client.chat.completions.create(
        model="gpt-4o",
        messages=[{
            "role": "system",
            "content": """Ты — менеджер по закупкам.
Оцени предложения поставщиков комплексно: цена, сроки, надёжность, условия оплаты.
Выяви скрытые риски (нереалистичные сроки, неизвестный поставщик, несоответствие требованиям)."""
        }, {
            "role": "user",
            "content": f"""Позиция: {item}, количество: {quantity}
Технические требования: {technical_requirements}

Предложения поставщиков:
{json.dumps(offers, ensure_ascii=False, indent=2)}

Создай:
1. Сравнительную таблицу по ключевым параметрам
2. Рекомендацию с обоснованием
3. Риски выбранного поставщика"""
        }],
    )

    return {
        "analysis": comparison.choices[0].message.content,
        "recommended_vendor": extract_recommendation(comparison.choices[0].message.content),
        "comparison_table": extract_table(offers),
    }

Практический кейс: производство, 200 заявок/месяц

Ситуация: 3 менеджера по закупкам, 200 заявок/месяц, средний цикл 7 дней для стандартных позиций.

AI Агент автоматизировал:

  • Приём и классификация заявок (Telegram + email)
  • Проверка бюджетных лимитов в 1С
  • Запрос КП у 3–5 поставщиков из реестра
  • Сравнительный анализ предложений
  • Автоодобрение < 50 тыс руб (62% заявок)
  • Создание заказов в 1С

Результаты:

  • Цикл стандартной закупки: 7 дней → 1.5 дня
  • Менеджеры фокусируются на: стратегических поставщиках, переговорах, нестандартных позициях

Сроки

  • Обработка заявок и классификация: 1–2 недели
  • Интеграция с 1С и базой поставщиков: 2–3 недели
  • Анализ предложений: 1 неделя
  • Approval workflow: 1 неделя
  • Итого: 5–7 недель