What the documents look like
Brand member private-domain operations center on customer data and repeat-purchase outreach. The working materials come from a CRM system, WeCom, POS purchase records and mini-program behavior data. The recurring documents are member tag tables, outreach plans, coupon rules and privacy authorization records. Copy drafting has to cite the member tier, the coupon scope and the authorization state recorded in those materials, and the materials themselves update daily or weekly.
Model connection and configuration determine whether drafting can reliably call a language model and whether the output matches the wording used in those materials. This page covers one task only: drafting product and marketing copy for brand member private-domain operations. Whether a specific promotional sentence is supported by the source material is a separate question from any identity-certification or report-analysis task.
Constraints at the model connections step
From V4.17.0, AI Proxy is a required dependency. The App service and any Admin service that reuses App/Service configuration must both set AIPROXY_API_ENDPOINT and a non-empty AIPROXY_API_TOKEN. A missing value in either one causes startup validation to fail. Legacy OpenAI environment variables and a single-model custom request address cannot substitute for these two settings.
The system needs at least one language model and one index model to work normally. For a model channel, the proxy address field takes a BaseUrl, and the operator has to check whether /v1 needs to be appended. A model test actually sends a request following a template and reports each model's test result together with the request duration.
Model status probing applies only to system models that are currently enabled. Disabled models do not participate in probing and produce no history. After a first failure, the probe retries up to three more times, so a single round makes at most four attempts. One successful call is enough to mark the round valid; only when all four attempts fail does the round count as abnormal.
Hypothetical drill sample: a brand CRM team is preparing copy for a member coupon. The source material reads: "This coupon is limited to Silver tier members and above, valid from September 1 to September 30, 2026, for use in the mini-program mall, on single orders of 300 yuan or more." A draft sentence awaiting judgment reads: "This coupon is open to all members and is valid until December 31, 2026." The comparison scope is limited to this source material and this draft sentence.
Configuration and implementation checks
| Configuration item | Hypothetical starting value for this drill | Reason for the choice and comparison method |
|---|---|---|
AIPROXY_API_ENDPOINT | http://aiproxy:3000 | The documented requirement is the AI Proxy service root address without /v1; compare the entered value against the documented format |
AIPROXY_API_TOKEN | A non-empty administrator token, assumed for this drill | The documented requirement is a value consistent with the server side and not empty; compare against the AI Proxy side value |
| Language model | One language model that has passed a channel test, assumed enabled | The system needs at least one language model; judge by the channel test result and request duration |
| Index model | One index model that has passed a channel test, assumed enabled | The system needs at least one index model; judge by the channel test result |
| Probe interval | 10 minutes, assumed for this drill | The documented range is an integer from 5 to 60 minutes; compare against the material review cadence and take a lower-middle value |
| Alert webhook address | An HTTP callback address, assumed for this drill | The documented support covers HTTP and HTTPS, and the test button verifies connectivity; judge by the test push result |
Three common errors
- Treating legacy OpenAI environment variables as a substitute for
AIPROXY_API_ENDPOINTandAIPROXY_API_TOKEN. The input is the current environment variable list; the comparison object is the documented requirement that both are mandatory; a startup that proceeds with either one missing is the observable mismatch. - Entering a full model request address in the channel proxy address field. The input is the channel proxy address field; the comparison object is the documented instruction to enter a
BaseUrland to check/v1; a value carrying a full path such as/chat/completionsis the observable mismatch. - Including disabled models in the probe scope. The input is the model enablement state together with probe records; the comparison object is the documented statement that probing covers enabled system models only; probe history appearing for a disabled model is the observable mismatch.
How to verify the setup
- Input the hypothetical source material and the draft sentence; compare whether the member scope and validity period in the draft use the same subject, the same period and the same field as the source. The material states Silver tier and above and September 1 to September 30; the draft states all members and December 31. The same field holds mutually exclusive values, so the comparison result is a contradiction.
- Input a second draft sentence, "This coupon can be used in the mini-program mall," and compare whether the source material records the usage channel. The material already records the mini-program mall, so this sentence agrees with the material and the comparison result is supported.
- Input a draft sentence, "This coupon can be stacked with other offers," and compare whether the source material records any stacking rule. The material records no stacking clause, so the comparison result is unsupported. Record the evidence gap and do not supply an authorization or effective clause to close it.
A retrieval check records observation and failure branches only. Input a clearly written paper query and a target knowledge base, then observe whether returned entries share the same subject and the same field as the material. When the result is empty, use a clearly written paper input [] to check the downstream design; do not assert that a query about a fictional rule necessarily returns []. Knowledge bases across different vector models cannot be associated together. Check the identifiers first and exclude the non-matching ones, then record the actual observation. Do not invent missed-recall or redundant-result behaviour.