What the documents look like
Brand member private-domain operations centres on customer data and repeat-purchase outreach. The working materials come from a CRM system, enterprise WeChat, POS purchase records and mini-program behavioural data, and the daily documents are member tag tables, outreach plans, coupon rules and privacy authorisation records. Copy drafting for products and marketing depends on these materials to decide whether a proposed promotional sentence has support.
Each material carries a different kind of fact. A member tag table records tier membership. An outreach plan records an activity period and its target group. A coupon rule records the conditions under which a coupon applies. A privacy authorisation record records which contact channels a member has agreed to. Materials update daily or weekly. The multi-turn prompt feature described here does not depend on batch synchronisation; it compares draft sentences against the wording that the materials actually contain.
The consequence of getting this wrong is concrete: outreach complaints, uncontrolled coupon cost and member churn. That is why the drafting step treats unsupported claims as a defect rather than a style issue.
Constraints at the multi-turn prompts step
Multi-turn dialogue carries earlier messages forward, so the prompt must state the document scope, the answering task and how to behave when evidence is missing. The model must not fill in member tiers, coupon conditions or authorisation status from general knowledge.
History handling distinguishes a new session from a continued one. When chatId is absent, FastGPT does not use its stored context and the full context is built from the supplied messages. When chatId is a non-empty string, FastGPT retrieves the session from its database and uses only the last element of the messages array as the user question; the remaining messages are ignored. A verification step therefore has to confirm which of these two modes was actually exercised.
Question optimisation is relevant when a knowledge base is used in continuous dialogue, where it resolves references across turns. It is not assumed to apply to every short question. Model choice and length need checking against the supported context and reply limits, and long documents combined with follow-up questions are a useful test combination. Reply format follows what the downstream step consumes; when json_schema is selected, the corresponding format requirement is filled in and the returned structure is verified. Retrieval and similarity scores do not perform permission or entity isolation, so they cannot be used to exclude unrelated members or unauthorised records.
Hypothetical paper test case. The material wording is three sentences: "This activity is open to gold-tier members who completed real-name verification between 1 March 2025 and 31 March 2025." "The coupon applies only to the apparel category and requires a single order of at least 500 yuan." "The member authorisation record shows that this member agreed to receive marketing text messages." The draft sentence under review is: "All members may use this coupon on any product during the March activity." The comparison subject is the gold tier, the object is the apparel category, the status is completed real-name verification and the validity scope is 1 March to 31 March. The draft widens "gold-tier members" to "all members" and widens "apparel category" to "any product", so its values in those fields differ from the source wording and the sentence is unsupported.
Configuration and implementation checks
| Configuration item | Setting or check relevant to this page | Relation to the sample |
|---|---|---|
| AI model | Select a model whose maximum context fits the material; check tool-calling ability | The sample material is short, but follow-up combinations need enough context |
| Memory turns | Controls how many earlier turns are referenced; customer-service style applications keep a small number | Follow-up questions must be checked for whether the earlier tier condition is carried forward |
| Reply limit | When enabled, caps reply length so a complete explanation is not cut off | The explanation must stay complete; the starting value is a trial value for this test and is compared against truncation behaviour |
| Temperature | Copywriting scenarios may run higher; rule-based judgement runs lower | The sample judgement needs stability; the starting value is a trial value and is compared across repeated outputs |
| Reply format | Ordinary dialogue keeps the default; a fixed structure uses json_schema with the format requirement filled in | If a later node reads the judgement result, the structure must be fixed and the return verified |
| Thinking configuration | Simple judgement uses no thinking; complex comparison may use a higher strength | The sample is a field comparison; the starting value is no thinking and is compared against response differences |
The values above are trial starting points for this hypothetical test, not official defaults. They are settled by comparison with other values on the same task.
Three common errors
- Writing "gold-tier members" as "all members". The input is the source wording and the draft sentence; the comparison is the subject field; the draft fails when its subject scope is wider than the source.
- Writing "apparel category" as "any product". The input is the coupon rule wording and the draft sentence; the comparison is the object field; the draft fails when its object scope is wider than the source.
- Treating "agreed to receive marketing text messages" as "agreed to all outreach". The input is the authorisation record wording and the draft sentence; the comparison is the authorisation field; the draft fails when its contact scope exceeds the source.
How to verify the setup
- Take the three source sentences and the draft sentence, submit them through multi-turn dialogue, and compare whether the output identifies the subject, object, status and validity scope as inconsistent with the source. The condition is met when the output explicitly lists the inconsistent fields. The expected result is stated here as an expectation, not as a completed test.
- Take the same
chatIdand send a follow-up, then compare whether the history carries forward the earlier tier condition. The condition is met when the follow-up answer still cites the gold tier and the apparel category. If the condition is not carried forward, record it as not met. - Take an empty-result paper input of
[]and compare whether the downstream design handles an empty reference. The condition is met when the downstream step does not treat the empty result as a conclusion that there are no members or no authorisation. The retrieval check observes what is actually returned and does not guarantee a first-hit match or full recall.
Where a field is not stated in the source wording, or only evidence from a related stage exists, the correct label is unsupported or pending verification, not contradicted. A pending review does not establish that an operating permission is missing, and an unsigned termination is not a completed termination. Missing evidence stays missing.