Laravel Tutorials

Ship AI with Laravel: Search Entire PDFs with Zero Search Logic

Published

▶️ Watch the video tutorial (12 minutes)

In Episode 5 we built semantic search from scratch with embeddings and pgvector. Great for FAQ articles and full control over the data. But what if your documentation is bigger than that? Hundreds of pages of policies, product manuals, full PDFs?

In this episode we use the other approach. Upload your docs to the AI provider, let them handle the chunking and embedding, and use the SDK's FileSearch tool to query it. No similarity math on our side. Just upload and search.

I build an Artisan command that creates a vector store called "SupportAI Knowledge Base" and uploads five markdown documents covering return policy, shipping, billing FAQ, account security, and product warranty. The store ID gets saved to .env and config so the rest of the app can reference it.

We add FileSearch to the support agent alongside the KnowledgeSearch tool from Episode 5 so the agent has both options. Then we update the instructions so it picks the right one. KnowledgeSearch for quick FAQ-style questions, FileSearch for detailed policy lookups.

I test it with a question about damaged items and the agent pulls the exact 48-hour reporting requirement from the actual policy doc. Then I throw a combined question with an order number and a policy question, and the agent uses OrderLookup and FileSearch in the same response.

One thing to know before you ship this to production: FileSearch is token-heavy and requires billing credits with the provider since they're hosting and querying the vectors for you.

Next episode we're building the real-time streaming chat UI with Livewire so customers can actually talk to the agent through a proper interface.

⭐ GitHub: https://github.com/harris21/ship-ai-with-laravel

▶️ Watch Episode 6 now →

Harris Raftopoulos photo

Senior Software Engineer • Staff & Educator @ Laravel News • Co-organizer @ Laravel Greece Meetup

Sponsored

laravelcloud logo
Laravel Cloud

Easily create and manage your servers and deploy your Laravel applications in seconds.

Visit Laravel Cloud

The latest

View all →
Laravel Rulebook: Business Rules That Change by Date image

Laravel Rulebook: Business Rules That Change by Date

Read article
Taylor disabled GitHub Issues on most Laravel open-source packages. image

Taylor disabled GitHub Issues on most Laravel open-source packages.

Read article
Exclude Vendor and Default Commands in `php artisan dev` image

Exclude Vendor and Default Commands in `php artisan dev`

Read article
The Laracon Archive image

The Laracon Archive

Read article
Group Adjacent Collection Items in Laravel with chunkBy() image

Group Adjacent Collection Items in Laravel with chunkBy()

Read article
Laravel queue:work Now Prints Why the Worker Stopped image

Laravel queue:work Now Prints Why the Worker Stopped

Read article