POST /chat-messages Request body: { "query": "How quickly does Fenwake acknowledge a Priority 1 fault reported outside business hours?", "inputs": {}, "user": "r6-tester", "response_mode": "blocking" } Status: 200 Response body: { "event": "message", "task_id": "3eee1423-38f3-4a1c-bebe-e95208f772e0", "id": "572638bd-9bd0-4718-8d3d-0223ee762073", "message_id": "572638bd-9bd0-4718-8d3d-0223ee762073", "conversation_id": "e7869607-60d2-4863-a446-d0adec0feae2", "mode": "chat", "answer": "Within 90 minutes of the ticket being raised, by a named duty engineer.", "metadata": { "annotation_reply": null, "retriever_resources": [ { "position": 1, "dataset_id": "084fc635-481f-4970-bf09-299c83eca3c2", "dataset_name": "R6-managed-rag-ss-v1", "document_id": "0eeae560-0e74-44e9-aaee-2cc6b599dee8", "document_name": "A01_field_service_policy_and_charges_uk.pdf", "data_source_type": "upload_file", "segment_id": "7b0e6aea-05b6-4ff2-8a7b-3b6bccc09d8c", "retriever_from": "api", "score": 0.6682562, "hit_count": null, "word_count": null, "segment_position": null, "index_node_hash": null, "content": "Fenwake Instruments Ltd - Field Service Policy and Charges (United Kingdom)\r\nFenwake internal - service operations Page 4\r\n6. Out-of-hours cover\r\nOutside business hours the service desk is not staffed. A duty engineer rota covers every hour of the year,\r\nand the out-of-hours number in section 8 pages the engineer on call.\r\n6.1 Acknowledgement out of hours\r\nA Priority 1 fault reported outside business hours is acknowledged by a named duty engineer within 90\r\nminutes of the ticket being raised.", "page": null, "doc_metadata": { "region": "uk" }, "title": null, "files": null, "summary": null }, { "position": 2, "dataset_id": "084fc635-481f-4970-bf09-299c83eca3c2", "dataset_name": "R6-managed-rag-ss-v1", "document_id": "0eeae560-0e74-44e9-aaee-2cc6b599dee8", "document_name": "A01_field_service_policy_and_charges_uk.pdf", "data_source_type": "upload_file", "segment_id": "5fec9cf6-6529-4f76-bcf9-544b17a45b75", "retriever_from": "api", "score": 0.6318867, "hit_count": null, "word_count": null, "segment_position": null, "index_node_hash": null, "content": "Where\r\nthe fault cannot be cleared remotely, attendance is arranged under section 5 from the start of the following\r\nworking day, except on Critical cover, where the duty engineer may authorise attendance immediately.\r\n6.3 Priority 2 and Priority 3 out of hours\r\nPriority 2 and Priority 3 tickets raised outside business hours are queued and acknowledged when the\r\nservice desk opens. The business-hours targets in section 4 then apply from opening.", "page": null, "doc_metadata": { "region": "uk" }, "title": null, "files": null, "summary": null }, { "position": 3, "dataset_id": "084fc635-481f-4970-bf09-299c83eca3c2", "dataset_name": "R6-managed-rag-ss-v1", "document_id": "0eeae560-0e74-44e9-aaee-2cc6b599dee8", "document_name": "A01_field_service_policy_and_charges_uk.pdf", "data_source_type": "upload_file", "segment_id": "f5751516-6078-4011-8674-34dd47583750", "retriever_from": "api", "score": 0.573972, "hit_count": null, "word_count": null, "segment_position": null, "index_node_hash": null, "content": "Fenwake Instruments Ltd - Field Service Policy and Charges (United Kingdom)\r\nFenwake internal - service operations Page 2\r\n4. Acknowledgement during business hours\r\nBusiness hours are 08:00 to 18:00, Monday to Friday, excluding statutory non-working days in England\r\nand Wales.", "page": null, "doc_metadata": { "region": "uk" }, "title": null, "files": null, "summary": null }, { "position": 4, "dataset_id": "084fc635-481f-4970-bf09-299c83eca3c2", "dataset_name": "R6-managed-rag-ss-v1", "document_id": "0eeae560-0e74-44e9-aaee-2cc6b599dee8", "document_name": "A01_field_service_policy_and_charges_uk.pdf", "data_source_type": "upload_file", "segment_id": "ae6164d5-402c-413d-92ac-f921b1d9c375", "retriever_from": "api", "score": 0.55121225, "hit_count": null, "word_count": null, "segment_position": null, "index_node_hash": null, "content": "Fenwake Instruments Ltd - Field Service Policy and Charges (United Kingdom)\r\nFenwake internal - service operations Page 5\r\n7. Escalation\r\nA customer may escalate at any time, and the service desk escalates on its own initiative when a target is\r\nmissed. Each step below is a named person, not a queue.\r\n\u2022 Step 1 - Duty engineer. Owns the ticket and the diagnosis.\r\n\u2022 Step 2 - Service desk lead. Owns the schedule, the parts and the customer communication.\r\n\u2022 Step 3 - Head of service operations.", "page": null, "doc_metadata": { "region": "uk" }, "title": null, "files": null, "summary": null } ], "usage": { "prompt_tokens": 476, "prompt_unit_price": "1.25", "prompt_price_unit": "0.000001", "prompt_price": "0.000595", "completion_tokens": 200, "completion_unit_price": "10", "completion_price_unit": "0.000001", "completion_price": "0.002", "total_tokens": 676, "total_price": "0.002595", "currency": "USD", "latency": 3.003389941994101, "time_to_first_token": null, "time_to_generate": null }, "reasoning": {} }, "created_at": 1789934515 } App configuration actually applied (read live from the R6-managed-rag-chatbot app's Orchestrate panel -- no API endpoint exposes this, per reference/api-dify.md, so this is a UI-sourced fact, not assumed): Generation model: gpt-5 (Chat mode). Corroborated by the usage block above: prompt_unit_price 1.25 / completion_unit_price 10 (per 1M tokens) match OpenAI's published gpt-5 pricing. Retrieval config (Orchestrate -> Knowledge -> Retrieval Setting): - Strategy: multi-path retrieval (default) -- retrieved from R6-managed-rag-ss-v1, then reranked - Rerank setting: Weighted Score -- Semantic 1.0 / Keyword 0.0 (fully semantic weighting, no keyword component) - Top K: 4 - Score Threshold: disabled (off; the 0.7 field value shown is not applied) This is why all 4 citations returned are real (semantic-weighted) retrieval hits, not a reranker model's own scores -- the "Weighted Score" strategy blends by weight rather than calling a separate reranker model, which is also why this app has no separate reranking_model field the way the raw dataset API does.