What the documents look like
Channel receivables collection covers credit and cash recovery after sales on account. The material comes from finance systems, bank receipts, distributor orders and sales contracts. Routine documents include the accounts receivable aging table, dunning letters, credit agreements and shipment freeze notices, with weekly or monthly update frequency. These materials combine structured tables with fixed clause text. Parsing must preserve the full meaning of fields such as aging bracket, credit limit and freeze trigger condition. If chunking separates the limit condition in a credit agreement from its exemption note, retrieval can return only half of the condition, and product selection questions then cite an incomplete clause.
Constraints at the document chunking step
The aging table updates weekly or monthly. Chunking keeps row-level meaning by distributor and aging period combination, and avoids merging across distributors. A dunning letter carries a specific amount and a due date. Chunking keeps amount, deadline and recipient inside one data block. Limit, guarantee method and effective condition in a credit agreement form one constraint group. Separation prevents retrieval from pointing back to the complete clause. A shipment freeze notice contains a trigger reason and a release condition, and chunking keeps both together. In FastGPT, one group of source data can map to multiple indexes, and one data block can produce several vector groups; a hit on any index recalls that data group. Knowledge base search operates at the knowledge base level, while a collection serves classification management only. Vector retrieval uses the PostgresSQL PG Vector plugin with an HNSW index, and the MongoDB dataset.datas table stores source data together with the indexes field. Retrieval recalls vectors first, then uses vector IDs to fetch source data from MongoDB; entries mapping to the same source data group merge, and the highest score is taken.
Configuration and implementation checks
The following settings relate to the document parsing and chunking task on this page. Each row states either a documented setting or an implementation check.
| Configuration item | Hypothetical trial starting value | Reason and comparison method |
|---|---|---|
| Search mode | Hybrid search | The aging table contains identifiers and natural language questions. Hybrid search uses semantic and full-text recall, then merges through RRF. Compare identifier hit behavior against semantic search alone |
| Reference limit | Hypothetical starting value 3000 tokens | Aging table and credit agreement blocks run long and need room for complete clauses. Compare against 1500 tokens for truncation of condition text |
| Minimum relevance | Hypothetical starting value 0.4 | This value takes effect only under semantic search or result reranking. Compare against 0.2 for reduction of unrelated fragments |
| Question optimization | Enabled | Follow-up questions about aging definitions need reference completion. Compare against disabled for short-question recall completeness |
| Result reranking | ReRank enabled | Hybrid search produces many candidates and needs a second ordering with filtering by rerank score. Compare against disabled for ordering stability |
| Chunk completeness review | Manual check | Verify that credit agreement conditions and exemption notes stay in one block, and that aging table row-level meaning is preserved |
Three common errors
- Splitting the limit condition and the exemption note of a credit agreement into different data blocks. A retrieval hit on the limit condition then cannot return the exemption note, and the product selection answer cites an incomplete clause. Check: enter a query containing the limit condition, and compare whether the recalled block contains the original exemption note text.
- Treating a successful upload as an updated retrieval index. After a material change, the actual training and index state is not checked, and retrieval still returns the old block. Check: after the change, search with a new term and compare whether the returned content matches the changed source text.
- Using minimum relevance to exclude unrelated businesses or unauthorized records. This value is a filtering threshold and does not perform permission or entity isolation. Check: enter a cross-distributor query and compare whether results still contain other distributors' data; permission needs a separate system implementation.
How to verify the setup
Hypothetical exercise sample: the source material reads "Distributor A, as of March, aging ninety days, credit limit five hundred thousand yuan, shipment frozen for exceeding the credit limit, release condition is repayment back within the limit." The sentence to be assessed is "Distributor A has repaid back within the limit, and the freeze can be released." Assessment requires the same subject, the same period and the same field. The source states only the release condition and does not state a repayment fact. The drafted sentence is unsupported, and the evidence gap is recorded.
- Verification one: enter "Distributor A credit limit freeze release condition" and compare whether the recalled block contains the limit, the freeze and the release condition together. The expectation is a recalled block matching the source text, with no guarantee of a first-position hit.
- Verification two: enter "Distributor A has repaid" and compare whether the returned content contains a repayment record. The expectation is that the returned result does not contain a repayment fact. If records of another distributor appear, the chunking and permission settings need review.
- Verification three: after changing the aging table, search with the new aging period and compare whether the returned content matches the changed source text. The expectation is a returned block reflecting the change. If the old block still returns, record the training and index state as pending review.
For empty-result handling, a paper input of [] can be used to check downstream design, without claiming that a fictional rule search necessarily returns []. Knowledge bases using different vector models cannot be associated together. Check the identifier first, exclude non-matching bases, and record the actual observation.