Near-expiry markdowns: model connections for product questions

Review model connections for product questions in Near-expiry markdowns. Check document scope, failure paths and source evidence through controlled tests.

What the documents look like

Near-expiry markdown work follows the shelf-stock lifecycle rather than piece-by-piece weighing and sorting. The materials a store keeps are near-expiry lists, markdown approvals, damage reports and promotional price tags. Data comes from POS stock age, store inspection, ERP inventory and quality-check records, refreshed by day or by shift. When these materials feed product-information and selection questions, the model reads batch, date range, approval status and tag content, then answers questions about selection and record checking. Status fields set the boundary of any answer: an unapproved markdown, an unsigned termination and an unconfirmed quotation are not executed facts.

For this page the relevant industry facts are the lifecycle framing, the status-driven boundary and the mixed document set. Each one shapes how a model connection is prepared and how a draft sentence is judged.

Constraints at the model connections step

Model access depends on AI Proxy. Both the App service and an Admin service that reuses App/Service configuration must set AIPROXY_API_ENDPOINT and a non-empty AIPROXY_API_TOKEN; missing either causes startup validation to fail. AIPROXY_API_ENDPOINT holds the AI Proxy service root address and does not append /v1. AIPROXY_API_TOKEN holds a non-empty administrator token consistent with the server side; an application API key does not replace it. The system needs at least one language model and one index model to work normally. Model capabilities are checked against the input the application actually needs, with multimodal, tool-calling and thinking settings verified separately. Application parameters are set in the application or node configuration; a same-named field on a compatible chat interface is not assumed to override orchestration. A thinking budget is a reasoning budget and does not serve as a reference token ceiling.

Hypothetical paper sample: a store's near-expiry list dated 10 March 2026 records "Fresh milk batch A, shelf life to 12 March, quantity 12 cartons, status is pending markdown approval." A markdown approval form of the same date records "Batch A markdown application submitted, approver has not signed." A draft sentence to be judged is "Batch A markdown is approved and can be sold at the new price tag." The source materials carry subject, object, status and validity range, while the approval signature fact is absent, so the draft sentence does not hold.

Configuration and implementation checks

The table below centres on the sample and lists documented settings or implementation checks. The hypothetical starting values are for this paper review only and are not official defaults.

Configuration itemHypothetical starting value for this reviewReason and comparison method
AIPROXYAPIENDPOINTAssume http://aiproxy:3000Documented root address without /v1; compare against the documented format
AIPROXYAPITOKENAssume a non-empty administrator tokenDocumented as consistent with the server side and non-empty; compare against an empty value
Language modelAssume one tested language model is enabledDocumented minimum of one language model; compare against a disabled state
Index modelAssume one tested index model is enabledDocumented minimum of one index model; compare against a disabled state
Model capability checkAssume each field the sample needs is checked item by itemDocumented as checked against required input; compare against a missing capability
Application parameter locationAssume parameters are set in the application or node configurationDocumented location; compare against a same-named chat-interface field

Three common errors

  1. Treating a pending markdown approval as approved. In the sample the approver has not signed, while the draft sentence says "approved." The input is the approval-form status field, the comparison object is the signature fact, and the observable result is that the missing signature is recorded as unsupported.
  2. Leaving AIPROXY_API_TOKEN empty or substituting an application API key. The input is the environment variable value, the comparison object is the documented non-empty administrator token, and the observable result is startup validation failure or a rejected call.
  3. Treating a thinking budget as a reference token ceiling. The input is the model thinking configuration field, the comparison object is the documented distinction between reasoning budget and reference ceiling, and the observable result is a configuration item mapped to the wrong limit.

How to verify the setup

  1. Check the sample draft sentence: the input is the near-expiry list and markdown approval form text, the comparison is the approval signature field against the draft wording "approved," and the sentence is supported only when the signature fact exists and the status field agrees. With the signature absent, record it as unsupported.
  2. Check model access: the input is the configured values of AIPROXY_API_ENDPOINT and AIPROXY_API_TOKEN, the comparison is the documented root-address format and non-empty token, and the access condition holds only when both are satisfied and model testing passes. Without testing, record it as pending verification.
  3. Check application parameters: the input is the parameter settings in the application or node, the comparison is the documented parameter location, and the condition holds only when parameters are set in the application or node configuration and distinguished from a same-named chat-interface field. When unset, record it as a gap.

Retrieval and similarity scores do not perform authorization or entity isolation, and a shared vector model requirement for one knowledge base does not extend to unrelated external systems. Any system error or automatic business action not stated in the source is not asserted here.