"✅ **Автомобиль найден.**\n" . trim($car_info) . "\n\nКакая запчасть вам нужна? Я готов помочь с подбором.", "currentVin" => $current_vin ]); exit; } } // --- 2. ПОИСК ПО БАЗЕ (ТЕХНИЧЕСКАЯ ЛОГИКА) --- $parts_found = []; if (!empty($current_vin) && mb_strlen($user_msg) > 2) { $file_path = $vin_folder . $current_vin . ".txt"; if (file_exists($file_path)) { $content = file_get_contents($file_path); preg_match_all('/(.*?)<\/tr>/is', $content, $all_rows); $words = preg_split('/\s+/u', $low_msg, -1, PREG_SPLIT_NO_EMPTY); $synonyms = [ 'генератор' => ['генератор', 'трехфазн', 'alternator', 'генер'], 'колодки' => ['тормозн', 'колодок', 'фрикцион'], 'амортизатор' => ['стойка', 'амортизац', 'shocker'], 'наконечник' => ['тяга', 'рулев'], 'грм' => ['ремень', 'цепь', 'ролик'] ]; foreach ($all_rows[1] as $row) { $row_lower = mb_strtolower($row); $score = 0; $has_core_match = false; foreach ($words as $kw) { $root = (mb_strlen($kw) > 4) ? mb_substr($kw, 0, 4) : $kw; if (mb_strpos($row_lower, $root) !== false) { $score += 10; $has_core_match = true; } if (isset($synonyms[$kw])) { foreach ($synonyms[$kw] as $syn) { if (mb_strpos($row_lower, $syn) !== false) { $score += 10; $has_core_match = true; } } } } if ($has_core_match && $score >= 10) { if (preg_match('/]*>(.*?)<\/td>.*?href="(.*?)"/is', $row, $m)) { $name = trim(str_replace('Поиск', '', strip_tags($m[1]))); $parts_found[$name] = ["name" => $name, "url" => htmlspecialchars_decode($m[2])]; } } } } } if (!empty($parts_found)) { echo json_encode([ "reply" => "🔍 Нашел подходящие варианты в CARSERVICE:", "links" => array_slice(array_values($parts_found), 0, 10), "currentVin" => $current_vin ]); exit; } // --- 3. ИИ + КНОПКА КАРТЫ --- $ch = curl_init("https://api.mistral.ai/v1/chat/completions"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json', 'Authorization: Bearer ' . $api_key]); $instruction = "Ты эксперт CARSERVICE. Твое приветствие: 'Привет! Добро welcome в CARSERVICE!'. ГРАФИК: Пн-Вс 09:00 - 21:00. Если клиент спрашивает про адрес или карту, скажи, что мы работаем ежедневно с 9 до 21, и нажми кнопку ниже."; $payload = [ "model" => "mistral-small-latest", "messages" => [ ["role" => "system", "content" => $instruction], ["role" => "user", "content" => $user_msg] ] ]; curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload)); $res = json_decode(curl_exec($ch), true); $reply = $res['choices'][0]['message']['content'] ?? "Привет! Добро welcome в CARSERVICE!"; // Код кнопки карты (измените ссылку на свою если нужно) $map_btn = '
📍 Открыть карту и маршрут
'; $show_map = preg_match('/(адрес|где|как|карта|привет|добро)/iu', $low_msg); echo json_encode([ "reply" => $reply . ($show_map ? $map_btn : ""), "currentVin" => $current_vin ]);