Урок 10

Тестирование RAG

AI SDK предоставляет fakes для всех компонентов.

Fake Embeddings

use Laravel\Ai\Embeddings;

Embeddings::fake();

$response = Embeddings::for(['Текст'])->generate();

$this->assertCount(1536, $response->embeddings[0]);

Fake SimilaritySearch

use Laravel\Ai\Tools\SimilaritySearch;

SimilaritySearch::fake([
    Document::factory()->make(['content' => 'Релевантный фрагмент']),
]);

Fake Reranking

use Laravel\Ai\Reranking;

Reranking::fake([
    ['document' => 'Doc 1', 'score' => 0.9],
    ['document' => 'Doc 2', 'score' => 0.8],
]);

Fake FileSearch

use Laravel\Ai\Providers\Tools\FileSearch;

FileSearch::fake([
    'Результат поиска',
]);

Fake агента

DocumentSearch::fake([
    'Ответ на основе документов',
]);

$response = (new DocumentSearch)->prompt('Как сбросить пароль?');

$this->assertSame('Ответ на основе документов', (string) $response);

Assertions

DocumentSearch::assertPrompted('пароль');
SimilaritySearch::assertSearched('embedding');

Итоги

  • Fake Embeddings, SimilaritySearch, Reranking
  • Fake FileSearch
  • Fake агента
  • Assertions для проверки
  • Тесты без API-вызовов