What the documents look like
Platform advertising and on-site traffic work runs on a small set of operating documents. A delivery plan states which campaigns are live, their budgets and their targeting. A keyword report records spend, conversions and return on investment by plan and by day. Audience package descriptions define which user groups a plan addresses. A conversion attribution table links orders back to the traffic source that produced them. Data sources named in the brief include Juliang Qianchuan, JD Kuaiche, Alimama and store transaction data, with refresh at daily or hourly intervals.
Two features of this category shape the model connection task. First, pricing moves with traffic and conversion in near real time, so the review step that governs a platform promotion campaign is thinner here. An incorrect model connection therefore shows up as wasted ad spend and distorted return figures rather than as a rejected submission. Second, the question-answering task this page covers is product material and selection questions, meaning the system must read the delivery plan, keyword report, audience package description and attribution table and answer questions about them. The model connection and configuration work described below serves that reading and answering task only. It does not create business functions that the documents do not support.
Constraints at the model connections step
In FastGPT v4.17.2, AI Proxy is a required dependency. Both the App service and the Admin service must set AIPROXY_API_ENDPOINT and a non-empty AIPROXY_API_TOKEN. Missing either one causes startup validation to fail. Legacy OpenAI environment variables and single-model custom request addresses cannot substitute for these two settings.
Within a model channel, the proxy address field takes a BaseUrl, not a complete model request address. The model ID is the value of the model field in the request body and is globally unique. Model mapping translates the model FastGPT requests into the model actually sent upstream. For example, a mapping of gpt-4o-test to gpt-4o means FastGPT requests gpt-4o-test, AI Proxy receives gpt-4o-test, and the upstream provider receives gpt-4o.
Model status probing applies only to system models that are currently enabled. Disabled models are not probed and produce no history. After a first probe failure the system retries up to three more times, so a single round makes at most four attempts. One success in that round is enough to treat the model as valid; only four failed attempts mark it abnormal. A successful probe with latency at or below 30 seconds is normal, a successful probe above 30 seconds is high latency, and four consecutive errors are abnormal.
Retrieval and relevance scores do not perform permission or entity isolation. A similarity score is not a filter for unauthorized records or unrelated businesses. Retrieval is not authorization. Datasets built on different vector models cannot be associated together. Full-text retrieval behavior depends on the vector store: Milvus uses BM25 through the modeldata_v2 single table, while other vector stores use MongoDB $text.
Configuration and implementation checks
The table below lists documented settings and implementation checks tied to this page's sample. Values shown as starting points are hypothetical choices for this paper exercise, with the reason for the choice and the comparison method stated.
| Item | Setting or check | Relation to this page's sample |
|---|---|---|
AIPROXY_API_ENDPOINT | AI Proxy service root address, no /v1 appended | The sample question request is forwarded through AI Proxy to the model |
AIPROXY_API_TOKEN | Non-empty administrator token matching the server configuration | An application API key does not replace this value |
| Channel proxy address | A BaseUrl, not a complete model request address | The keyword report questions depend on this channel |
| Model ID and model mapping | Model ID is globally unique; mapping translates the FastGPT request into the upstream model | The model field in the sample request must match the configuration |
| Model status probing | Enabled models only; up to three retries after first failure; four failed attempts mark abnormal | Channel availability checks for the sample reference probe status |
| Vector store full-text retrieval | Milvus uses BM25; other vector stores use MongoDB $text | The product material retrieval path depends on the vector store type |
Hypothetical paper exercise sample: On 12 October 2026 a delivery specialist hands over a keyword report. The report text reads: "Plan A spent 3,200 yuan on 11 October, produced 48 orders, return on investment 2.1. Plan B spent 1,800 yuan on the same day, produced 12 orders, return on investment 0.9." The draft sentence awaiting review is: "Plan B has a lower return on investment than Plan A, so pausing Plan B is recommended." This request is pending review. No delivery supervisor approval has been granted, and no pause has been executed.
A hypothetical starting value for the probe interval in this paper exercise is 30 minutes, chosen because the brief describes data refresh at daily or hourly intervals and a 30-minute probe cycle sits inside that range. This is a hypothetical starting point for the exercise, not an official default. The comparison method is to read the configured interval value and check whether it is an integer between 5 and 60 minutes as documented.
Three common errors
- Setting
AIPROXY_API_ENDPOINTto a complete request address that includes/v1or/chat/completions. The input is the environment variable value. The comparison is against the documented requirement of a service root address with no/v1appended. A value containing/v1does not meet the requirement. - Treating a single probe failure as an abnormal model status. The input is the probe configuration and the probe result record. The comparison is against the documented retry behavior of up to three retries after the first failure, with four failed attempts required to mark a model abnormal. Marking a model abnormal after one failure does not meet the requirement.
- Treating a retrieval relevance score as a permission or entity filter. The input is the retrieval request and the returned results. The comparison is against the documented statement that retrieval and relevance do not perform permission or entity isolation. Excluding unauthorized records on the basis of a similarity score does not meet the requirement.
How to verify the setup
- Check whether
AIPROXY_API_ENDPOINTandAIPROXY_API_TOKENare both set and non-empty. The input is the environment variable configuration. The comparison is against the documented requirement that both are mandatory and that missing either one fails startup validation. The condition is satisfied when both are present and the token is non-empty. If either is absent, startup validation failure is the expected outcome and the missing value remains unknown until supplied. - Check whether the channel proxy address is a
BaseUrlwithout a complete request path. The input is the proxy address field in the channel configuration. The comparison is against the documented instruction to enter aBaseUrland to consider whether/v1is needed. The condition is satisfied when the address takes a root address form. - Check whether the draft sentence "Plan B has a lower return on investment than Plan A" matches the report text. The input is the draft sentence and the report text. The comparison is against the report values of 0.9 for Plan B and 2.1 for Plan A. The numeric comparison holds when 0.9 is less than 2.1. The clause "pausing Plan B is recommended" is a business recommendation, not a completed action. The request is pending review, so it does not constitute an approved or executed pause. Whether the pause should occur remains undetermined by the supplied materials.
For the retrieval path, a paper exercise can supply an explicit empty input of [] and check how the downstream design handles an empty result. This does not establish that any particular retrieval rule returns an empty list. Where the vector store type is not yet confirmed, the retrieval path remains unknown and should be recorded as a gap rather than assumed. Cross-model dataset association should be checked by first verifying the model identifier and excluding non-matching datasets; no cross-model retrieval should be run to compare recall.