Wholesale stall trading: model connections for copy drafting

Review model connections for copy drafting in Wholesale stall trading. Check document scope, failure paths and source evidence through controlled tests.

What the documents look like

Wholesale stall trading runs on purchase slips, handwritten sales notes, stall lease contracts and payment receipts. Market pricing comes from the wholesale market itself, payment often arrives through WeChat, and shipping follows a logistics consignment note. These materials sit partly on paper and partly inside chat records, and they update both daily and per transaction.

For product and marketing copy drafting, the drafting request needs to cite item names, specifications, quantities, price ranges and stall information taken from those materials. The materials themselves do not authorize any promotional wording. The role of model connections and configuration at this step is to let a drafting request reach an enabled language model, and to let a person compare the generated wording against the original material text.

Constraints at the model connections step

Handwriting and formats vary across materials, so key fields must be organized into quotable text before drafting. The system needs at least one language model and one index model to work normally. AI Proxy is a required dependency, and both the App and an Admin service that reuses App/Service configuration must set AIPROXY_API_ENDPOINT and a non-empty AIPROXY_API_TOKEN; missing either one causes startup validation to fail. Legacy OpenAI environment variables or a single-model custom request URL cannot replace these two settings. Model capabilities are checked against the inputs the application actually needs, with multimodal input, tool calling and thinking configuration verified separately. Application parameters are set in the application or node configuration.

Hypothetical exercise sample: on 12 March 2026 a stall operator organizes a batch of spring women's clothing. The material text reads: "Purchase slip states: item knitted cardigan, specification one size, purchased 200 pieces." "Handwritten sales note states: 30 pieces sold on 12 March, unit price 45 yuan." "Stall lease contract states: stall A-12, lease term through February 2027." One draft sentence awaiting judgment is: "All knitted cardigans at this stall are current-season new styles, while stocks last." This sentence makes two claims, that all items are current-season new styles and that stock will end. The material text does not state a seasonal attribute for the styles and does not state a stock termination condition, so the sentence is unsupported.

Configuration and implementation checks

Configuration is checked against this page's sample, and database internals are not copied in as mandatory items for every page.

Configuration itemHypothetical starting value for this exerciseReason for the choice and comparison method
AIPROXY_API_ENDPOINTAI Proxy service root addressDocumentation requires the root address without /v1; compare the entry against the documented format
AIPROXY_API_TOKENNon-empty administrator token matching the server sideCompare against the AI Proxy server configuration and confirm they match
Language model enabledOne language model enabled for copy draftingCompare against the system requirement of at least one language model
Index model enabledOne index model enabledCompare against the system requirement of at least one index model
Model capability checkChecked against the text input this sample needsCompare against model fields such as vision and toolChoice
Application parametersSet in the application or node configurationCompare against where orchestration actually reads them; do not assume a same-named chat field overrides them

Three common errors

  1. Treating "30 pieces sold, unit price 45 yuan" from the material text as a full inventory fact, then writing "while stocks last." The input is the draft sentence plus the material text, the comparison is whether the material states a stock termination condition, and the observable result is that the sentence is unsupported when the material does not state one.
  2. Entering a complete model request address as AIPROXY_API_ENDPOINT with /v1 appended. The input is the entered address, the comparison is the documented requirement to enter the root address without /v1, and the observable result is a mismatch with the documented format.
  3. Using an application API key as AIPROXY_API_TOKEN. The input is the entered token, the comparison is the documented requirement for a non-empty administrator token, and the observable result is a mismatch.

How to verify the setup

  1. Enter the hypothetical sample material text together with the draft sentence "All knitted cardigans at this stall are current-season new styles, while stocks last." Compare whether the seasonal attribute and the stock termination condition appear in the original text. When the original text does not state them, the sentence is judged unsupported, and it is not judged as a negation or a conflict.
  2. Enter the configured AIPROXY_API_ENDPOINT and compare whether it is the AI Proxy service root address without /v1. It passes when the format matches the documentation; when a path is appended, record the mismatch.
  3. Enter the configured AIPROXY_API_TOKEN and compare whether it matches the server-side configuration and is non-empty. It passes when they match; when an application API key is entered, record the mismatch. All three are paper comparisons. No deployment or test has been performed.