What the documents look like
Franchisee training and opening coaching is a transfer of operating capability, distinct from the legal disclosure work of franchise registration. The daily materials are training sign-in sheets, opening checklists, SOP manuals, and assessment scores, drawn from the training system, supervisor app, store photos, and the headquarters SOP library. Copy drafting for products and marketing must cite these materials, and any promotional sentence must correspond to a fact that appears in the source text.
This page addresses model connection and configuration only: connecting a model channel so that the drafting step can call a language model to produce copy drafts. Whether a specific promotional sentence is supported by the materials belongs to a separate copy review task and is not developed here.
Constraints at the model connections step
Model connection depends on AI Proxy. The App and Admin services must each set AIPROXY_API_ENDPOINT and a non-empty AIPROXY_API_TOKEN; missing either item causes startup validation to fail. Legacy OpenAI environment variables or a single-model custom request address cannot replace these two settings. AIPROXY_API_ENDPOINT takes the service root address without an appended /v1. The system requires at least one language model and one index model to operate normally, and only one speech recognition model takes effect.
Model channels are created on the administrator model provider page by filling in channel name, protocol type, model, model mapping, proxy address, and API key. The proxy address takes a BaseUrl, with attention to whether /v1 must be added. After a channel is created, a model test can run and outputs each model's test result and request duration.
Hypothetical drill sample: a chain brand training department is preparing a product introduction for opening coaching. The source text available for checking consists of three sentences. First, the training sign-in sheet states that on 10 March 2026 the franchisee of a given store completed sign-in for the cashiering and inventory course. Second, the opening checklist states that on 12 March 2026 the store's opening materials inspection passed. Third, the SOP manual states that cashiering actions follow Chapter 3. A draft sentence awaiting judgment reads: "The store has completed all opening coaching and passed the assessment." The materials do not state assessment scores, so the phrase "passed the assessment" in the draft has no corresponding evidence.
Configuration and implementation checks
The table below lists, around the sample above, the officially documented settings or implementation checks relevant to this feature and this task. Where a value is needed, it is a hypothetical starting value for this exercise, with the reason for choosing it and the comparison object stated.
| Configuration item | Hypothetical starting value | Note and checking method |
|---|---|---|
AIPROXY_API_ENDPOINT | Assume http://aiproxy:3000 | Official requirement is the root address without /v1. Check whether the value ends with /v1. |
AIPROXY_API_TOKEN | Assume a non-empty value matching the server | Official requirement is non-empty and matching the server. Check whether it is empty and whether an application API key was used by mistake. |
| Language model | Assume one language model is enabled | Official requirement is at least one language model. Check whether the model status is enabled. |
| Index model | Assume one index model is enabled | Official requirement is at least one index model. Check whether the model status is enabled. |
| Channel proxy address | Assume the vendor BaseUrl is entered | Official requirement is a BaseUrl, with attention to whether /v1 is needed. Check whether a full request address was entered by mistake. |
| Model mapping | Assume gpt-4o-test maps to gpt-4o | Official example: FastGPT requests gpt-4o-test, and AI Proxy sends gpt-4o upstream. Check whether the mapping key and value correspond. |
Three common errors
- Entering
AIPROXY_API_ENDPOINTas a full request address ending in/v1. The input is the environment variable value; the comparison object is the official requirement of a root address without/v1; the observable result is that the value ends with/v1. - Using an application API key as
AIPROXY_API_TOKEN. The input is the token value; the comparison object is the official requirement of an administrator token matching the server; the observable result is that the value does not match the server administrator token. - 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 official requirement to enter a
BaseUrl; the observable result is that the field contains a specific endpoint path.
How to verify the setup
- For the sample draft sentence "The store has completed all opening coaching and passed the assessment," the input is the three source sentences and the draft sentence; the comparison object is whether the materials state assessment scores; the observable result is that no assessment score field appears in the materials, so the sentence is not supported. This is an expected outcome for the paper exercise, not a completed test.
- For the hypothetical
AIPROXY_API_ENDPOINTvaluehttp://aiproxy:3000, the input is that value; the comparison object is the official root address requirement; the observable result is that it does not end with/v1, so the condition is met. This is an expected outcome for the paper exercise, not a completed test. - For the hypothetical model mapping key and value
gpt-4o-testtogpt-4o, the input is the mapping configuration; the comparison object is the official example; the observable result is that the request model and the upstream model correspond respectively, so the condition is met. If the mapping key and value do not correspond, record it as pending verification rather than judging the channel as failed. This is an expected outcome for the paper exercise, not a completed test.