Skip to content

FAQ Management — Fast Answers via Dify Annotation

Purpose

This page explains how to manage HUPH's FAQ (Frequently Asked Questions) — questions that come up often with curated baseline answers. FAQs respond instantly (~300 ms) without calling an LLM, so users get much faster replies for common questions. Intended for counselors and marketing staff curating chatbot content.

Prerequisites

  • Logged in as counselor/marketing/admin
  • Understand the difference between FAQ (exact-match curated) and Knowledge Base (semantic search) — explained below

FAQ vs Knowledge Base

Aspect FAQ Knowledge Base
Matching Exact / fuzzy match on question Semantic search with embeddings
Speed ~300 ms (no LLM call) ~6 seconds (full LLM pipeline)
Who edits Counselor/marketing (manual curation) Crawler + doc upload
Data source faq_local table → synced to Dify Annotation Qdrant vector DB
Best for Common repeated questions (fees, schedule, location) Specific questions that need reasoning

If the question is frequent and the answer is consistent — make it a FAQ. If the question varies and needs contextual reasoning — let the KB handle it.

Steps

1. Open FAQ Management

Click Knowledge base → FAQ in the sidebar (URL: /knowledge/faq). You will see the existing FAQ list, currently around 30 entries.

 ┌──────────────────────────────────────────────┐
 │  FAQ Management                  [+ Add]     │
 │                                              │
 │  [x] How much is medical school 2026?        │
 │      IDR ... per semester + form ...         │
 │      [edit]  [toggle on/off]  [delete]       │
 │                                              │
 │  [x] Application schedule?                   │
 │      Wave 1 Oct–Dec, Wave 2 Jan–Mar ...      │
 │      [edit]  [toggle on/off]  [delete]       │
 │                                              │
 │  [ ] Merit scholarship (disabled)            │
 │      ...                                     │
 └──────────────────────────────────────────────┘

The left checkbox indicates active status — unchecked (disabled) FAQs are not used by Dify Annotation.

2. Add a new FAQ from scratch

Click + Add, fill in:

  • Question — the canonical form (e.g. "How much is medical school tuition?")
  • Alternative questions (optional) — wording variations that should match the same answer
  • Answer — full reply, simple markdown allowed

Click Save. The FAQ syncs to Dify Annotation within seconds.

3. Promote a FAQ from a correction

When you've already given a correction in the Inbox (clicked 👎 → typed the correct answer), you can promote that correction to a permanent FAQ. From the correction panel click Promote to FAQ — the question is taken from the original user message, the answer from your correction. Review once, edit if needed, Save.

4. Toggle on/off

Sometimes a FAQ needs to be temporarily disabled (outdated fee, closed intake window). Instead of deleting, click the toggle off checkbox. The FAQ stays in the database but won't be used by the chatbot. Re-enable it any time.

5. Edit an existing FAQ

Click edit on the FAQ row. Change the question/answer, Save. Dify sync is automatic.

6. Check Dify sync

After add/edit/toggle, syncing to Dify usually takes ~2–5 seconds. Sync status is shown in the right column (green ✓ = synced, yellow ⚠ = pending, red ✗ = failed).

Example scenarios

User asks about the application form fee per program. Previously Aria answered via KB with ~6-second latency. The counselor creates a new FAQ with question "application form fee" and answer showing a price table per program. After sync, every time a user asks about the form fee → Dify Annotation answers in ~300 ms.

Toggle off an expired scholarship FAQ. The Wave 1 scholarship promo has closed. The counselor toggles off the "Wave 1 2026 scholarship" FAQ, creates a new one for Wave 2. The old entry stays in the database for reference but is no longer used.

Troubleshooting

FAQ doesn't match despite similar wording. Symptom: the user asks "what's the price of medical school" but Aria answers via the full LLM instead of the FAQ. Cause: Dify Annotation matching is fairly strict; wording variants can miss. Fix: add Alternative questions to the relevant FAQ ("tuition price", "school fee", "tuition fee" etc.). Edit → Save → retry.

FAQ doesn't sync to Dify — status ⚠ or ✗. Symptom: a new FAQ shows sync stuck. Cause: Dify API down, network issue, or API key expired. Fix: try re-edit + save (force re-sync). If still failing, contact dev team to check the Dify stack health (Dify can OOM under tight memory limits — bumped as of April 2026 but may recur).

Duplicate FAQ with similar questions. Symptom: two entries for "medical school tuition" with different answers. Cause: two counselors creating at once without coordination. Fix: review together, delete the wrong one, ensure the correct one is saved and toggled on.

See also