mirror of
https://github.com/QuivrHQ/quivr.git
synced 2024-10-03 17:38:21 +03:00
fix: sync creation fixed (#2637)
This pull request includes updates to the `docker-compose.dev.yml` and `Dockerfile.dev` files. The changes aim to improve performance and fix bugs. The updates include: - Removing unnecessary workers configuration in the `docker-compose.dev.yml` file. - Updating the base image in the `Dockerfile.dev` to use a slim version. - Adjusting the schedule for a specific task in the code. - Modifying the time interval for retrieving active syncs. - Changing the loader class for processing PowerPoint files. - Refactoring the file existence check logic. - Adding debug logs for file existence check and file removal. - Adjusting the file synchronization logic. These changes are intended to enhance the performance and stability of the application.
This commit is contained in:
parent
6ea4a4513b
commit
31d3cce97f
1546
Pipfile.lock
generated
1546
Pipfile.lock
generated
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
||||
# Using a slim version for a smaller base image
|
||||
FROM python:3.11.6-slim-bullseye@sha256:0c1fbb294096d842ad795ee232d783cab436c90b034210fe894f2bb2f2be7626
|
||||
FROM python:3.11.6-slim-bullseye
|
||||
|
||||
ARG DEV_MODE
|
||||
ENV DEV_MODE=$DEV_MODE
|
||||
|
@ -218,6 +218,6 @@ celery.conf.beat_schedule = {
|
||||
},
|
||||
"process_sync_active": {
|
||||
"task": "process_sync_active",
|
||||
"schedule": crontab(minute="*/5", hour="*"),
|
||||
"schedule": crontab(minute="*/1", hour="*"),
|
||||
},
|
||||
}
|
||||
|
@ -57,10 +57,11 @@ class GoogleSyncUtils(BaseModel):
|
||||
logger.info("Google Drive credentials refreshed")
|
||||
# Updating the credentials in the database
|
||||
|
||||
try:
|
||||
service = build("drive", "v3", credentials=creds)
|
||||
downloaded_files = []
|
||||
for file in files:
|
||||
service = build("drive", "v3", credentials=creds)
|
||||
downloaded_files = []
|
||||
for file in files:
|
||||
logger.info("🔥🔥🔥🔥: %s", file)
|
||||
try:
|
||||
file_id = file["id"]
|
||||
file_name = file["name"]
|
||||
mime_type = file["mime_type"]
|
||||
@ -68,7 +69,8 @@ class GoogleSyncUtils(BaseModel):
|
||||
# Convert Google Docs files to appropriate formats before downloading
|
||||
if mime_type == "application/vnd.google-apps.document":
|
||||
logger.debug(
|
||||
"Converting Google Docs file with file_id: %s to DOCX.", file_id
|
||||
"Converting Google Docs file with file_id: %s to DOCX.",
|
||||
file_id,
|
||||
)
|
||||
request = service.files().export_media(
|
||||
fileId=file_id,
|
||||
@ -119,7 +121,7 @@ class GoogleSyncUtils(BaseModel):
|
||||
|
||||
# Check if the file already exists in the storage
|
||||
if check_file_exists(brain_id, file_name):
|
||||
logger.info("🔥 File already exists in the storage: %s", file_name)
|
||||
logger.debug("🔥 File already exists in the storage: %s", file_name)
|
||||
|
||||
self.storage.remove_file(brain_id + "/" + file_name)
|
||||
BrainsVectors().delete_file_from_brain(brain_id, file_name)
|
||||
@ -129,7 +131,7 @@ class GoogleSyncUtils(BaseModel):
|
||||
filename=file_name,
|
||||
)
|
||||
|
||||
await upload_file(to_upload_file, brain_id, current_user)
|
||||
await upload_file(to_upload_file, brain_id, current_user) # type: ignore
|
||||
|
||||
# Check if the file already exists in the database
|
||||
existing_files = self.sync_files_repo.get_sync_files(sync_active_id)
|
||||
@ -156,13 +158,13 @@ class GoogleSyncUtils(BaseModel):
|
||||
)
|
||||
)
|
||||
|
||||
downloaded_files.append(file_name)
|
||||
return {"downloaded_files": downloaded_files}
|
||||
except HttpError as error:
|
||||
logger.error(
|
||||
"An error occurred while downloading Google Drive files: %s", error
|
||||
)
|
||||
return {"error": f"An error occurred: {error}"}
|
||||
downloaded_files.append(file_name)
|
||||
except HttpError as error:
|
||||
logger.error(
|
||||
"An error occurred while downloading Google Drive files: %s",
|
||||
error,
|
||||
)
|
||||
return {"downloaded_files": downloaded_files}
|
||||
|
||||
async def sync(self, sync_active_id: int, user_id: str):
|
||||
"""
|
||||
@ -244,16 +246,22 @@ class GoogleSyncUtils(BaseModel):
|
||||
|
||||
# Filter files that have been modified since the last sync
|
||||
last_synced_time = datetime.fromisoformat(last_synced) if last_synced else None
|
||||
|
||||
files_to_download = [
|
||||
file
|
||||
for file in files.get("files", [])
|
||||
if not file["is_folder"]
|
||||
and (
|
||||
not last_synced_time
|
||||
or datetime.fromisoformat(file["last_modified"]) > last_synced_time
|
||||
(
|
||||
not last_synced_time
|
||||
or datetime.fromisoformat(file["last_modified"]) > last_synced_time
|
||||
)
|
||||
or not check_file_exists(sync_active["brain_id"], file["name"])
|
||||
)
|
||||
]
|
||||
|
||||
logger.error(files_to_download)
|
||||
|
||||
downloaded_files = await self._upload_files(
|
||||
sync_user["credentials"],
|
||||
files_to_download,
|
||||
@ -261,12 +269,6 @@ class GoogleSyncUtils(BaseModel):
|
||||
sync_active["brain_id"],
|
||||
sync_active_id,
|
||||
)
|
||||
if "error" in downloaded_files:
|
||||
logger.error(
|
||||
"Failed to download files from Google Drive for sync_active_id: %s",
|
||||
sync_active_id,
|
||||
)
|
||||
return None
|
||||
|
||||
# Update the last_synced timestamp
|
||||
self.sync_active_service.update_sync_active(
|
||||
|
@ -103,7 +103,7 @@ class AzureSyncUtils(BaseModel):
|
||||
|
||||
# Check if the file already exists in the storage
|
||||
if check_file_exists(brain_id, file_name):
|
||||
logger.info("🔥 File already exists in the storage: %s", file_name)
|
||||
logger.debug("🔥 File already exists in the storage: %s", file_name)
|
||||
|
||||
self.storage.remove_file(brain_id + "/" + file_name)
|
||||
BrainsVectors().delete_file_from_brain(brain_id, file_name)
|
||||
@ -250,11 +250,14 @@ class AzureSyncUtils(BaseModel):
|
||||
for file in files.get("files", [])
|
||||
if not file["is_folder"]
|
||||
and (
|
||||
not last_synced_time
|
||||
or datetime.strptime(
|
||||
file["last_modified"], "%Y-%m-%dT%H:%M:%SZ"
|
||||
).replace(tzinfo=timezone.utc)
|
||||
> last_synced_time
|
||||
(
|
||||
not last_synced_time
|
||||
or datetime.strptime(
|
||||
file["last_modified"], "%Y-%m-%dT%H:%M:%SZ"
|
||||
).replace(tzinfo=timezone.utc)
|
||||
> last_synced_time
|
||||
)
|
||||
or not check_file_exists(sync_active["brain_id"], file["name"])
|
||||
)
|
||||
]
|
||||
|
||||
|
@ -49,8 +49,12 @@ def check_file_exists(brain_id: str, file_identifier: str) -> bool:
|
||||
response = supabase_client.storage.from_("quivr").list(brain_id)
|
||||
|
||||
# Check if the file_identifier is in the response
|
||||
file_exists = any(file["name"] == file_identifier for file in response)
|
||||
|
||||
file_exists = any(
|
||||
file["name"].split(".")[0] == file_identifier.split(".")[0]
|
||||
for file in response
|
||||
)
|
||||
logger.info(f"File identifier: {file_identifier}")
|
||||
logger.info(f"File exists: {file_exists}")
|
||||
if file_exists:
|
||||
logger.info(f"File {file_identifier} exists.")
|
||||
return True
|
||||
@ -59,7 +63,7 @@ def check_file_exists(brain_id: str, file_identifier: str) -> bool:
|
||||
return False
|
||||
except Exception as e:
|
||||
logger.error(f"An error occurred while checking the file: {e}")
|
||||
raise e
|
||||
return True
|
||||
|
||||
|
||||
def upload_file_storage(file, file_identifier: str, upsert: str = "false"):
|
||||
|
@ -1,4 +1,4 @@
|
||||
from langchain_community.document_loaders import UnstructuredPowerPointLoader
|
||||
from langchain_community.document_loaders import UnstructuredFileLoader
|
||||
from models import File
|
||||
|
||||
from .common import process_file
|
||||
@ -9,7 +9,7 @@ def process_powerpoint(
|
||||
):
|
||||
return process_file(
|
||||
file=file,
|
||||
loader_class=UnstructuredPowerPointLoader,
|
||||
loader_class=UnstructuredFileLoader,
|
||||
brain_id=brain_id,
|
||||
original_file_name=original_file_name,
|
||||
integration=integration,
|
||||
|
@ -17,11 +17,11 @@ backoff==2.2.1; python_version >= '3.7' and python_version < '4.0'
|
||||
beautifulsoup4==4.12.3; python_full_version >= '3.6.0'
|
||||
billiard==4.2.0; python_version >= '3.7'
|
||||
black==24.4.2; python_version >= '3.8'
|
||||
boto3==1.34.113; python_version >= '3.8'
|
||||
botocore==1.34.113; python_version >= '3.8'
|
||||
boto3==1.34.120; python_version >= '3.8'
|
||||
botocore==1.34.120; python_version >= '3.8'
|
||||
cachetools==5.3.3; python_version >= '3.7'
|
||||
celery[redis,sqs]==5.4.0; python_version >= '3.8'
|
||||
certifi==2024.2.2; python_version >= '3.6'
|
||||
certifi==2024.6.2; python_version >= '3.6'
|
||||
cffi==1.16.0; platform_python_implementation != 'PyPy'
|
||||
chardet==5.2.0; python_version >= '3.7'
|
||||
charset-normalizer==3.3.2; python_full_version >= '3.7.0'
|
||||
@ -29,15 +29,15 @@ click==8.1.7; python_version >= '3.7'
|
||||
click-didyoumean==0.3.1; python_full_version >= '3.6.2'
|
||||
click-plugins==1.1.1
|
||||
click-repl==0.3.0; python_version >= '3.6'
|
||||
cohere==5.5.3; python_version >= '3.8' and python_version < '4.0'
|
||||
cohere==5.5.4; python_version >= '3.8' and python_version < '4.0'
|
||||
coloredlogs==15.0.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
|
||||
colorlog==6.8.2; python_version >= '3.6'
|
||||
contourpy==1.2.1; python_version >= '3.9'
|
||||
cryptography==42.0.7; python_version >= '3.7'
|
||||
cryptography==42.0.8; python_version >= '3.7'
|
||||
cssselect==1.2.0; python_version >= '3.7'
|
||||
cycler==0.12.1; python_version >= '3.8'
|
||||
dataclasses-json==0.6.6; python_version >= '3.7' and python_version < '4.0'
|
||||
datasets==2.19.1; python_full_version >= '3.8.0'
|
||||
datasets==2.19.2; python_full_version >= '3.8.0'
|
||||
debugpy==1.8.1; python_version >= '3.8'
|
||||
decorator==5.1.1; python_version >= '3.5'
|
||||
deepdiff==7.0.1; python_version >= '3.8'
|
||||
@ -52,7 +52,7 @@ dnspython==2.6.1; python_version >= '3.8'
|
||||
docker==7.1.0; python_version >= '3.8'
|
||||
docx2txt==0.8
|
||||
duckdb==0.10.3; python_full_version >= '3.7.0'
|
||||
duckduckgo-search==6.1.1; python_version >= '3.8'
|
||||
duckduckgo-search==6.1.5; python_version >= '3.8'
|
||||
ecdsa==0.19.0; python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
|
||||
effdet==0.4.1
|
||||
email-validator==2.1.1; python_version >= '3.8'
|
||||
@ -71,22 +71,22 @@ flake8-black==0.3.6; python_version >= '3.7'
|
||||
flashrank==0.2.5; python_version >= '3.6'
|
||||
flatbuffers==24.3.25
|
||||
flower==2.0.1; python_version >= '3.7'
|
||||
fonttools==4.52.1; python_version >= '3.8'
|
||||
fonttools==4.53.0; python_version >= '3.8'
|
||||
fpdf2==2.7.9; python_version >= '3.7'
|
||||
frozenlist==1.4.1; python_version >= '3.8'
|
||||
fsspec[http]==2024.3.1; python_version >= '3.8'
|
||||
gitdb==4.0.11; python_version >= '3.7'
|
||||
gitpython==3.1.43; python_version >= '3.7'
|
||||
google-api-core[grpc]==2.19.0; python_version >= '3.7'
|
||||
google-api-python-client==2.130.0; python_version >= '3.7'
|
||||
google-api-python-client==2.132.0; python_version >= '3.7'
|
||||
google-auth==2.29.0; python_version >= '3.7'
|
||||
google-auth-httplib2==0.2.0
|
||||
google-auth-oauthlib==1.2.0; python_version >= '3.6'
|
||||
google-cloud-vision==3.7.2
|
||||
googleapis-common-protos==1.63.0; python_version >= '3.7'
|
||||
gotrue==2.4.2; python_version >= '3.8' and python_version < '4.0'
|
||||
googleapis-common-protos==1.63.1; python_version >= '3.7'
|
||||
gotrue==2.4.4; python_version >= '3.8' and python_version < '4.0'
|
||||
greenlet==3.0.3; python_version >= '3.7'
|
||||
grpcio==1.64.0
|
||||
grpcio==1.64.1
|
||||
grpcio-status==1.62.2
|
||||
h11==0.14.0; python_version >= '3.7'
|
||||
html5lib==1.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
|
||||
@ -95,7 +95,7 @@ httplib2==0.22.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3
|
||||
httptools==0.6.1
|
||||
httpx==0.27.0; python_version >= '3.8'
|
||||
httpx-sse==0.4.0; python_version >= '3.8'
|
||||
huggingface-hub==0.23.2; python_full_version >= '3.8.0'
|
||||
huggingface-hub==0.23.3; python_full_version >= '3.8.0'
|
||||
humanfriendly==10.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
|
||||
humanize==4.9.0; python_version >= '3.8'
|
||||
idna==3.7; python_version >= '3.5'
|
||||
@ -112,40 +112,40 @@ jsonpath-python==1.0.6; python_version >= '3.6'
|
||||
jsonpointer==2.4; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6'
|
||||
kiwisolver==1.4.5; python_version >= '3.7'
|
||||
kombu[sqs]==5.3.7; python_version >= '3.8'
|
||||
langchain==0.2.1; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
langchain==0.2.2; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
langchain-cohere==0.1.5; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
langchain-community==0.2.1; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
langchain-core==0.2.1; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
langchain-openai==0.1.7; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
langchain-text-splitters==0.2.0; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
langchain-community==0.2.3; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
langchain-core==0.2.4; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
langchain-openai==0.1.8; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
langchain-text-splitters==0.2.1; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
langdetect==1.0.9
|
||||
langfuse==2.33.0; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
langgraph==0.0.55; python_version < '4.0' and python_full_version >= '3.9.0'
|
||||
langsmith==0.1.63; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
langfuse==2.34.2; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
langgraph==0.0.64; python_version < '4.0' and python_full_version >= '3.9.0'
|
||||
langsmith==0.1.74; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
layoutparser[layoutmodels,tesseract]==0.3.4; python_version >= '3.6'
|
||||
litellm==1.38.10; python_version not in '2.7, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7' and python_version >= '3.8'
|
||||
litellm==1.40.4; python_version not in '2.7, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7' and python_version >= '3.8'
|
||||
llama-cpp-python==0.2.67; python_version >= '3.8'
|
||||
llama-index==0.10.39; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
llama-index-agent-openai==0.2.5; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
llama-index==0.10.43; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
llama-index-agent-openai==0.2.7; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
llama-index-cli==0.1.12; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
llama-index-core==0.10.39.post1; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
llama-index-core==0.10.43; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
llama-index-embeddings-openai==0.1.10; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
llama-index-indices-managed-llama-cloud==0.1.6; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
llama-index-legacy==0.9.48; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
llama-index-llms-openai==0.1.21; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
llama-index-llms-openai==0.1.22; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
llama-index-multi-modal-llms-openai==0.1.6; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
llama-index-program-openai==0.1.6; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
llama-index-question-gen-openai==0.1.3; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
llama-index-readers-file==0.1.23; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
llama-index-readers-llama-parse==0.1.4; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
llama-parse==0.4.3; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
llama-parse==0.4.4; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
llamaindex-py-client==0.1.19; python_version >= '3.8' and python_version < '4'
|
||||
lxml[html_clean]==5.2.2; python_version >= '3.6'
|
||||
lxml-html-clean==0.1.1
|
||||
markdown==3.6
|
||||
markdown-it-py==3.0.0; python_version >= '3.8'
|
||||
markupsafe==2.1.5; python_version >= '3.7'
|
||||
marshmallow==3.21.2; python_version >= '3.8'
|
||||
marshmallow==3.21.3; python_version >= '3.8'
|
||||
matplotlib==3.9.0; python_version >= '3.9'
|
||||
mccabe==0.7.0; python_version >= '3.6'
|
||||
mdurl==0.1.2; python_version >= '3.7'
|
||||
@ -157,39 +157,39 @@ multidict==6.0.5; python_version >= '3.7'
|
||||
multiprocess==0.70.16; python_version >= '3.8'
|
||||
mypy-extensions==1.0.0; python_version >= '3.5'
|
||||
nest-asyncio==1.6.0; python_version >= '3.5'
|
||||
networkx==3.3
|
||||
networkx==3.3; python_version >= '3.10'
|
||||
newspaper3k==0.2.8
|
||||
nltk==3.8.1; python_version >= '3.7'
|
||||
nodeenv==1.8.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6'
|
||||
numpy==1.26.4; python_version >= '3.10'
|
||||
nodeenv==1.9.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6'
|
||||
numpy==1.26.4; python_version >= '3.9'
|
||||
oauthlib==3.2.2; python_version >= '3.6'
|
||||
olefile==0.47; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
|
||||
omegaconf==2.3.0; python_version >= '3.6'
|
||||
onnx==1.16.1
|
||||
onnxruntime==1.18.0
|
||||
openai==1.30.3; python_full_version >= '3.7.1'
|
||||
opencv-python==4.9.0.80; python_version >= '3.6'
|
||||
openpyxl==3.1.2
|
||||
openai==1.31.1; python_full_version >= '3.7.1'
|
||||
opencv-python==4.10.0.82; python_version >= '3.6'
|
||||
openpyxl==3.1.3
|
||||
ordered-set==4.1.0; python_version >= '3.7'
|
||||
orjson==3.10.3; python_version >= '3.8'
|
||||
packaging==23.2; python_version >= '3.7'
|
||||
pandas==1.5.3; python_version >= '3.8'
|
||||
pandasai==2.0.43; python_version not in '2.7, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8' and python_version >= '3.9'
|
||||
pandasai==2.1.1; python_version not in '2.7, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8' and python_version >= '3.9'
|
||||
pathspec==0.12.1; python_version >= '3.8'
|
||||
pdf2image==1.17.0
|
||||
pdfminer.six==20231228
|
||||
pdfplumber==0.11.0; python_version >= '3.8'
|
||||
pikepdf==8.15.1
|
||||
pikepdf==9.0.0
|
||||
pillow==10.3.0; python_version >= '3.8'
|
||||
pillow-heif==0.16.0
|
||||
platformdirs==4.2.2; python_version >= '3.8'
|
||||
playwright==1.44.0; python_version >= '3.8'
|
||||
pluggy==1.5.0; python_version >= '3.8'
|
||||
portalocker==2.8.2; python_version >= '3.8'
|
||||
postgrest==0.16.4; python_version >= '3.8' and python_version < '4.0'
|
||||
postgrest==0.16.8; python_version >= '3.8' and python_version < '4.0'
|
||||
posthog==3.5.0
|
||||
prometheus-client==0.20.0; python_version >= '3.8'
|
||||
prompt-toolkit==3.0.43; python_full_version >= '3.7.0'
|
||||
prompt-toolkit==3.0.46; python_full_version >= '3.7.0'
|
||||
proto-plus==1.23.0; python_version >= '3.6'
|
||||
protobuf==4.25.3; python_version >= '3.8'
|
||||
psutil==5.9.8; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'
|
||||
@ -204,9 +204,9 @@ pycocotools==2.0.7; python_version >= '3.5'
|
||||
pycodestyle==2.11.1; python_version >= '3.8'
|
||||
pycparser==2.22; python_version >= '3.8'
|
||||
pycurl==7.45.3
|
||||
pydantic==2.7.1; python_version >= '3.8'
|
||||
pydantic-core==2.18.2; python_version >= '3.8'
|
||||
pydantic-settings==2.2.1; python_version >= '3.8'
|
||||
pydantic==2.7.3; python_version >= '3.8'
|
||||
pydantic-core==2.18.4; python_version >= '3.8'
|
||||
pydantic-settings==2.3.1; python_version >= '3.8'
|
||||
pyee==11.1.0; python_version >= '3.8'
|
||||
pyflakes==3.2.0; python_version >= '3.8'
|
||||
pygments==2.18.0; python_version >= '3.8'
|
||||
@ -216,11 +216,11 @@ pypandoc==1.13; python_version >= '3.6'
|
||||
pyparsing==3.1.2; python_version >= '3.1'
|
||||
pypdf==4.2.0; python_version >= '3.6'
|
||||
pypdfium2==4.30.0; python_version >= '3.6'
|
||||
pyreqwest-impersonate==0.4.5; python_version >= '3.8'
|
||||
pyright==1.1.364; python_version >= '3.7'
|
||||
pyreqwest-impersonate==0.4.7; python_version >= '3.8'
|
||||
pyright==1.1.366; python_version >= '3.7'
|
||||
pysbd==0.3.4; python_version >= '3'
|
||||
pytesseract==0.3.10; python_version >= '3.7'
|
||||
pytest==8.2.1; python_version >= '3.8'
|
||||
pytest==8.2.2; python_version >= '3.8'
|
||||
pytest-celery==1.0.0; python_version >= '3.8' and python_version < '4.0'
|
||||
pytest-docker-tools==3.1.3; python_full_version >= '3.7.0' and python_full_version < '4.0.0'
|
||||
pytest-dotenv==0.5.2
|
||||
@ -235,22 +235,23 @@ python-multipart==0.0.9; python_version >= '3.8'
|
||||
python-pptx==0.6.23
|
||||
pytz==2024.1
|
||||
pyyaml==6.0.1; python_version >= '3.6'
|
||||
ragas==0.1.8
|
||||
rapidfuzz==3.9.1; python_version >= '3.8'
|
||||
realtime==1.0.4; python_version >= '3.8' and python_version < '4.0'
|
||||
redis==5.0.4; python_version >= '3.7'
|
||||
ragas==0.1.9
|
||||
rapidfuzz==3.9.3; python_version >= '3.8'
|
||||
realtime==1.0.5; python_version >= '3.8' and python_version < '4.0'
|
||||
redis==5.0.5; python_version >= '3.7'
|
||||
regex==2024.5.15; python_version >= '3.8'
|
||||
requests==2.32.2; python_version >= '3.8'
|
||||
requests==2.32.3; python_version >= '3.8'
|
||||
requests-file==2.1.0
|
||||
requests-oauthlib==2.0.0; python_version >= '3.4'
|
||||
resend==1.2.0; python_version >= '3.7'
|
||||
requests-toolbelt==1.0.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
|
||||
resend==2.0.0; python_version >= '3.7'
|
||||
retry==0.9.2
|
||||
rich==13.7.1; python_full_version >= '3.7.0'
|
||||
rsa==4.9; python_version >= '3.6' and python_version < '4'
|
||||
s3transfer==0.10.1; python_version >= '3.8'
|
||||
safetensors==0.4.3; python_version >= '3.7'
|
||||
scipy==1.13.1; python_version >= '3.9'
|
||||
sentry-sdk[fastapi]==2.3.1; python_version >= '3.6'
|
||||
sentry-sdk[fastapi]==2.5.0; python_version >= '3.6'
|
||||
setuptools==70.0.0; python_version >= '3.8'
|
||||
sgmllib3k==1.0.0
|
||||
shellingham==1.5.4; python_version >= '3.7'
|
||||
@ -260,12 +261,12 @@ sniffio==1.3.1; python_version >= '3.7'
|
||||
soupsieve==2.5; python_version >= '3.8'
|
||||
sqlalchemy[asyncio]==2.0.30; python_version >= '3.7'
|
||||
starlette==0.37.2; python_version >= '3.8'
|
||||
storage3==0.7.4; python_version >= '3.8' and python_version < '4.0'
|
||||
storage3==0.7.6; python_version >= '3.8' and python_version < '4.0'
|
||||
strenum==0.4.15
|
||||
striprtf==0.0.26
|
||||
supabase==2.4.6; python_version >= '3.8' and python_version < '4.0'
|
||||
supafunc==0.4.5; python_version >= '3.8' and python_version < '4.0'
|
||||
sympy==1.12; python_version >= '3.8'
|
||||
supabase==2.5.0; python_version >= '3.8' and python_version < '4.0'
|
||||
supafunc==0.4.6; python_version >= '3.8' and python_version < '4.0'
|
||||
sympy==1.12.1; python_version >= '3.8'
|
||||
tabulate==0.9.0; python_version >= '3.7'
|
||||
tavily-python==0.3.3; python_version >= '3.6'
|
||||
tenacity==8.3.0; python_version >= '3.8'
|
||||
@ -273,31 +274,30 @@ tiktoken==0.7.0; python_version >= '3.8'
|
||||
timm==1.0.3; python_version >= '3.8'
|
||||
tinysegmenter==0.3
|
||||
tldextract==5.1.2; python_version >= '3.8'
|
||||
tokenizers==0.19.1; python_version >= '3.7'
|
||||
torch==2.3.0; python_full_version >= '3.8.0'
|
||||
torchvision==0.18.0; python_version >= '3.8'
|
||||
tokenizers==0.15.2; python_version >= '3.7'
|
||||
torch==2.3.1; python_full_version >= '3.8.0'
|
||||
torchvision==0.18.1; python_version >= '3.8'
|
||||
tornado==6.4; python_version >= '3.8'
|
||||
tqdm==4.66.4; python_version >= '3.7'
|
||||
transformers==4.41.1; python_full_version >= '3.8.0'
|
||||
transformers==4.39.3; python_full_version >= '3.8.0'
|
||||
typer==0.12.3; python_version >= '3.7'
|
||||
types-requests==2.32.0.20240523; python_version >= '3.8'
|
||||
typing-extensions==4.12.0; python_version >= '3.8'
|
||||
types-requests==2.32.0.20240602; python_version >= '3.8'
|
||||
typing-extensions==4.12.1; python_version >= '3.8'
|
||||
typing-inspect==0.9.0
|
||||
tzdata==2024.1; python_version >= '2'
|
||||
ujson==5.10.0; python_version >= '3.8'
|
||||
unidecode==1.3.8; python_version >= '3.5'
|
||||
unstructured[all-docs]==0.14.2; python_version < '3.13' and python_full_version >= '3.9.0'
|
||||
unstructured-client==0.22.0; python_version >= '3.8'
|
||||
unstructured[all-docs]==0.14.4; python_version < '3.13' and python_full_version >= '3.9.0'
|
||||
unstructured-client==0.23.0; python_version >= '3.8'
|
||||
unstructured-inference==0.7.33
|
||||
unstructured.pytesseract==0.3.12
|
||||
uritemplate==4.1.1; python_version >= '3.6'
|
||||
urllib3==2.2.1; python_version >= '3.8'
|
||||
uuid6==2024.1.12; python_version >= '3.8'
|
||||
uvicorn[standard]==0.29.0; python_version >= '3.8'
|
||||
uvicorn[standard]==0.30.1; python_version >= '3.8'
|
||||
uvloop==0.19.0
|
||||
vine==5.1.0; python_version >= '3.6'
|
||||
watchdog==4.0.1; python_version >= '3.8'
|
||||
watchfiles==0.21.0
|
||||
watchfiles==0.22.0
|
||||
wcwidth==0.2.13
|
||||
webencodings==0.5.1
|
||||
websockets==12.0; python_version >= '3.8'
|
||||
@ -306,4 +306,4 @@ xlrd==2.0.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3
|
||||
xlsxwriter==3.2.0; python_version >= '3.6'
|
||||
xxhash==3.4.1; python_version >= '3.7'
|
||||
yarl==1.9.4; python_version >= '3.7'
|
||||
zipp==3.19.0; python_version >= '3.8'
|
||||
zipp==3.19.2; python_version >= '3.8'
|
||||
|
@ -26,8 +26,6 @@ services:
|
||||
- "0.0.0.0"
|
||||
- "--port"
|
||||
- "5050"
|
||||
- "--workers"
|
||||
- "6"
|
||||
- "--log-level"
|
||||
- "info"
|
||||
restart: always
|
||||
|
Loading…
Reference in New Issue
Block a user