Skip to main content
← All use cases

The scenario

The decision was made on a call. Nobody wrote it down, or somebody wrote down half of it, and three weeks later the team is relitigating a thing that was already settled. The recording exists. It is just not answerable — nobody is going to scrub forty minutes of audio to check who agreed to what.

Step 1 — Upload the audio

Audio is a file like any other. upload_file takes MP3 and WAV, transcribes them, and stores the result as ordinary memory in the same space as everything you have recorded by hand.
Ingestion is asynchronous, so this returns {"job_ids": [...]} rather than waiting. Tag it on the way in — that is what lets you later ask about one team’s meetings and not everyone’s.

Step 2 — Wait for it, or be told

For anything beyond a script, register a webhook instead of polling — see Know the moment ingestion finishes.

Step 3 — Ask the meeting a question

The transcript is memory now, so it composes with everything else: a question can draw on the call, the design doc you uploaded, and the notes somebody typed.

Evals

  1. Upload one recording where you know the answer to a specific question.
  2. Ask that question. Check the answer names the right person.
  3. Ask something the recording does not cover. A useful system says it does not know; if it invents an answer, your min_score floor is too low — see Tuning Recall Quality.
  4. Upload a second recording from a different team with different tags, and confirm a tagged query does not cross over.

Guardrails

Record people knowingly. A meeting recording is personal data about everyone on the call, and it becomes searchable by everyone with access to the space. Get consent, and scope the space so it reaches only who it should. If someone later asks to be removed, that is a runbook, not an afternoon of grep.
  • Per-file limits apply: 25 MB for audio, 64 MB for video. A long call may need splitting.
  • A transcript is not a verbatim record. It is good enough to answer questions and to point you at the moment; it is not evidence. Keep the original file if the exact words matter.
  • Tag on upload, not afterwards. There is no bulk retag, so an untagged corpus stays untagged.

Built from

Every call above appears in one of these two runnable scripts: document_qa.py, background_ingestion.py.