Chain-store site selection: document chunking for procurement

Review document chunking for procurement in Chain-store site selection. Check document scope, failure paths and source evidence through controlled tests.

What the documents look like

Chain headquarters site selection and store opening happens before a store begins trading. The core work is lease negotiation and engineering handover, and the materials arrive per store on an irregular schedule. This page covers one task inside that batch: inventory procurement and supplier materials. Those materials sit alongside the site evaluation form, the letter of intent for the lease, the renovation budget and the opening schedule, and they carry their own internal structure.

Procurement and supplier materials include supplier quotation sheets, purchase lists, scope-of-supply statements and delivery-term clauses. The party, the object and the validity scope are spread across the body text and attachments. Conditional sentences frequently sit next to the quotation or quantity they constrain. When parsing and chunking separate a condition from the content it governs, the retrieved fragment lacks the limiting information needed to judge it, and manual review has to go back to the original text.

Two or three industry facts shape this task directly. The materials are produced per store, not on a fixed cycle, so each store's batch has its own version history and its own effective range. The core pre-opening work is lease and engineering delivery, which means procurement documents are tied to delivery milestones rather than to ongoing trading. The cost of an error is an unprofitable opening, a delayed handover or a lost deposit, so a fragment that drops a condition can lead a reviewer to treat an unsupported draft sentence as grounded.

Constraints at the document chunking step

FastGPT organises a knowledge base into library, collection and data. A collection is best understood as a file. One library can contain multiple collections, and one collection can contain multiple groups of data. The smallest search unit is the library: a knowledge base search runs against the whole library, and collections serve only to classify and manage data, not to affect search results.

Original data is stored in the dataset.datas table in MongoDB, together with an indexes field that records the corresponding vector IDs. This is an array, so one group of data can map to multiple vectors. PostgresSQL holds a vector field for the vectors. During retrieval, vectors are recalled first, then the original content is located in MongoDB by vector ID. If several vectors map to the same group of original data, the results are merged and the highest score is taken. Beyond the default text index, if model capability allows, image content can also produce an image description index or an image vector index.

Segmentation should preserve structural and semantic completeness. Reducing the content of an index improves precision while narrowing retrieval range, which suits scenarios with strict answers. Adding multiple indexes for the same chunk preserves completeness and semantic richness, so that recalling any one vector recalls the data.

Semantic retrieval, full-text retrieval and hybrid retrieval are combined through RRF, and the Rerank score can be used for filtering. The minimum relevance value is a threshold, not an entity or permission filter, and retrieval itself does not constitute authorisation. Full-text retrieval behaves differently by vector store: with Milvus (≥ 2.5.16) it uses BM25 with vectors and full text in the single modeldata_v2 table, while other vector stores use MongoDB $text with jieba tokenisation.

Hypothetical paper exercise. Source text for review: "This quotation was issued by the employer-supplied materials supplier on 1 March 2024. The scope of supply is stainless-steel kitchen worktops for newly opened stores in the East China region. The quotation is valid for 30 days. The purchaser must confirm quantities by written order within the validity period, and the order takes effect after signature by the headquarters procurement lead." Draft sentence to be judged: "The supplier has completed delivery and headquarters has approved this procurement." The source text records only the quoting party, the object, the validity period and the condition for the order to take effect. It does not record signature, approval or delivery.

Configuration and implementation checks

Check itemHypothetical starting value for this exerciseReason and comparison object
Segmentation methodSplit at quotation clause boundaries, keeping a conditional sentence in the same segment as the content it governsCompare with fixed-length splitting to observe whether the condition stays with its constraint
Number of indexesBuild one text index for the same group of dataCompare with building multiple indexes to observe the change in retrieval range
Search modeUse semantic retrieval together with full-text retrievalCompare with semantic retrieval alone to observe hits on numbers and proper nouns
Minimum relevanceHypothetical starting value of 0.3 for this exerciseCompare with no threshold to observe whether low-relevance fragments decrease
Reference limitHypothetical starting value of 2000 tokens for this exerciseCompare with a smaller value to observe whether conditional sentences are trimmed away
Post-update reviewCheck training and index state after the material changesCompare with confirming upload success only, to observe whether retrieval reflects the new version

These values are hypothetical starting points for this exercise, not official defaults. RRF is the fusion process for hybrid results and is not a switch. Image retrieval requires image input and the corresponding model capability; reranking requires a model and must be enabled by configuration. Neither runs on every request.

Three common errors

  1. Splitting a conditional sentence from the quotation or quantity it governs. The input is the source text and draft sentence above. Compare whether the retrieved fragment contains both "valid for 30 days" and "confirm quantities by written order." Observe whether the draft sentence is wrongly treated as grounded when the condition is missing.
  2. Treating minimum relevance as an entity or permission filter. The input is the same question with quotation fragments from two different suppliers. Compare whether returned results are distinguished by party. Observe whether changing the threshold alters party attribution.
  3. Treating a successful upload as an updated index. The input is the changed quotation version and the old version. Compare the validity period and scope of supply that retrieval hits. Observe which version the returned content corresponds to.

How to verify the setup

  1. Use "East China region," "stainless-steel kitchen worktops" and "valid for 30 days" from the source text as separate retrieval inputs. Compare whether returned fragments retain the party, the object and the validity scope. When the condition is met, the draft sentence should still be judged unsupported.
  2. Use the draft sentence "The supplier has completed delivery and headquarters has approved this procurement" as input. Compare whether returned fragments contain wording about signature, approval or delivery. When none appears, record an evidence gap pending verification.
  3. Use an empty reference input to check the downstream design. Compare whether the system output is empty when there is no hit and whether the gap record is retained, without inferring that a fictional rule necessarily returns an empty result. Libraries using different vector models are not associated together; check identifiers first, exclude non-matching ones, and record the actual observation.

This page addresses only chain headquarters site selection and store opening, inventory procurement and supplier materials, and document parsing and chunking. At operational handover, which materials, actions and requests sit in which authorisation state cannot be inferred from retrieval or a form. A pending request is not approval, an offered option is not execution, and an unsigned termination is not a completed termination.