Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Ai Meilisearch Message Store

Ai Meilisearch Message Store Laravel Package

symfony/ai-meilisearch-message-store

Meilisearch Message Store integrates Meilisearch as a persistent message store for Symfony AI Chat. Index and query chat messages using Meilisearch APIs, with support for async task handling and configurable index settings via Meilisearch.

View on GitHub
Deep Wiki
Context7

Meilisearch message store bridge for Symfony AI Chat

Frequently asked questions about Ai Meilisearch Message Store
How do I integrate this Meilisearch message store into a Laravel app using Symfony AI Chat?
Install via Composer (`composer require symfony/ai-meilisearch-message-store`), then register the `MeilisearchMessageStore` as a service in your `AppServiceProvider`. Bind it to Symfony AI’s `MessageStoreInterface` using Laravel’s container. Replace Symfony’s `HttpClient` with Laravel’s `Http` facade or Guzzle via a custom adapter if needed.
What Laravel versions does this package support, and are there Symfony dependency conflicts?
The package targets Laravel 10+ and 11, but Symfony dependencies (e.g., `symfony/ai`, `symfony/http-client`) may conflict. Use a Laravel-compatible service provider or the `spatie/laravel-symfony` bridge to resolve DI mismatches. Test with `composer check-platform-reqs` to catch version issues early.
Can I use this for semantic search (e.g., embedding similarity) in Laravel AI?
Meilisearch lacks native Approximate Nearest Neighbors (ANN), but you can simulate semantic search using `rankingRules` or `filter` queries with custom scoring. For production-grade vector search, pair it with a dedicated vector DB (e.g., Weaviate) via Laravel’s queue system for hybrid workflows.
How do I handle async Meilisearch operations (e.g., index updates) in Laravel?
Offload async tasks to Laravel queues by wrapping Meilisearch’s async operations in a `ShouldQueue` job. Use `task:wait` to poll for completion or leverage Symfony’s async task API. Example: Dispatch a `MeilisearchIndexUpdateJob` with `dispatchSync()` for critical paths.
What’s the best way to manage multi-tenancy with separate Meilisearch indexes?
Prefix indexes by tenant ID (e.g., `tenant_123_messages`) and validate access via Laravel middleware. Use Meilisearch’s [security rules](https://www.meilisearch.com/docs/reference/api/security) to restrict document access. For dynamic tenant routing, bind the index name to the authenticated user in your `AppServiceProvider`.
How does this compare to Pinecone or Weaviate for Laravel AI chat history?
Meilisearch is cost-effective for <10M monthly operations (open-core pricing) and integrates natively with Symfony AI. Pinecone/Weaviate offer better ANN support but require additional Laravel adapters. Benchmark latency (Meilisearch: ~50–150ms) vs. your RAG pipeline needs before choosing.
Do I need to write Laravel migrations for Meilisearch schemas?
No, Meilisearch uses dynamic schemas, but enforce consistency by syncing local DB and Meilisearch schemas via a custom `MeilisearchSchemaSync` Artisan command. Add Laravel migrations for critical fields (e.g., `updated_at`) and use Meilisearch’s [index versioning](https://www.meilisearch.com/docs/learn/core_concepts/indexes#versioning) for backward compatibility.
How can I cache frequently accessed chat messages to reduce Meilisearch latency?
Wrap the `MeilisearchMessageStore` in a `MessageCacheDecorator` using Laravel’s cache system (e.g., Redis). Cache responses for `find()` queries with a short TTL (e.g., 5 minutes) and invalidate on updates. Example: `cache()->remember('chat_'.$id, now()->addMinutes(5), fn() => $store->find($id));`.
What’s the performance impact of using Meilisearch in production vs. a local DB?
Meilisearch achieves sub-100ms retrieval for chat messages with in-memory indexes, but network hops (e.g., cloud instances) add ~50–100ms. For high throughput, batch async operations (e.g., bulk inserts) and use Laravel queues to parallelize writes. Test with your expected load (e.g., 10K+ messages/sec).
How do I back up and restore Meilisearch indexes in Laravel?
Use Meilisearch’s [backup API](https://www.meilisearch.com/docs/reference/api/backup) to export indexes, then restore via the [import API](https://www.meilisearch.com/docs/reference/api/backup#import). Schedule backups with Laravel’s Artisan scheduler (e.g., `schedule->command(MeilisearchBackupCommand::class)->daily()`). For disaster recovery, pair with a local DB backup of metadata.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky
spatie/mailcoach-vapor