LAPLACE Chatterbox's AI Companion Chat lives in the Simultaneous Interpretation tab and runs on a built-in lightweight engine: it reads the streamer's speech as Simultaneous Interpretation recognizes it, adds recent viewer danmaku as context, and calls an OpenAI-compatible LLM endpoint to produce candidate danmaku that fit the rhythm of the stream
Two working modes are supported, Auto Send and Review Candidates, so you can switch between chatting automatically and picking by hand at any time. Every LLM request goes straight to the endpoint you configured yourself; Chatterbox never touches your prompts or API key
How this differs from Auto Blend's YOLO mode: AI Companion Chat has the LLM write new danmaku from scratch, acting as a "viewer persona" that interacts with the streamer, taking transcribed speech plus viewer danmaku as input; the YOLO mode of Auto Blend only calls the LLM to rewrite an existing popular danmaku when it detects a pile-on in public chat, which is still about blending into the crowd. The first is better for adding one more "AI viewer" to the room, the second for making auto pile-ons look less repetitive
Features
- Dual triggers: generation is driven jointly by the streamer's speech that Simultaneous Interpretation recognizes (sentence-ending punctuation / endpoint detection / oversized buffer) and by accumulated new viewer danmaku
- Two working modes:
- Auto Send: when the LLM decides
send=true, the message goes straight into the send queue - Review Candidates: generated danmaku land in the Candidate Danmaku list, and you click Send / Edit / Skip to decide whether one goes out
- Auto Send: when the LLM decides
- Viewer danmaku context: keeps the last N viewer danmaku (configurable) as context, so the LLM can read the current mood of public chat
- Rolling history summary: recent "streamer speech + what was already sent" pairs go back to the LLM as conversation history, which prevents repeated lines
- Structured output: calls force the
json_schemaresponse format, so the LLM must return the three fieldssend/message/reason - Self-echo dedupe: danmaku sent within the last 30 seconds are ignored when bilibili pushes them back to public chat, so they never pollute the context
- Large-emote filtering: large-emote danmaku from viewers (image only, no textual meaning) never enter the context
- Multiple persona presets: four built-in prompts (Contrarian / Wisecracker / Sweetheart / Conversation Starter), switchable or editable at any time
- Decision log: keeps the last 50 decisions (success ✅ / skipped ⏭ / failed ❌), clearable in one click
- Shared send queue: shares the send queue and bilibili's rate limit with the Auto Send, Auto Blend, and Simultaneous Interpretation features, runs at AUTO priority, and can be preempted by manual sends
Usage
Prerequisites
- Fill in an OpenAI-compatible API base, API key, and model ID under Settings → LLM Settings
- Confirm that a prompt is active under Settings → LLM Prompts → AI Companion Chat (Contrarian is activated by default the first time you enable the feature)
- Start interpreting in the Simultaneous Interpretation tab; AI Companion Chat works off the real-time text it produces
AI Companion Chat shares one recognition stream with Simultaneous Interpretation. Without interpretation running, only viewer danmaku can trigger it; enable interpretation to get the full "streamer speech + viewer danmaku" context
Enabling and Switching Modes
- Switch to the Simultaneous Interpretation tab and check Enable AI Companion Chat in the AI Companion Chat section
- Click the Auto Send / Review Candidates button to switch between the two modes:
- A filled button = Auto Send is active
- An outlined button = Review Candidates is active
- Click Generate Now to skip the buffer wait and force one LLM call
Review Candidates Mode
- Generated candidates appear in the Candidate Danmaku list (30 at most; older candidates are dropped on overflow)
- For each candidate you can choose:
- Send: add the text as-is to the send queue
- Edit: open an input box, revise, then send (Enter confirms / Esc cancels)
- Skip: discard the candidate and record it in the decision log
Switching Personas
- Switch the active prompt from the Prompt dropdown at the bottom of the AI Companion Chat section
- Full prompt management (add, edit, delete, reorder) happens under Settings → LLM Prompts → AI Companion Chat
- The first line of every built-in prompt is the persona name, which doubles as a preview for quick identification
Options
Triggers and Context
| Option | Description | Default |
|---|---|---|
| Max Danmaku Length | Maximum character count for generated danmaku, mirrored into message.maxLength in the LLM response JSON Schema | 30 |
| Trigger Every N Danmaku | Fires one viewer-driven generation once this many viewer danmaku have accumulated | 10 |
| Viewer Window | How many recent viewer danmaku ride along in the context | 50 |
| Context Limit | Total character budget for the context sent to the LLM (history + viewer danmaku) | 2048 |
| Sampling Temperature | The LLM temperature parameter, range 0 ~ 2 | 0.7 |
Modes
| Option | Description |
|---|---|
| Enable AI Companion Chat | Master switch; turning it off stops the engine from subscribing to viewer danmaku and the interpretation buffer entirely |
| Auto Send / Review Candidates | Decides whether LLM output is sent directly or lands in the candidate list |
| Generate Now | Skips the debounce wait and calls the LLM immediately, whatever the buffer state |
Trigger Timing
The engine's internal scheduling logic:
- When the streamer speech buffer sees sentence-ending punctuation (
。.!!??), Soniox reports an endpoint, or the buffer passes 200 characters, generation fires 500 ms later - When the buffer holds content but is not ready, a fallback trigger fires after waiting at most 8 seconds
- When viewer danmaku reach the configured count, a viewer-driven generation fires 3 seconds later (only if no other task is queued)
Notes
- Every LLM setting — API base, key, model — is stored only in the userscript storage of your browser; neither Chatterbox nor LAPLACE's servers receive any LLM-related data
- You settle LLM endpoint costs with your LLM provider by call count / token usage, so set Max Danmaku Length and Context Limit sensibly to keep spend under control
- If the LLM response cannot be parsed as valid JSON, the engine logs an error and discards that result without sending any danmaku
- AI Companion Chat does not take over Simultaneous Interpretation's own sending: whether interpreted text goes out is still decided by the Simultaneous Interpretation panel, and AI Companion Chat produces its content independently on a separate path
- Switching rooms or reloading the page clears the candidate list; the decision log survives until the current session ends
- To stop the engine completely, uncheck Enable AI Companion Chat; otherwise viewer danmaku keep the scheduler alive even when you never click Generate Now
Last updated on September 19, 2026