Spaces:
Runtime error
Runtime error
Download app/components/FAQViewer.py from ucGroupProj/Store-Front-Agentic-Chat-bot: direct link, hf CLI and curl.
- Browser
- Download file 1.25 kB
-
https://huggingface.co/spaces/ucGroupProj/Store-Front-Agentic-Chat-bot/resolve/main/app/components/FAQViewer.py
- Command line
-
hf download hf://spaces/ucGroupProj/Store-Front-Agentic-Chat-bot/app/components/FAQViewer.py
-
curl -L -o FAQViewer.py https://huggingface.co/spaces/ucGroupProj/Store-Front-Agentic-Chat-bot/resolve/main/app/components/FAQViewer.py
1.25 kB
| # /app/components/FAQViewer.py | |
| from __future__ import annotations | |
| import gradio as gr | |
| from typing import List, Dict | |
| def build_faq_viewer(faqs: List[Dict[str, str]] | None = None): | |
| """ | |
| Build a simple searchable FAQ viewer. | |
| Returns (search_box, results_html, set_data_fn) | |
| """ | |
| faqs = faqs or [] | |
| search = gr.Textbox(label="Search FAQs", placeholder="Type to filter…") | |
| results = gr.HTML() | |
| def _render(query: str): | |
| q = (query or "").strip().lower() | |
| items = [f for f in faqs if (q in f["q"].lower() or q in f["a"].lower())] if q else faqs | |
| if not items: | |
| return "<em>No results.</em>" | |
| parts = [] | |
| for f in items[:50]: | |
| parts.append( | |
| f"<div style='margin:8px 0;'><b>{f['q']}</b><br/><span style='color:#334155'>{f['a']}</span></div>" | |
| ) | |
| return "\n".join(parts) | |
| search.change(fn=_render, inputs=search, outputs=results) | |
| # Initial render | |
| results.value = _render("") | |
| # return a small setter if caller wants to replace faq list later | |
| def set_data(new_faqs: List[Dict[str, str]]): | |
| nonlocal faqs | |
| faqs = new_faqs | |
| return {results: _render(search.value)} | |
| return search, results, set_data | |