1a686d07c8
Разведка портала 5 агентами (экраны, биллинг/настройки, Конкурентное поле, все подсказки (?), внутренние правила) → база знаний бота выросла 4 → 15 статей: начало работы (что такое заявка, подарок 1000₽), проекты (лимиты/регионы/дни, правило 18:00 МСК), тарифы (7 ступеней, списание по факту), пополнение (100₽, карта/счёт/акт), баланс и пауза (разморозка «всё-или-ничего»), сделки и канбан (5 статусов, экспорт), Конкурентное поле (сбор 300₽/изучение 50₽, очередь, ручной режим, дубли, метки номеров), смена источника, настройки и 2FA, уведомления, импорт CSV, API/webhook, мобильная версия, дашборд, поддержка. Защита коммерческой тайны (проверено агентом-цензором — 15/15 статей чисто): ни слова про поставщика/каналы/закупку и про то, что заявка может уйти не только одному клиенту; вопросы об эксклюзивности и перепродаже — жёсткая стоп-тема (бот не отвечает НИ В КАКУЮ сторону, зовёт живого специалиста), внутренние движки не упоминаются, ложных обещаний (авто-возврат, «Команда») нет. Стоп-темы разделены: HARD (деньги/скидки/юр/эксклюзив — всегда) и PERSONAL («мой баланс») с исключением HOWTO — «перенести мои заявки из амоцрм» больше не уходит к человеку, бот рассказывает про импорт. TDD: 40/40 зелёные. Живая проверка 20+ вопросов на стенде. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
24 lines
1.2 KiB
PHP
24 lines
1.2 KiB
PHP
<?php
|
||
|
||
declare(strict_types=1);
|
||
|
||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||
use Illuminate\Support\Facades\DB;
|
||
|
||
uses(RefreshDatabase::class);
|
||
|
||
it('перечитывает resources/help и заполняет knowledge_chunks с нуля', function () {
|
||
// Мусорная строка от прошлой индексации — должна исчезнуть (полная перезаливка).
|
||
DB::table('knowledge_chunks')->insert([
|
||
'source_path' => 'help/deleted-article.md', 'title' => 'Старая', 'topics' => '',
|
||
'chunk_index' => 0, 'content' => 'мусор', 'created_at' => now(), 'updated_at' => now(),
|
||
]);
|
||
|
||
$this->artisan('help:rebuild-knowledge')->assertExitCode(0);
|
||
|
||
expect(DB::table('knowledge_chunks')->where('source_path', 'help/deleted-article.md')->count())->toBe(0)
|
||
->and(DB::table('knowledge_chunks')->where('title', 'like', 'Что такое проект%')->count())->toBeGreaterThan(0)
|
||
->and(DB::table('knowledge_chunks')->where('title', 'like', 'Тарифы и списания%')->count())->toBeGreaterThan(0)
|
||
->and(DB::table('knowledge_chunks')->distinct('source_path')->count('source_path'))->toBeGreaterThanOrEqual(12);
|
||
});
|