Skip to content

Release 5.2.0

Latest

Choose a tag to compare

@thiswillbeyourgithub thiswillbeyourgithub released this 03 Jul 23:10

What's new

PLACEHOLDER

Commits details since the last release

bumpver.toml
docs/source/conf.py
setup.py
wdoc/wdoc.py

.gitignore

  • [44b085b] by @thiswillbeyourgithub, 43 minutes ago:
    fix(local_audio): encode unsilenced audio as mp3 instead of ogg
    When audio_unsilence is on (the default), the silence-removal path re-encoded
    the audio to .ogg and uploaded that to the whisper endpoint. Some
    OpenAI-compatible whisper servers reject audio/ogg with a 415 Unsupported
    Media Type. mp3 is the most widely supported format for these endpoints, and
    it is already what local_video.py and online_media.py produce, so this also
    makes the three audio-producing loaders consistent.

Adds a regression test asserting the file handed to transcribe_audio_whisper
is .mp3 (never .ogg). It mocks torchaudio/ffmpeg/file_hasher and the
transcriber, and uses a unique file_hash to bypass the joblib doc-loaders
cache so it stays reproducible.

Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com

tests/test_wdoc.py
wdoc/utils/loaders/local_audio.py

  • [0267b9d] by @thiswillbeyourgithub, 55 minutes ago:
    fix(whisper): rewind audio file and preserve real error in requests fallback
    When litellm.transcription fails and wdoc falls back to a direct requests
    call, it reused the same file handle that litellm had already read to EOF, so
    the fallback uploaded an empty body. Endpoints answer an empty upload with a
    misleading status (e.g. 415 Unsupported Media Type) that has nothing to do
    with the actual failure, which is likely what produced the confusing 415 seen
    behind an auth proxy. Rewind the handle with seek(0) before the fallback POST.

Also, the original litellm error was only logged as a warning and then lost
when the fallback failed. Wrap the fallback request so its failure re-raises
with BOTH the endpoint error and the original litellm error, so the true root
cause (often an auth/proxy misconfiguration) survives.

Adds two regression tests (call the undecorated function to bypass the joblib
doc-loaders cache): one asserts the fallback uploads the full file, one
asserts the raised error mentions both the endpoint and litellm errors.

Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com

tests/test_wdoc.py
wdoc/utils/loaders/shared_audio.py

  • [c0a62c3] by @thiswillbeyourgithub, 60 minutes ago:
    fix(loaders): stop stacking three tracebacks on a failed doc load
    When load_one_doc failed (e.g. a single audio file whose whisper endpoint
    returns "415 Unsupported Media Type"), the error wrapper embedded the full
    traceback in the log message, then re-emitted it via logger.exception, then
    raised (excepthook printing it a third time). The real one-line error was
    buried under three near-identical tracebacks, which was misleading.

Now the message stays concise and the traceback is shown exactly once:
attached via exc_info on the warn path, or printed by the re-raise on the
crash paths. Also drop the now-unused traceback import.

Adds a regression test asserting the logged message is concise (no embedded
"Full traceback:" dump) and that crash mode does not double-attach the
traceback to the log record.

Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com

tests/test_wdoc.py
wdoc/utils/loaders/init.py