Console Chat
The /chat console page is designed for quickly validating API Keys, models, and multimodal capabilities. It is not a separate free chat service: every message uses the selected API Key and follows normal billing rules.
Starting a conversation
- Create a conversation.
- Select a group.
- Select an active API Key owned by the current user and bound to that group.
- Select a model from the available model list.
- Enter a message and send it.
Group, Key, and model are persisted per conversation. Switching conversations does not carry over another session's sending state, draft, or attachment. Selection changes on an existing conversation are saved immediately; correct an unavailable group or Key when saving fails.
Text responses
Text models render as a stream. Common interface states are:
| State | Meaning |
|---|---|
| Submitting | Creating the request |
| Streaming | Receiving text fragments |
| reconciling | The stream ended or displayed no content, so the page is recovering the persisted server message |
| Stopped | The user stopped this conversation's request |
| Failed | The server confirmed failure or recovery found no result |
After a short stream interruption, the server may already have saved the complete response. The page enters recovery instead of immediately showing Network Error. Do not refresh or resend while reconciling. Use retry or regenerate only after recovery fails.
Assistant messages provide whole-message copy and regenerate actions. Markdown code blocks receive syntax highlighting after the response completes and have their own copy button. Highlighting is deferred during streaming to prevent layout churn.
Image generation
After selecting an image model, enter a prompt and choose a size. The page reports elapsed time while the server allows up to 120 seconds for one image generation. A hard limit produces an explicit timeout. If transport fails first, the page enters reconciling and checks whether the server persisted an image.
Generated images can be opened, downloaded, or regenerated. Do not press send repeatedly while generation progress is visible, because each submission may be billable.
See Image Generation, Editing, and Async Tasks for public image task APIs and 24-hour result retention. Console chat uses conversation endpoints and does not return an async task task_id.
Image attachments
The composer accepts one image attachment for models that support image input:
- Formats: PNG, JPEG, GIF, and WebP.
- Maximum file size: 5 MB.
- Sending remains disabled until upload completes.
- A failed upload can be retried, cancelled, or removed.
The attachment is first stored in configured private object storage and then added to the message through a protected URL. Never upload API Keys, passwords, identity documents, or information that should not be processed by a model.
Conversation management
- Search conversation titles.
- Rename or delete a conversation.
- Load older messages.
- On mobile, enter a room from the list and use the settings button for group, Key, and model.
- Stop affects only the current conversation and does not cancel requests running in other conversations.
Deleting a conversation removes its chat history. Save important output to your own system first.
Common issues
The assistant is blank after send, but appears after refresh
The page should automatically enter reconciling and load the persisted message. If manual refresh is still required, record time, conversation ID, and request_id in a ticket. This usually indicates a streaming or client recovery failure, not missing model output.
Image generation reports a network error, then the image appears
The client connection ended before server work completed. Wait for recovery and do not immediately submit the same prompt again.
The model list is empty
Confirm that the Key belongs to the user, is active, binds to the selected group, and that the group exposes models. Image models also require image generation enabled for the group.
See Troubleshooting for status codes and diagnostic steps.
