- Can I use this package directly in Laravel, or is it strictly for Symfony?
- While designed for Symfony, you can integrate it into Laravel by wrapping the Symfony `AiClient` in a Laravel service provider or facade. The package’s `StoreInterface` compatibility allows for clean Laravel dependency injection, but you’ll need to handle Symfony’s HTTP client dependency (e.g., via platform.sh or Composer platform checks).
- What Laravel versions does this package support?
- This package doesn’t enforce Laravel-specific constraints, but it requires Symfony 6.4+. For Laravel compatibility, ensure your project uses PHP 8.1+ and Symfony components (like HTTP client) are version-pinned to avoid conflicts. Test with Laravel 10+ for best results.
- How do I handle Weaviate schema management in Laravel?
- Weaviate collections must be pre-configured via Weaviate’s API or UI—this package doesn’t include Laravel migrations. Create custom Artisan commands (e.g., `php artisan weaviate:schema:update`) to sync schema changes or use Laravel’s filesystem to track schema definitions.
- Does this support hybrid search (keyword + vector) in Laravel?
- Yes, the package exposes Weaviate’s hybrid search natively via the `findNearest` method with filters. For Laravel, wrap the Symfony `AiClient` to chain results with Laravel’s query builder or Eloquent for seamless hybrid workflows.
- Will this work with Laravel’s caching (Redis/Memcached)?
- The package itself doesn’t integrate with Laravel caching, but you can cache frequent Weaviate queries manually. Use Laravel’s cache facade with a key like `weaviate:query:{hash}` to store similarity search results and reduce API calls.
- How do I handle embeddings in Laravel before storing them in Weaviate?
- This package assumes embeddings are pre-generated (e.g., via OpenAI or Hugging Face). In Laravel, create a service to generate embeddings (e.g., using Laravel Queues for async processing) and pass them to the Weaviate store via `upsert`.
- Are there alternatives to this package for Laravel?
- For simpler vector stores, consider `laravel-weaviate` or `pgvector` (PostgreSQL). If you need Symfony AI integration, this is the most direct option, but for full Laravel-native solutions, explore `meilisearch/laravel` or custom Weaviate HTTP clients with Laravel’s HTTP facade.
- How do I debug Weaviate-specific errors in Laravel?
- Weaviate errors (e.g., rate limits) may not map to Laravel exceptions. Create a custom exception handler or middleware to translate Weaviate responses into Laravel’s `HttpException` or log them via Laravel’s logging system.
- Can I use this for production with high query volumes?
- Yes, but optimize Weaviate first (e.g., sharding, GPU indexing). For Laravel, implement batch operations via Queues (e.g., `weaviate:batch-upsert`) and monitor performance with Weaviate’s metrics API. Consider managed Weaviate services for scalability.
- How do I integrate this with Laravel’s HTTP client (Guzzle) instead of Symfony’s?
- Replace Symfony’s `HttpClient` with Laravel’s Guzzle client by binding a custom `WeaviateClient` in your service provider. Use Laravel’s `Http` facade or `Manager` pattern to wrap the underlying HTTP calls while maintaining the package’s `StoreInterface` contract.