What the documents look like
Permit handling happens before customs declaration and decides whether a shipment may legally cross the border. The working evidence comes from the commerce authority system, customs commodity codes, supplier materials and customer end-use statements, and the documents involved include automatic import licences, dual-use item licences, contracts and product descriptions. Materials are refreshed irregularly, per shipment. For conversation logs and audit, this matters because the parties, objects and statuses that appear in a chat record must be matched item by item against the permit file, and the mere existence of a log entry does not confirm the underlying business record.
A chatId identifies one conversation under one application, and a dataId identifies one exchange within that conversation. When the conversation list is requested with source=api, only conversations created through the API are returned; clearing an application's conversations likewise clears only those created with an API key, while conversations from online use and share links fall outside that scope. Running detail is requested by setting detail=true under the official contract, and the complete node responses are held in responseData or obtained through event=flowResponses. Log fields follow what the interface actually returns, and business data the interface does not return cannot be assumed to be fully retained.
Hypothetical drill sample: on 10 March 2025, a compliance officer at a foreign-trade company asks about the handling status of an automatic import licence for one shipment. The source text supplied for comparison reads: "The automatic import licence application for this shipment has been submitted to the commerce authority system, and the current status is pending review; contract HT-2025-0310 has been signed by both parties, with an effective date of 12 March 2025." The handover request to be judged reads: "The licence for this shipment has been approved, so declaration can be arranged." The comparison sets the status word "pending review" in the source text against "approved" in the request, and the two take different values on the same field. The source text states no approval date or document number, so that evidence is missing and the approval conclusion in the request is unsupported. A signed contract and an effective contract are two separate facts; the source text records them separately and they cannot be merged into one inference.
Constraints at the conversation logs step
The chatId must be unique within the application and shorter than 250 characters, because a non-empty chatId causes the system to take the conversation from the database and use only the last message as the user question. A responseChatItemId must be unique under the current chatId, since it is stored as the ID of the response message. When detail=true is used without streaming, intermediate values and the full response are kept in responseData; with streaming, event types such as flowNodeStatus, answer and flowResponses separate the stages. The event set also includes interactive, updateVariables and error, and any of these may appear depending on how the flow runs.
Retrieval and relevance scoring do not act as permission or entity filters. A similarity value does not exclude unrelated businesses or unauthorized records, and retrieval is not authorization. Interactive forms collect values; business verification, approval, database writes and external synchronization require their stated downstream implementation. A pending request is not an approval, an offered option is not execution, and an unsigned termination is not a completed termination. Where the interface returns no business field, that field remains unknown rather than confirmed or denied.
Configuration and implementation checks
The table below centres on the hypothetical sample and lists documented settings or implementation checks relevant to this page.
| Configuration item | Value or check on this page | Basis and explanation |
|---|---|---|
| appId | Obtained from the application detail path and passed as body.appId | The official document states the priority order body.appId, apiKey-appId, then the appId associated with the apikey |
| chatId | Shorter than 250 characters and unique within the application | The official document states that a non-empty chatId takes the conversation from the database and that uniqueness must be ensured by the caller |
| responseChatItemId | Unique under the current chatId | The official document states that when passed, it is stored as the response message ID |
| detail | Set to true when running detail is needed | The official document states that in non-stream mode the result is kept in responseData |
| source | Pass api when retrieving API conversations | The official document states that source=api does not retrieve conversations from the page |
| authProxy | Opened by the team owner when proxying a team member identity | The official document states this capability applies only to FastGPT >= v4.15.0 and that the proxied identity still needs permission for the target application and conversation |
Hypothetical starting value for this page: pageSize is set to 20, because the sample holds one conversation and 20 covers it; the comparison object is the returned total field against the actual number of conversations. This value is a hypothetical starting point for this exercise, not an official default.
Three common errors
- Treating pending review as approved. The source text states the status as "pending review" while the draft sentence writes "approved". The input is the source text and the draft sentence, the comparison is the value of the same status field, and the observable result is that the two values differ and the draft sentence is unsupported.
- Treating a signed contract as an effective contract. The source text records the signing and the effective date separately, and a draft sentence that writes only "the contract has taken effect" while omitting the effective date leaves the effectiveness fact without a corresponding statement. The input is the source text and the draft sentence, the comparison is the signing field against the effectiveness field, and the observable result is that the effectiveness fact lacks a matching statement.
- Treating the existence of a log as a completed compliance audit. The input is the conversation record and the business retention requirement, the comparison is the log fields against the fields the audit needs, and the observable result is that business data the interface does not return cannot be obtained from the log and must be implemented separately.
How to verify the setup
- Check conversation ownership. The input is the chatId and appId of the hypothetical sample, and the comparison is whether the chatId returned by the conversation list matches the sample. When the list contains that chatId and the source is api, the ownership check passes; if the chatId is absent, the check fails and the conversation is recorded as not retrieved under this source.
- Check running detail fields. The input is the chatId and dataId of the hypothetical sample, and the comparison is whether the moduleName, runningTime and related fields returned by getResData match what the interface actually returns. When the returned fields agree with the documented fields, the field check passes; business data that is not returned is recorded as a gap.
- Check the status judgement. The input is "pending review" in the source text and "approved" in the draft sentence, and the comparison is the value of the same status field. The two values differ, so the draft sentence is judged unsupported; the approval document number and approval date that the source text does not state are recorded as missing evidence and left for verification.
This page covers only import and export permit handling, operations permission and handover management, and conversation logs and audit. During handover, the authorization state of materials, operations and requests cannot be inferred from retrieval or from a form. Reconciliation, retention and compliance requirements are implemented by the full business solution, and the existence of a log does not equal a completed compliance audit.