Fresh-food concession counters: model connections for product questions

Review model connections for product questions in Fresh-food concession counters. Check input mappings, source evidence and failure handling before use.

What the documents look like

A fresh-food concession counter in a hypermarket is run by an on-site supplier who is paid through a sales-share arrangement. That structure splits the paperwork across three parties: the hypermarket fresh-food department, the concession supplier, and the store manager. Product reference and selection questions draw on four document families: the concession contract, the daily sales report, the shrinkage (loss) sheet, and the food purchase inspection record. Staff use these sources to look up an item's specification, its supply status, and the evidence required for a purchase. The material is updated daily or per batch, and an answer reflects only the text that has been loaded into the knowledge base.

For this page the relevant task is product reference and selection questions, and the relevant feature is model connection and configuration. The document set matters at this step because the knowledge base must hold contract, sales, shrinkage, and inspection text before any question about a single item can be answered from it. Nothing in the model connection step verifies that a supplier is authorized, that a shrinkage sheet has been reconciled, or that a purchase record is complete.

Constraints at the model connections step

Model access depends on AI Proxy. The App and Admin services must both set AIPROXYAPIENDPOINT and a non-empty AIPROXYAPITOKEN; if either is missing, the startup validation fails. The endpoint is the AI Proxy service root address, and the documentation states it must not carry a /v1 suffix. The token is the AI Proxy administrator token and must match the server-side configuration; it is not an application API key.

Model channels are created on the administrator model provider page. A channel holds a channel name, a protocol type, the models available on that channel, an optional model mapping, a proxy address given as a BaseUrl, and an API key. A channel test can be run before the channel is used, and the test reports each model's result and request duration. A model is enabled after that. The system needs at least one language model and one index model to work normally. A model mapping such as {"gpt-4o-test": "gpt-4o"} means FastGPT requests gpt-4o-test and AI Proxy sends gpt-4o upstream.

Two limits belong to the retrieval side and stay there. Knowledge bases that use different vector models cannot be associated with each other. A similarity score is a retrieval result, not a category filter, an entity filter, or a permission filter; it does not exclude unrelated businesses or unauthorized records. Retrieval is not authorization. An empty retrieval result is an observed output, and the downstream display logic is a separate implementation question.

Model status probing is a separate optional facility. When automatic probing is enabled, the system periodically tests enabled system models, retries a failed probe up to three times within one round (four attempts in total), and treats the model as abnormal only when all four attempts fail. A successful probe with latency at or below 30 s is normal; above 30 s is high latency; four consecutive errors is abnormal. Probe intervals are integers from 5 to 60 minutes. An alert Webhook address is optional, and when it is left empty no push is sent. The Webhook request method is POST with a 5-second timeout.

Hypothetical drill sample, clearly labelled and not a real record: a store fresh-food department holds a paper "Concession Counter Product Handover Sheet" whose body reads: "Supplier A has operated the leafy-vegetable counter at Store A since 1 March 2026, with supplied categories of bok choy and spinach; on 5 March 2026 Supplier A submitted one shrinkage sheet, quantity 3 kg, pending check by the fresh-food department." A draft sentence awaits a decision: "Supplier A has been approved to operate all fresh-food categories at Store A from 1 March 2026." The draft does not match the source's category scope, and the source states no all-category authorization.

Configuration and implementation checks

Configuration itemAssumed starting point for this drillReason and comparison object
AIPROXYAPIENDPOINTAI Proxy root address, no /v1Matches the documented form; compare against a value carrying /v1 or /chat/completions
AIPROXYAPITOKENNon-empty administrator tokenMust match the server side; compare against an application API key
Language modelOne model that passed its channel testSystem needs at least one language model; compare the channel test result
Index modelOne model that passed its channel testSystem needs at least one index model; compare whether the index model is enabled
Probe interval30 minutes assumed for this drillDocumented range is 5 to 60 minutes as an integer; compare the entered value against that range
Alert Webhook addressLeft empty in this drillEmpty means no push; compare whether a receiving endpoint is configured

The endpoint and token entries are environment-variable settings described in the self-host configuration document. The language model, index model, and channel test are administrator page operations described in the model configuration document. The probe interval and Webhook address are fields in the probe configuration dialog. None of these settings performs business verification, approval, a database write, or external synchronization on its own.

Three common errors

  1. Entering AIPROXYAPIENDPOINT as a full chat request address with a /v1 suffix. Input: the endpoint value. Comparison: the documented service root form against the entered value. Observable result: the startup validation reports a failure, because the address form does not match.
  2. Using an application API key as AIPROXYAPITOKEN. Input: the token value on both sides. Comparison: the App or Admin value against the server-side value. Observable result: a model call returns an authentication error. The specific error text is not documented here and remains unknown.
  3. Treating a retrieved product record as proof of supplier authorization and judging Supplier A to operate all categories. Input: the draft sentence and the handover sheet. Comparison: the source category scope "bok choy and spinach" against the draft "all fresh-food categories" on the same field. Observable result: the two values are mutually exclusive on category scope, so the draft is unsupported and stays pending verification.

How to verify the setup

  1. Take the handover sheet text above and the draft sentence. Compare the source category scope "bok choy and spinach" with the draft "all fresh-food categories." If the two differ on the same field, the draft is not supported by the source and is marked pending verification. Expected result: a scope mismatch. No test has been run and no result is claimed.
  2. Take the sentence "on 5 March 2026 Supplier A submitted one shrinkage sheet, quantity 3 kg, pending check by the fresh-food department." Compare the stated status "pending check" with "checked." If the source carries only the pending status, the completion of the check is not supported. Expected result: the status remains unconfirmed. A pending request is not an approval.
  3. Take a query that stays inside Supplier A's leafy-vegetable scope. Compare whether the returned fragments fall within that scope, and if the return is empty, use the paper input [] to check the downstream display logic rather than inferring that a rule-based retrieval must return empty. Expected result: record what was actually returned. First-hit matching and full recall are not guaranteed, and an unrelated query is not guaranteed to return empty.

Across all three checks, the model connection step only establishes that a language model and an index model are reachable and enabled. Whether Supplier A holds a valid concession, whether the shrinkage quantity is reconciled, and whether a purchase inspection record is complete are separate business facts. Where the source is silent, the evidence gap stays open.