PHPackages                             mydnic/volet-chatbot - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. mydnic/volet-chatbot

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

mydnic/volet-chatbot
====================

A chatbot feature for Volet. Connects your widget to any OpenAI-compatible endpoint

v1.0.0(1mo ago)312MITPHPPHP ^8.3CI passing

Since Jul 8Pushed 1mo agoCompare

[ Source](https://github.com/mydnic/volet-chatbot)[ Packagist](https://packagist.org/packages/mydnic/volet-chatbot)[ GitHub Sponsors](https://github.com/mydnic)[ RSS](/packages/mydnic-volet-chatbot/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (1)Dependencies (8)Versions (2)Used By (0)

A chatbot feature for Volet
===========================

[](#a-chatbot-feature-for-volet)

Adds a chat UI to your [Volet](https://github.com/mydnic/volet) widget, backed by any OpenAI-compatible endpoint: OpenAI itself, or your own Laravel app's backend.

Built on Laravel's official [`laravel/ai`](https://github.com/laravel/ai) package. This package only wires that up to Volet's widget host; everything else (providers, streaming, conversation storage, tools, testing fakes) is `laravel/ai`'s own surface.

Installation
------------

[](#installation)

```
composer require mydnic/volet-chatbot
```

Publish `laravel/ai`'s config and migrations (conversation history lives in its `agent_conversations` / `agent_conversation_messages` tables : this package does not add its own):

```
php artisan vendor:publish --provider="Laravel\Ai\AiServiceProvider"
php artisan migrate
```

Publish this package's assets and config:

```
php artisan vendor:publish --tag="volet-assets" --force
php artisan vendor:publish --tag="volet-chatbot-config"
```

Configuration
-------------

[](#configuration)

By default this package uses `config('ai.php')`'s `openai` provider, which talks to OpenAI directly:

```
OPENAI_API_KEY=sk-...
```

To point it at your own backend (or any other OpenAI-compatible endpoint) instead, override `OPENAI_URL` — no code change needed, `openai` is just an HTTP client pointed at a base URL:

```
OPENAI_URL=https://your-backend.test/v1
OPENAI_API_KEY=sk-...
```

The API key only ever lives server-side in this config. It is never sent to the widget's JavaScript.

(Some versions of `laravel/ai` also ship a separate `openai-compatible` provider entry in `config/ai.php` for this — check your installed version if you'd rather use that instead of overriding `openai`'s URL. Either way works the same; this package defaults to `openai` since that entry is guaranteed to exist across versions.)

In `config/volet-chatbot.php`, set the provider/model/system prompt and the request rate limit:

```
'provider' => env('VOLET_CHATBOT_PROVIDER', 'openai'),
'model' => env('VOLET_CHATBOT_MODEL', 'gpt-4o-mini'),
'system_prompt' => env('VOLET_CHATBOT_SYSTEM_PROMPT', 'You are a helpful assistant.'),
```

This widget is reachable by anyone who loads the page where you are loading Volet. Every message is a paid API call. The `throttle` middleware in `config('volet-chatbot.routes.middleware')` is keyed by user id (falling back to IP), tune `VOLET_CHATBOT_RATE_LIMIT` (default `20,1`) to your budget.

Registering the feature
-----------------------

[](#registering-the-feature)

In your `VoletServiceProvider` (see the main Volet package's README for the quickstart):

```
use Mydnic\VoletChatbot\VoletChatbot;

$volet->register(
    (new VoletChatbot)
        ->setLabel('Chat with us')
);
```

Extending the agent - tools, MCP, structured output
---------------------------------------------------

[](#extending-the-agent---tools-mcp-structured-output)

The widget's replies are produced by `config('volet-chatbot.agent')`, which defaults to `Mydnic\VoletChatbot\Agents\ChatbotAgent`. To add tools, MCP servers, provider failover, or anything else `laravel/ai` supports, don't modify this package. Extend the agent in your own app and point the config at it:

```
namespace App\Ai\Agents;

use Laravel\Ai\Contracts\HasTools;
use Mydnic\VoletChatbot\Agents\ChatbotAgent;

class SupportAgent extends ChatbotAgent implements HasTools
{
    public function tools(): array
    {
        return [
            new \App\Ai\Tools\LookupOrderStatus,
        ];
    }
}
```

```
// config/volet-chatbot.php
'agent' => \App\Ai\Agents\SupportAgent::class,
```

See `laravel/ai`'s own docs for `php artisan make:tool`, MCP servers, structured output, and provider failover. None of it needs a Volet-specific bridge.

Conversation history
--------------------

[](#conversation-history)

Guests are tracked by a `conversation_id` minted on the first message and returned to the client, which stores it (e.g. `localStorage`) and sends it back on `continue`. No account or cookie is required. If a visitor is authenticated, their `user_id` is recorded alongside the conversation automatically.

Scope
-----

[](#scope)

Not included in v1, by design: function/tool calling out of the box (bring your own via agent extension above), image/vision input, moderation of outbound messages, human handoff. Open an issue if you need one of these before building it yourself.

###  Health Score

41

—

FairBetter than 87% of packages

Maintenance90

Actively maintained with recent releases

Popularity10

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

49d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/bc52c3eeee29c610da76c047b3cec562c062ebb747e5e3ef097677373269b7e4?d=identicon)[mydnic](/maintainers/mydnic)

---

Top Contributors

[![mydnic](https://avatars.githubusercontent.com/u/2733767?v=4)](https://github.com/mydnic "mydnic (10 commits)")

---

Tags

laravelvolet

###  Code Quality

TestsPest

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/mydnic-volet-chatbot/health.svg)

```
[![Health](https://phpackages.com/badges/mydnic-volet-chatbot/health.svg)](https://phpackages.com/packages/mydnic-volet-chatbot)
```

###  Alternatives

[unopim/unopim

UnoPim Laravel PIM

10.8k2.5k](/packages/unopim-unopim)[eslam-reda-div/filament-copilot

A Filament plugin for AI-powered copilot features.

4113.6k](/packages/eslam-reda-div-filament-copilot)[webcrafts-studio/lens-for-laravel

A local-first WCAG accessibility auditor for Laravel with axe-core, source mapping, CI workflows, and optional AI fixes.

464.2k](/packages/webcrafts-studio-lens-for-laravel)[builtbyberry/laravel-swarm

Multi-agent swarm orchestration for Laravel, built on Laravel AI.

323.3k7](/packages/builtbyberry-laravel-swarm)[mydnic/volet-feedback-messages-filament-plugin

A Filament plugin to display Volet Feedback Messages

161.5k](/packages/mydnic-volet-feedback-messages-filament-plugin)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
