CW-018 · Semantic knowledge search
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
Priority P3 · Area assistant · Estimate M
Retrieval is full-text plus trigram, which handles Thai well and needs no embeddings — deliberately. pgvector is installed but unused. Paraphrased questions ("can I get money for my kid's school fees?" against a document titled "สวัสดิการการศึกษาบุตร") are where lexical search gives up.
Scope
Optional embedding pipeline behind the existing provider interface; hybrid ranking with the lexical score; keep lexical as the default so the assistant still works with no external API.
Acceptance
With embeddings off, behaviour is unchanged. With them on, paraphrased queries retrieve the right document, measured against a fixture set.
Files backend/src/modules/assistant/
Tracked in docs/backlog.md.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in backend/src/modules/assistant/ and trace the existing provider interface and full-text/trigram retrieval path. Define how the optional embedding pipeline combines with the lexical score while preserving the default behavior, then use the fixture set to verify paraphrased queries retrieve the intended document with embeddings enabled and unchanged results with them off.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- postgresql, typescript
- Domain
- ai, backend, search
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100