You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# on first use. Kept as a safety net so the download happens at install
76
+
# time rather than on the first parse of an office document.
93
77
try:
94
78
importnltk
95
79
@@ -145,7 +129,7 @@ def run(self):
145
129
146
130
setup(
147
131
name="wdoc",
148
-
version="5.0.1",
132
+
version="5.1.0",
149
133
description="A perfect AI powered RAG for document query and summary. Supports ~all LLM and ~all filetypes (url, pdf, epub, youtube (incl playlist), audio, anki, md, docx, pptx, or any combination!)",
150
134
long_description=long_description,
151
135
long_description_content_type="text/markdown",
@@ -184,18 +168,19 @@ def run(self):
184
168
},
185
169
python_requires=">=3.11",
186
170
install_requires=[
171
+
# Core RAG engine
187
172
"sqlalchemy>=2.0.32",
188
173
"beautifulsoup4>=4.12.3",
189
174
"fire>=0.6.0",
190
175
"ftfy>=6.2.0",
191
176
"joblib>=1.4.2",
192
-
"langchain>=1.2.0",
193
-
"langchain-classic>=1.0.0",
194
-
"langchain-community>=0.3.30",
195
-
"langchain-openai>=0.3.34",
196
-
"langchain-litellm>=0.3.5",
177
+
"langchain>=1.3.0",
178
+
"langchain-classic>=1.0.7",
179
+
"langchain-community>=0.4.1",
180
+
"langchain-openai>=1.2.1",
181
+
"langchain-litellm>=0.6.5",
197
182
"langfuse>=3.6.1", # for observability
198
-
"litellm>=v1.78.2",
183
+
"litellm>=v1.84.0",
199
184
"nest_asyncio>=1.6.0", # needed to fix ollama 'event loop closed' error thanks to https://github.com/BerriAI/litellm/pull/7625/files
200
185
"chonkie[all]>=1.4.0", # chonkie is for the semantic embeddings
201
186
"chonkie[semantic]>=1.4.0",
@@ -211,7 +196,6 @@ def run(self):
211
196
"loguru >= 0.7.2",
212
197
"grandalf >= 0.8", # to print ascii graph
213
198
"lazy-import >= 0.2.2",
214
-
"py_ankiconnect >= 1.1.2", # DIY wrapper to tell anki to sync just in case
215
199
"scikit-learn >= 1.5.1", # for semantic reordering
216
200
"scipy >= 1.13.1", # for semantic reordering
217
201
# 'python-magic >= 0.4.27', # for detecting file type # made optional as it can help infer the filetype, and 0.4.28 is necessary for the pipe feature.
@@ -220,47 +204,53 @@ def run(self):
220
204
"nltk>=3.9.2", # needed for punkt_tab download in post-install
221
205
"blake3>=1.0.8", # faster than sha256
222
206
"pandas >= 2.3.3",
223
-
# some loaders are included by default:
224
-
"playwright >= 1.45.0", # for online_media and urls
207
+
"trio >= 0.31.0", # for some reason older versions of trio, when present are used and cause issues on python 3.11: https://github.com/python-trio/trio/issues/2317
208
+
"unstructured >= 0.18.15", # base package only, used by pdf loader for clean_extra_whitespace. The heavy [all-docs] extra is in [office].
209
+
# PDF loading (default, since pdf is the most common filetype)
225
210
"openparse[ml] >= 0.5.7", # pdf with table support
226
-
# youtube
227
-
"yt-dlp >= 2025.09.26", # we actually need to install yt-dlp here otherwise readthedocs crashes. Note that in the postinstall script above it will be reinstalled using the master branch
228
-
"youtube-transcript-api >= 0.6.2",
229
-
# "pytube >= 15.0.0",
230
-
# url
231
-
"tldextract>=5.1.2",
211
+
"pdfminer.six >= 20231228",
212
+
"pillow_heif >= 0.16.0",
213
+
"pypdfium2 >= 4.30.0",
214
+
"pymupdf >= 1.24.5",
215
+
"pdfplumber >= 0.11.1",
216
+
"pdf2image >= 1.17.0",
217
+
# URL / web loading (default, since urls are the most common filetype)
218
+
"playwright >= 1.45.0", # for online_media and urls
232
219
"goose3 >= 3.1.20",
220
+
"tldextract>=5.1.2",
233
221
# online search via 'filetype=web'
234
222
"ddgs >= 9.6.0",
235
223
"duckduckgo-search >= 8.1.1",
236
-
# audio/video transcription
237
-
"deepgram-sdk >= 3.2.7",
238
-
"httpx >= 0.27.0", # to increase deepgram timeout
239
-
"pydub >= 0.25.1", # extracting audio from local video
240
-
"ffmpeg-python >= 0.2.0", # extracting audio from local video
241
-
"torchaudio >= 2.8.0", # silence removal from audio
242
-
"trio >= 0.31.0", # for some reason older versions of trio, when present are used and cause issues on python 3.11: https://github.com/python-trio/trio/issues/2317
243
-
# many file formats
244
-
"unstructured[all-docs]>=0.18.15",
245
224
],
246
225
extras_require={
247
-
"full": [
248
-
# Loaders:
249
-
# pdf
250
-
"pdfminer.six >= 20231228",
251
-
"pillow_heif >= 0.16.0",
252
-
"pypdfium2 >= 4.30.0",
253
-
"pymupdf >= 1.24.5",
254
-
"pdfplumber >= 0.11.1",
255
-
"pdf2image >= 1.17.0",
256
-
# word documents
257
-
"docx2txt >= 0.8",
258
-
# epub
259
-
"pandoc >= 2.4",
260
-
# anki
226
+
"youtube": [
227
+
"yt-dlp >= 2026.3.17", # NOTE: the postinstall script reinstalls yt-dlp from the master branch
228
+
"youtube-transcript-api >= 1.2.4",
229
+
# "pytube >= 15.0.0",
230
+
],
231
+
"audio": [
232
+
# audio/video transcription
233
+
"deepgram-sdk >= 3.2.7",
234
+
"httpx >= 0.27.0", # to increase deepgram timeout
235
+
"pydub >= 0.25.1", # extracting audio from local video
236
+
# audioop was removed in stdlib in Python 3.13 and pydub needs it
237
+
# See https://github.com/jiaaro/pydub/issues/815
238
+
"audioop-lts>=0.2.2; python_version>='3.13'",
239
+
"ffmpeg-python >= 0.2.0", # extracting audio from local video
240
+
"torchaudio >= 2.8.0", # silence removal from audio
241
+
],
242
+
"anki": [
261
243
"ankipandas>=0.3.15",
262
-
# logseq files (I'm the dev behind it)
263
-
"LogseqMarkdownParser >= 3.3",
244
+
"py_ankiconnect >= 1.1.2", # DIY wrapper to tell anki to sync just in case
245
+
],
246
+
"office": [
247
+
# word, powerpoint, epub and other office formats
248
+
"unstructured[all-docs]>=0.18.15",
249
+
"docx2txt >= 0.8",
250
+
"pandoc >= 2.4", # for epub
251
+
],
252
+
"logseq": [
253
+
"LogseqMarkdownParser >= 3.3", # I'm the dev behind it
264
254
],
265
255
"fasttext": [
266
256
# buggy in windows so optional: https://github.com/zafercavdar/fasttext-langdetect/issues/14
0 commit comments