Back to Blog

RAG for Event Content: Indexing Slides, Transcripts, and Notes for Better Briefs

Eventrion Briefs Editorial 10 min read

RAG (retrieval-augmented generation) is the difference between a brief that “sounds right” and a brief that stays tethered to what actually happened. For event coverage, the source material is messy: slides with terse bullets, transcripts with interruptions, and notes with shorthand. The goal of RAG isn’t just search—it’s reliably pulling the right fragments at the moment you need to draft a compact, category-sorted newsroom block.

1) Define what “ground truth” means for your briefs

Before indexing anything, decide what counts as a cite-worthy source and how you’ll resolve conflicts:

  • Transcripts capture what was said, but can be noisy (ASR errors, missing punctuation, speaker swaps).
  • Slides capture intended messaging, but omit nuance and Q&A context.
  • Notes capture emphasis and takeaways, but are subjective and inconsistent.

A practical policy: prioritize transcript for quotes and factual claims; use slides to confirm terminology, numbers, and named frameworks; use notes to guide what to retrieve (not as primary evidence).

2) Normalize inputs into a single “document” schema

Treat every artifact as a set of small, searchable records with consistent metadata. At minimum, store:

  • event_id, session_id, session_title, speaker
  • source_type (slides | transcript | notes), source_uri
  • time_range (for transcript chunks), slide_number (for slides)
  • created_at, ingested_at, version
  • topics/tags (optional, but powerful for filtering and category-based briefs)

This schema becomes the backbone for filtering (“only pull from this session”), ranking (“prefer slides when numbers appear”), and citation (“link back to slide 12 or 07:43–08:10”).

3) Chunking: use different strategies per source

One-size chunking usually fails for event content. Use source-aware chunking so retrieval returns fragments you can actually quote or paraphrase:

Slides

Chunk per slide (or per section heading). Preserve slide title + bullets + speaker notes if available.

Transcripts

Chunk by time (30–90s) with overlap, and keep speaker labels. Store start/end timestamps.

Notes

Chunk by bullet groups. Normalize shorthand (expand acronyms if known) but keep original text too.

Rule of thumb: chunk so that a single retrieved item can support a single sentence in your brief.

4) Retrieval that respects categories (and avoids “semantic drift”)

A community calendar brief often has repeating categories (Arts, Health, Civic, Sports, Business). If your retrieval doesn’t constrain by category/session, the model will happily blend unrelated events.

Use a two-step pattern:

  1. Filter first (metadata): event date, city, venue, session, category, source_type.
  2. Rank second (embeddings + keyword signals): semantic similarity, recency, speaker match, and “contains numbers/claims” boosts.

For mature audiences (40–60), clarity beats novelty. Bias ranking toward chunks that contain explicit logistics (time, location, cost), concrete outcomes, and named entities.

5) Prompting: make the model prove it used sources

RAG fails quietly when the model summarizes “from memory.” Force grounded writing by requiring citations inline and rejecting unsupported claims.

You are writing a short event brief. Use ONLY the provided sources.
For each sentence that includes a factual claim, append a citation like [source_type:ref].
If a claim is not supported, write "Not confirmed" and do not guess.
Output:
- 3 bullets max
- 1 logistics line (when/where)
- 1 why-it-matters line

Keep citations machine-readable: [transcript:07:43-08:10], [slides:12], [notes:line-18].

6) Handling contradictions between slides and transcripts

Contradictions are common: a slide says “Q3,” the speaker says “Q4.” Don’t average them—surface the ambiguity or pick a precedence rule.

  • If the brief is time-sensitive, prefer the spoken correction (but cite it).
  • If the claim is numerical, retrieve both and have the model report it explicitly: “Slide shows X; speaker stated Y.”
  • When unsure, downgrade certainty: “They indicated…” vs. “They announced…”

7) Evaluate RAG with checks that match newsroom output

Generic QA benchmarks won’t catch the errors that matter in event briefs. Measure what readers care about:

  • Attribution accuracy: do quotes match the right speaker and timestamp?
  • Logistics correctness: time/date/venue/cost pulled from sources, not guessed.
  • Citation coverage: every factual sentence has at least one source reference.
  • Category integrity: no cross-category blending in a single block.

8) Practical pipeline: from raw files to brief-ready context

A minimal, reliable pipeline looks like this:

  1. Ingest slides (PDF/PPTX) → extract text per slide → attach slide_number + session metadata.
  2. Ingest audio/video → transcribe + diarize → chunk by time → attach timestamps + speaker IDs.
  3. Ingest notes → normalize bullets → attach author + capture time.
  4. Embed each chunk + store in vector index with metadata filters.
  5. At generation time: filter → retrieve top-k per source → dedupe → summarize with citations.

If you only do one “extra” step, do dedupe: remove near-identical chunks across sources so the model sees coverage diversity instead of repetition.

9) Privacy and retention for community event coverage

Even public events can contain personal data (audience questions, attendee names). Store and retrieve with intent:

  • Redact emails/phone numbers from transcripts before indexing.
  • Tag “sensitive” segments and exclude them by default from retrieval.
  • Set retention windows per source_type (e.g., raw audio shorter, derived text longer).

Closing: RAG is editorial tooling, not just AI plumbing

When you index slides, transcripts, and notes with strong metadata and source-aware chunking, you give your briefs a repeatable editorial standard: every claim is traceable, every category block stays on-topic, and every daily update can be produced fast without sacrificing trust.