Knowledge base (RAG)
Upload company materials, product docs, and client briefs so the LLM speaks your business instead of generic AI.
RAG (Retrieval-Augmented Generation) lets the LLM "know your business". This guide covers uploads, retrieval, and how it pairs with glossary.
1. The problem it solves
LLMs translate from a general corpus. When industry jargon, company terms, or specific client context shows up, they have to guess. The result is often:
- Translation is "technically correct" but reads like AI
- Important context ("Our Phoenix-7 is a laser-cutting unit") is dropped
- The same concept is rendered inconsistently across the call
RAG injects relevant document snippets into the prompt to fix all three.
2. How it works
incoming sentence → ✦ Embedding → vector search → top-k relevant chunks
↓
┌─ chunks injected into LLM prompt
↓
LLM translates with business context grounded
End-to-end the pipeline runs 200–400 ms — invisible to feel.
3. Upload documents
- CrossMeet → Settings → Knowledge Base
- Click Add Document
- Pick a PDF / DOCX / TXT / MD file (multi-language supported)
- Wait for indexing (10 seconds to 2 minutes, by size)
Once done you'll see title, chunk count, and last-indexed time.
Supported
- PDF (including scanned + OCR)
- DOCX / DOC
- TXT / MD
- HTML
- PPTX (experimental)
Not supported
- Encrypted PDF (decrypt first)
- Images (unless embedded in a PDF as recognizable text)
- Video / audio
4. Groups
Like Glossary, organize by client / project:
acme-corp— all Acme product manuals + earnings summariesinternal-wiki— team wiki excerptscompetitor-brief— competitive analysis reports
When you activate one or more groups, only those groups are searched.
5. Retrieval mechanism
For every new ASR sentence, CrossMeet:
- Takes the sentence + the previous N (default 3) as the query
- Vector-searches active KB groups for top-k chunks (default k=3)
- Stitches them into a "Reference" section in the prompt
- The LLM generates while consulting Glossary + RAG + history
Tunable in Settings → Knowledge Base → Retrieval:
top_k: chunks to retrieve (1–10, default 3)chunk_size: characters per chunk (128–1024, default 512)similarity_threshold: below this, don't inject (0–1)
6. Glossary vs RAG — which when?
| Scenario | Glossary | RAG |
|---|---|---|
| Force single term rendering | ✅ | ❌ |
| Keep brand / person names | ✅ | ❌ |
| Long-form business context | ❌ | ✅ |
| Client product descriptions | ⚠️ concepts may need RAG | ✅ |
| Industry-jargon atmosphere | ❌ | ✅ |
Best combo: Glossary for keywords, RAG for business context. They run in parallel without conflict.
7. Privacy
Indexing is fully local:
- Parse, chunk, embed all happen on your machine (CPU or GPU)
- Vector DB sits in
%APPDATA%\CrossMeet\rag\ - No document content uploaded to CrossMeet servers
- When you call a cloud LLM (GPT / Claude), only top-k snippets (~1.5 KB) are sent — never the full document
If you're worried about cloud LLM leakage, swap to a local LLM (Ollama + Llama 3 etc.) for a fully offline pipeline.
8. Embedding engines
Settings → Knowledge Base → Embedding Engine:
| Engine | Speed | Quality | Privacy |
|---|---|---|---|
| OpenAI text-embedding-3-small | Fast | Excellent | Chunks sent to OpenAI |
| Aliyun text-embedding-v2 | Medium | Good | Chunks sent to Aliyun |
| Local bge-m3 | Slow | Excellent (best CN) | Fully offline |
| Local multilingual-e5 | Slow | Excellent | Fully offline |
Rule of thumb: OpenAI for daily meetings (fast), local bge-m3 for sensitive docs.
9. Best practices
- Small & focused: < 50 docs per KB group, beyond that retrieval gets noisy
- Activate per meeting: don't keep everything on
- Well-structured docs: clear headings and paragraphs → better chunking
- Prune regularly: delete outdated product manuals and old contracts
10. FAQ
Q: How long to index one document?
- 50-page PDF: ~30s (OpenAI embedding), 1.5 min (local bge-m3)
- 200-page DOCX: ~2 min (OpenAI), 5 min (local)
Q: I updated a doc — how to refresh?
- Find it in KB page, click Re-index
- Or delete and re-upload
Q: Sync from cloud drives / SharePoint?
- v0.3 planned. Today only local file upload.
Q: Retrieval is poor — what now?
- Check
chunk_size(too small loses context, too large dilutes similarity) - Check doc quality (OCR'd scans are noisy — re-export if possible)
- Swap embedding engines (Chinese docs → bge-m3)
11. Related
- Glossary — keyword-level forced translations
- Quick phrases — one-tap canned sentences
- Engine setup — ASR / TTS / LLM switching