Тестирование 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-вызовов