What the documents look like
A brand concession inside a shopping mall accepts the mall's unified cashiering and settles on a concession-fee basis. Sales data therefore sits in two places at once: the mall POS and the brand ERP. The documents that staff handle day to day are the joint-operation concession contract, mall activity letters, sales receipts, and monthly settlement statements. In store service and internal training, multi-turn dialogue has to answer concession staff questions about these specific materials — how the concession fee is calculated, what conditions an activity requires, and how a receipt maps to a line on the settlement statement. These materials update on a daily and monthly cadence; this page does not derive batch synchronization or transaction-triggered mechanisms from that cadence.
The practical constraint is that a prompt must state its material scope, its answering task, and how to behave when evidence is missing. Fields the materials do not carry stay unknown, and the model does not fill in business facts. In a continued session, the number of prior turns carried in is governed by the memory-turn setting, and a new session and a continued session have different inputs that need separate verification. Reference resolution and question expansion in continuous knowledge-base dialogue are checked against the question-optimization configuration, without assuming every short question qualifies. Model context length and reply cap need to be tested together with long documents and follow-up questions. Reply format is chosen by what the downstream node consumes; selecting json_schema requires filling in the corresponding format requirement and checking the returned structure. Retrieval supplies candidate content only and does not constitute authorization; forms collect values, and business verification, approval, database writes, and external synchronization each need separate downstream implementation.
Hypothetical paper exercise: the source material reads, "This concession participates in the mall's March spend-and-save activity. The activity letter states the activity period runs from March 1 to March 31. The concession fee is settled at the ratio agreed in the joint-operation contract." A draft sentence awaiting judgment reads, "The concession fee for this concession's March spend-and-save activity has been adjusted per the activity letter." The source states only the activity period and that the fee settles per contract; it does not state that the fee was adjusted because of the activity. That draft sentence is unsupported and the evidence gap must remain open.
Constraints at the multi-turn prompts step
The prompt must separate three things: what the materials say, what the task asks the model to do with them, and what to do when a needed fact is absent. For this category, the materials are the concession contract, the activity letter, the receipt, and the monthly settlement statement. A prompt that asks the model to reconcile a receipt against a settlement line must instruct it to compare the same subject, the same period, and the same field. A concession fee ratio named in the contract and an activity period named in the letter are different fields; agreement on one does not establish the other.
Session behavior matters here. When chatId is empty, FastGPT does not use its stored context and builds the context entirely from the supplied messages. When chatId is a non-empty string, FastGPT pulls the session from its database and uses only the last item in messages as the user question, ignoring the rest. The memory-turn setting controls how many prior turns the AI may reference. A larger value brings in more content and may raise consumption and slow the response; a value too small may fail to use earlier information. Customer-service and knowledge-base question-answering applications typically keep a small number of history turns.
Retrieval is not authorization. A similarity score is a retrieval ranking value, not a category, entity, or permission filter, and it does not exclude unrelated businesses or unauthorized records. Libraries that use different vector models cannot be associated together; this is checked by comparing model identifiers and excluding non-matching libraries, not by running a cross-model search to compare recall. A form submission is a collected value, not an approval. A pending review is not an approval, an offered option is not execution, and an unsigned termination is not a completed termination.
Configuration and implementation checks
| Configuration item | Hypothetical starting value for this exercise | Verification method |
|---|---|---|
| Memory turns | Set to 3 turns | Compare history carried into a continued session against 1 turn and 6 turns to see whether reference resolution changes |
| Reply cap | Set to 800 | Compare whether replies to long documents plus follow-ups are truncated |
| Temperature | Set low | Compare whether the same material produces stable answers |
| Reply format | Keep default | Change to json_schema only when a downstream node needs a fixed structure |
| Multimodal recognition | Keep off | Do not enable when there is no image input |
| Thinking configuration | Keep default | If switching the level produces an error, revert to default |
The numeric values above are hypothetical starting points for this exercise. The reason for 3 memory turns and a reply cap of 800 is to cover a small number of follow-ups while limiting reply length; the comparison objects are the adjacent settings.
Three common errors
- Treating a retrieved activity letter as proof that a concession-fee adjustment has taken effect. Input is the activity-letter text above. The comparison object is whether the joint-operation concession contract states an adjustment. The observable result is whether the draft sentence still says "has been adjusted."
- Treating a form submission as a completed business approval. Input is the form field values. The comparison object is whether an approval record exists. The observable result is whether the handover status is still pending review.
- Associating libraries that use different vector models. Input is the two library identifiers. The comparison object is whether the vector model identifiers match. The observable result is whether the association request is excluded.
How to verify the setup
- Input the source material text above together with the draft sentence, and compare whether the draft sentence exceeds the source scope. If it still says "has been adjusted," the condition is not met.
- Input a new-session request and a continued-session request, and compare the history turns actually carried in. If they do not match the memory-turn setting, the condition is not met.
- Input a long document plus a follow-up question, and compare whether the reply is truncated. If it is truncated, adjust the reply cap and retry.
All three checks use paper inputs and do not claim that testing has occurred. For empty-result downstream handling, a clearly labeled paper input of [] can be used to check the downstream design. Any document field not provided remains unknown.