Feature proposal: TDesign React Chat UI, homepage chat entry, and admin-configurable AI assistant content
- Dominant language
- Go
- Stars
- 15.7k
- Forks
- 1.4k
- Avg merge
- 3d 8h
- Merged PRs (30d)
- 7
Description
## Is your feature request related to a problem? Please describe
We self-host Answer as a community FAQ assistant. The current AI assistant works, but:
- The chat UI is minimal: no thinking-process display, no starter-question entry points, plain text bubbles.
- The assistant's opening content (welcome text, starter questions) is hardcoded in the frontend and cannot be adjusted by admins.
- The default system prompt advertises a `semantic_search` tool even when no vector search plugin is installed, so the model may call a tool that does not exist.
- Visitors cannot use the assistant without an account, even when the admin would like to allow it on a public community site.
## Describe the solution you'd like
1. **New chat UI built on TDesign React Chat** (`@tdesign-react/chat`, MIT-licensed): streaming markdown answers, a collapsible thinking block for reasoning models, tappable suggestion chips, and a sender with a stop button. Answer's backend contract (`/answer/api/v1/chat/completions`, SSE) stays unchanged — a thin adapter maps `delta.content` to a markdown block and `delta.reasoning_content` to a thinking block, and keeps per-message voting/replay working.
2. **Admin switches on the AI settings page**
- *Show AI assistant on homepage*: a floating chat entry that reuses the same component.
- *Allow guests to use the homepage AI assistant*: chat completions moves behind a guest gate; guest conversations stay client-side only and voting is disabled for them.
3. **Admin-configurable assistant content** (AI settings page)
- Welcome text shown when a conversation starts.
- A suggested-questions list (one per line) rendered as chips; empty falls back to built-in i18n defaults.
- The system prompt (zh/en, `%s` as the question placeholder). The backend already stores `prompt_config`; only the admin UI is missing. Saving the form will also stop silently resetting stored prompts to the built-in defaults.
4. **Small related fix**: strip the `semantic_search` line from the default prompt when no vector search plugin is enabled.
## Describe the alternatives you've considered
Incrementally extending the existing custom UI. That is possible, but a maintained chat component library provides streaming, thinking and suggestion primitives out of the box and reduces the custom code Answer has to maintain. Vision/image input is intentionally out of scope for this feature.
I have a working implementation on my fork and will submit a PR referencing this issue.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the AI settings page and the /answer/api/v1/chat/completions SSE endpoint, then review the existing assistant UI and TDesign React Chat integration requirements. Done means the homepage entry, guest behavior, configurable welcome text, suggestions and prompts, streaming/thinking display, voting behavior, and semantic_search fallback all work without changing the backend contract.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, react, typescript
- Domain
- ai, api, backend, frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100