Site settings and moderation
This page covers the "all-site" operating configuration in the admin console: every switch on the global settings page, as well as announcements, logins, skills, voice transcripts, upload limits, sandbox recycling these site-level configurations scattered on each tag page, and finally the moderation system. settings In the table, after clicking on "Save", the subsequent request comes into effect immediately, without the need to restart the container.
Access: admin console "System" menu on the left, default on the "Global Settings" tag (path) /admin/settings The other tag pages involved in this page will mark the path in each section.
Global settings (system > global settings)
Designation of model
| The field | admittedly | Explained |
|---|---|---|
| The Conversation Model | and empty | The initial model of the new user and the new session. Channel and Model Design the model again. |
| Task Model (Internal LLM Call) | and empty | For internal small calls such as title generation, query routing, compressed summary, memory extraction, it is recommended to specify a cheap and fast model. |
| Description of the word model | 无 | Draw the text model of the pre-tinnitus, select "no" and skip the tinnitus, stack according to the certainty rule |
| Model of Audit (Audit) | 无 | The second model for verifying the answers under the examination mode, ideally the strong model of different manufacturers than the main model; select "no" and the full station shut down the examination mode. |
| The model. | closed | When the selected model has no output within the second number of "first word overtime", cut upstream to replied, the user does not feel, the interface still shows the original model |
| Excess of time (second) | 0 | Compatible with the bottom model, 0 = shut down. Only triggered before the first token, the output response has begun never switch. |
Under the compression.
When the conversation is too long, the system uses the task model to compress the earlier rounds into a summary, retaining the recent rounds literally, thus controlling the cost of the input token for each round.
| The field | 键 | admittedly | Explained |
|---|---|---|---|
| Activate the compression | compaction_enabled | 开 | Completely switched |
| Last number of rounds. | keep_recent_rounds | 6 | Summary never swallow these recent rounds, they sent word by word |
| How many tokens to compress. | compaction_token_trigger | 32000 | The entire tip (system tip + tool definition + history + file content injected in this round) exceeds the number of tokens to trigger the compression; 0 = shut down the token trigger |
| Summary of token budget | summary_max_tokens | 8192 | Compressed summary of the export ceiling itself |
Several key behaviors:
- Summary of acceptance. ** Disconnected ** It is carried out without blocking the first word of the current response; only when the context is seriously overrated (the real count exceeds the threshold of 1.25 times) will be compressed when the wheel is joined, and the wheel is immediately pressed down.
- The trigger statistics are the content that will actually be sent, containing the RAG/file text that is temporarily injected in this round.
- Compression calls include a volume report for "context compression" purposes, and costs are recorded under the name of the sender that triggered the compression.
Compression can only be reduced earlier. ** The conversation round. ** The content of the uploaded file is temporarily injected every round, and compression can never shrink it; the cost of the large file should be controlled using the RAG full threshold and the Top-K parameter (injecting only the related cuts) on the Capacity > Document page, rather than lowering the compression threshold.
Registration and Account Thresholds
| The field | 键 | admittedly | Explained |
|---|---|---|---|
| Opening new registration. | signup_open | 开 | After closing, new users cannot register themselves, and administrators can still manually create numbers on the user page. |
| Registration requires a verification code. | register_captcha_required | 关 | Open up after registration before pop-up puzzle authentication. Authentication by issuing a 10-minute valid signature pass token, the registration request carries it, multi-copy deployment and service restart is not affected. |
| Single IP registration per day | register_ip_daily_limit | 0 | The maximum number of accounts created per day on the same IP, 0 = unlimited. This is a harder anti-mass registration gateway than authentication code. |
| Request a mailbox verification. | email_verification_required | 关 | New registered users must enter the six-bit authentication code sent to the mailbox to sign in; six-bit passes are submitted automatically. |
| Allowed registered mailbox domain names | email_domain_whitelist | and empty | Separate, only listed domain names can be registered; leave space allows all domain names |
The email (SMTP)
Used for sending mailbox authentication codes and password reset messages.
| The field | admittedly | Explained |
|---|---|---|
| The SMTP server | and empty | 如 smtp.qq.com、smtp.163.com、smtp.gmail.com |
| The Port | 587 | 587 (STARTTLS) or 465 (TLS) |
| Users name | and empty | The SMTP account. |
| The code | and empty | Authorization code or API Key, after saving the interface is displayed as a mask |
| Address of sender. | and empty | The recipient sees the sender, leaving the user name empty. |
| Direct connection to TLS (465 ports) | 关 | 465 ports open; 587 go to STARTTLS, stay closed |
Requests for mailbox authentication rely on this SMTP configuration code. If the SMTP is not configured or configured incorrectly, new registered users will not receive the authentication code and cannot complete the login.
Daily limits and credits
| The field | 键 | admittedly | Explained |
|---|---|---|---|
| Maximum daily message | daily_message_limit | 200 | Number of messages that can be sent per user per day (UTC natural day), the counter is zero at midnight UTC; 0 = unlimited |
| Maximum daily pictures | daily_image_limit | 30 | The number of images that can be generated per user per day, drawing patterns and chat calling tools share the same pool of quota |
| Forecasting and blocking insufficient balance requests | credit_preflight_enabled | 开 | See you |
Pre-examination of credits: Yes ** Go to credits. ** (Non-free quota) round, after assembling the real request (system tip + tool definition + complete history of injection of RAG / file), before calling the model, estimate the input token and reserve the fixed 2000 token output, exchange the credits according to the exchange rate to the expected credits; if the user exceeds the current available balance (time credits + permanent credits), directly with "credits insufficient" rejected, no upstream calls and deductions generated. credits system is not enabled (exchange rate is 0) the check should automatically jump. Users, quota and credits。
Announcement of the System (Announcement)
The publication page (/admin/announcement Manage two forms of notifications that are independent of each other and share one "save".
The window announcement.
| The field | Explained |
|---|---|
| Showing an announcement | Completely switched, no flash windows show after closing. |
| Literally | Advertising text, support for HTML, change lines <br> Desinfect the white list before rendering. |
| Pictures are optional | Stick the link or upload PNG/JPG directly. server hard limit 256 KB, the front end will first automatically compress the big picture (the longest edge shrink to 1280px, JPEG gradually decreases to about 240 KB) and then upload; configured the image is "image announcement", pop up window image right |
| Remember to close the user. | After closing this item, the announcement will pop up again every visit. |
The announcement version number is updated each time it is saved: Users who have closed the old announcement will see the edited content again the next time it is loaded.
Top of announcement.
A fine banner at the top of the main interface, independent of the bullet window announcement:
- Enable the "Top-Up" switch + single-line HTML content, support
<a href="...">链接</a>It is recommended to keep it short. - Users can manually shut down the announcement article, shutdown state according to the content version memory: only the announcement article ** Change of own content. ** It will only reboot to users that have been shut down, just changing the pop-up announcement will not disturb them.
- There is a real-time preview below the editorial area.
Method of login (System > Method of login)
OAuth provider management page (/admin/oauth After configuring and enabling, the corresponding button appears on the login page; users can also link a third-party account to an existing account in Settings > Accounts.
Provider types and fields
The three built-in brand types require only client credentials, and customized OIDC requires complete endpoints:
| Type of | Compulsory fields | Explained |
|---|---|---|
| Client ID、Client Secret | Create an OAuth client on the Credentials page of Google Cloud | |
| GitHub | Client ID、Client Secret | Create OAuth Apps in GitHub Developer Setup |
| Apple | Client ID (Services ID), Private Key (.p8), Team ID, Key ID | Create a Services ID with AuthKey in Apple Developer |
| Customized (OAuth2 / OIDC) | Client ID, Client Secret, Authorization Address, Token Address, User Information Address, Scopes | Scopes spaces are separated by default (such as openid email profile Can customize the button icon |
Common fields: button text (the name shown on the login page), switch enabled (the button no longer appears on the login page after disabling, the account created by it can still be logged in with a password or otherwise).
Redirect URIs (Redirect URIs)
After each provider saves, at the top of the editing pop-up, the feedback address that needs to be registered to the third-party console is generated, formatted as:
https://你的域名/api/auth/oauth/<提供商ID>/callback
There is a copy button next to the new provider. ** First to preserve. ** The address is generated (the ID is allocated by the system).The feedback registered in the third-party console must be entirely consistent with it, otherwise authorization will be refused.
When a site binds multiple domain names and a third party only allows the registration of one referral address, use environmental variables OAUTH_CALLBACK_BASE_URL Fixed domain names, OAUTH_RETURN_ORIGINS List other domain names that are permitted to jump back. Core environmental variables Single domain name deployments do not need to set these two.
Binding and conflict rules
- The same third-party account (the same provider + subject) can only be assigned to one local account: it has logged in or linked to account A, and account B tries to link the subscription conflict, never covering the change.
- No password has been set, and only the last third-party identity source remains, it is not allowed to unlock (preventing locking yourself out of the door).
Skills Management (Competence > Skills)
The skills (/admin/skills A reusable task description plus an optional script / template asset, which is loaded on request when the relevant task occurs.
| The field | Explained |
|---|---|
| The name | Skills cannot be renamed with existing skills. |
| When to use (a word) | Inject the trigger description of the system prompt index, directly determine the recall rate of the model, to write into a clear trigger condition. |
| The Complete Command (Markdown) | Skill text, i.e. Skill.md subject |
| Imported from Skill.md | Stick SKILL.md with YAML frontmatter, click "Resolve and Fill" Automatically Fill Name / Description / Instructions |
| Assets ( Template / Script ) | Optional files, skills copied to the sandbox when loaded /workspace/skills/<名称>/ Use of Python |
| Activated | Disabled skills are not indexed and cannot be loaded. |
Limits on Upload of Assets: Single Documents 20 MB Upper limit; the extended white list only includes Office templates (pptx/docx/xlsx), common data and text formats (pdf/csv/tsv/json/txt/md), scripts (py/html/css) and common images, and does not accept compressed packages.
Skills need to be developed. ** attached to the model. **: Select the skills supported by the model on the model editing page (conversation model only). Running with gradual disclosure, only one line of index (name + when used) is injected in the system hint for each tied skill, and the model judges when relevant to the call. use_skill Tools obtain complete instructions and duplicate assets; models that do not support tool calls directly integrate the complete instructions of the selection skills into the system, such models suggest fewer coding skills.
The system has a name document-generation The code-level skills (PDF/PPT/DOCX generated formulas) are not in the skill list and cannot be deleted. ** The same name ** The administrator’s skills, which will cover up built-in versions, can be used to customize document-generated behavior.
Translation of voice (capacity > voice)
The Voice Page (/admin/audio Configure the input box for the voice translation of the microphone, and go to the OpenAI-compatible transcription interface.
| The field | admittedly | Explained |
|---|---|---|
| Translated model | whisper-1 | as model Filed to Upstream |
| Base URL | https://api.openai.com | It can point to any OpenAI-compatible audio endpoint, and the back end is stacked as {Base URL}/v1/audio/transcriptions |
| API Key | and empty | Upstream Bearer API key. ** Avoid speech input. ** |
Stream limits and restrictions (transcribe upstream account charges for administrators, these bars prevent abuse):
| Restricted | 值 |
|---|---|
| A single audio size. | 25 MiB |
| Frequency Per User Request | 20 times / minute, more than 429 returns |
File Upload Size (Capacity > Document)
The documentary page (/admin/documents In the two items related to the upload size, the image is set separately from the non-image:
| The field | 键 | admittedly | Explained |
|---|---|---|---|
| Upper limit of image size (MB) | max_image_upload_mb | 5 | Over-limited images were rejected by 413 when uploaded. 0 = Default (5 MB) |
| Maximum file size (MB, not image) | max_file_upload_mb | and empty | Upper limit for non-image files such as PDF, DOCX, CSV. 0 or leave empty = Return to the upper limit for uploading to the server |
Environmental variables MAX_UPLOAD_BYTES (50 MB by default) is the absolute upper limit: administrators can only tighten and not loosen here, see Core environmental variables The front end when the user selects the file, pre-check these two values and remind, do not initiate invalid upload; the server test once in front of the disk and after.All images uploaded through the check, the chat will be fully connected to the visual model, will not be silently discarded.
There is also a white list of extensions that are allowed to be uploaded; common image formats (png/jpg/jpeg/gif/webp/bmp/tiff/heic/avif, etc.) are unconditionally released, and the white list restricts only document/code/data type files.
Sandbox Recycling and Storage
Sandbox connection and execution parameters are stored on the Skills > Tools page and archived on the Skills > Documents page. See overall mechanism and deployment details. The Sandbox Deployment。
Recycling (Capacity > Tools)
| The field | 键 | admittedly | Explained |
|---|---|---|---|
| Execution of overtime (seconds) | sandbox_exec_timeout_sec | 120 | Maximum number of seconds to run a single code, ranging from 10 to 600 |
| Recycling in seconds | sandbox_idle_ttl_sec | 1800 | Sandbox containers are recycled after so many seconds, ranging from 60 to 86400. /workspace Packed archives |
Archive for ** Session ID ** Key: The same conversation The next time the code is executed, the new container will automatically restore the previous work area file and recover user transparency.The administrator can “clean the sandbox” on the session view page, which is a real deletion, even if the archive is deleted, it will not be recovered.
Backend storage (capacity > documentation)
| The field | Explained |
|---|---|
| Type of storage | Local disk (default) / Amazon S3 or compatible / Ali Cloud OSS / Disabled |
| Prefixed Objects | The archive object key prefix, such as workspaces/ |
| Archive for cleaning (day) | Files that are no longer active for more than 30 days are automatically deleted, 0 = permanent; active conversation is updated with a timestamp every time it is recovered and will not be deleted. |
- ** The local disk. **: Zero configuration persistence, recorded in the sandbox service loaded volume (
SANDBOX_LOCAL_STORAGE_DIROnly for single nodes; MinerU document resolution still requires object storage (native mode does not support pre-signed URLs). - ** S3 is compatible ** Bucket/Region/Endpoint/Access Key/Secret Key for custom object storage, such as MinIO and Ceph.
- ** The Cloud Oss **:Bucket / Endpoint / AccessKey ID / AccessKey Secret。
Moderation is
Two levels of moderation: ** Whether or not, using what model ** is each model’s own switch (model editing page); ** Key vocabulary, audit model, type of violation, intercept document ** It is the global material, on the “System > moderation” page (/admin/moderation and maintenance.
The overall arrangement
| The field | 键 | admittedly | Explained |
|---|---|---|---|
| Key words violations | moderation_keywords | and empty | Each one is interrupted. |
| Auditing model | moderation_model_id | not chosen | Conversation model in “model” mode. |
| Types of Violations | moderation_categories | politics、pornography、violence or gore、terrorism、illegal activity、hate speech、self-harm | One category per line, only the "model" mode is used |
| Intercepted language | moderation_message | Your message was blocked by content moderation. Please rephrase and try again. | Text displayed to users when intercepted, can be changed to custom text in any language |
Key word models
Make two-way matching for the user message: matching the string along the way, matching the line along the way (replace the common characters and fold back the letters, such as 0→o、1→i、3→e、4→a、5→s、7→t、@→a、$→s and remove points and spaces), which can prevent the simplest variants from circumventing.
The model
Sending a user message to the specified audit model as a zero-on-context classification, asking for only one word (ALLOW or BLOCK).When you configure the violation type, the classification tip lists these categories clearly, judging only by category; not configured with the general security classification tip.
- Auditing model ** Not configured or called wrong. ** When you automatically return to keyword screening, the audit will never silently lose protection.
- Errors at the infrastructure level (overtime, upstream failure) will not hinder normal conversation, and failure will be judged by fail-open processing (fail-open), only clear BLOCK can intercept.
Scope and Calibration
- The audit took place ** Before the creation. ** Filter only when the user hint, does not contain historical message; the hint generated by the image is also audited.
- Message intercepted ** Not counting daily times, not counting credits ** There is no main model call.
- The judgment call of the audit model itself will record the usage report for "moderation" purposes (output only one word, extremely low cost), see quantity and analysis.。
Audit switches are model-based: you can only open the "model" mode audit for the default model available for open registered users, close the audit for the advanced model for internal paid users, or only retain the keyword mode, without affecting each other.