mirror of
https://github.com/QuivrHQ/quivr.git
synced 2024-12-14 17:03:29 +03:00
feat: llamaparse & diff agent (#2427)
This pull request updates the dependencies in the Pipfile to their latest versions.
This commit is contained in:
parent
a8c5e186be
commit
c773677b46
43
Pipfile
43
Pipfile
@ -4,30 +4,30 @@ verify_ssl = true
|
||||
name = "pypi"
|
||||
|
||||
[packages]
|
||||
langchain = "==0.1.11"
|
||||
langchain = "*"
|
||||
litellm = "*"
|
||||
openai = "1.13.3"
|
||||
gitpython = "==3.1.36"
|
||||
openai = "*"
|
||||
gitpython = "*"
|
||||
pdf2image = "*"
|
||||
nest-asyncio = "==1.5.6"
|
||||
pypdf = "==3.9.0"
|
||||
supabase = "==2.4.0"
|
||||
tiktoken = "==0.6.0"
|
||||
fastapi = "==0.110.0"
|
||||
python-multipart = "==0.0.6"
|
||||
nest-asyncio = "*"
|
||||
pypdf = "*"
|
||||
supabase = "*"
|
||||
tiktoken = "*"
|
||||
fastapi = "*"
|
||||
python-multipart = "*"
|
||||
uvicorn = "*"
|
||||
pypandoc = "==1.11"
|
||||
docx2txt = "==0.8"
|
||||
python-jose = "==3.3.0"
|
||||
asyncpg = "==0.27.0"
|
||||
flake8 = "==7.0.0"
|
||||
flake8-black = "==0.3.6"
|
||||
pypandoc = "*"
|
||||
docx2txt = "*"
|
||||
python-jose = "*"
|
||||
asyncpg = "*"
|
||||
flake8 = "*"
|
||||
flake8-black = "*"
|
||||
sentry-sdk = {extras = ["fastapi"] }
|
||||
pyright = "==1.1.316"
|
||||
pyright = "*"
|
||||
resend = "*"
|
||||
html5lib = "==1.1"
|
||||
html5lib = "*"
|
||||
beautifulsoup4 = "*"
|
||||
newspaper3k = "==0.2.8"
|
||||
newspaper3k = "*"
|
||||
xlrd = "*"
|
||||
redis = "*"
|
||||
flower = "*"
|
||||
@ -38,8 +38,8 @@ pytest-mock = "*"
|
||||
pytest-celery = "*"
|
||||
pytesseract = "*"
|
||||
async-generator = "*"
|
||||
posthog = "==3.5.0"
|
||||
jq = "==1.6.0"
|
||||
posthog = "*"
|
||||
jq = "*"
|
||||
pytest = "*"
|
||||
watchdog = "*"
|
||||
langchain-community = "*"
|
||||
@ -52,6 +52,9 @@ psycopg2-binary = "*"
|
||||
psycopg2 = "*"
|
||||
celery = {extras = ["redis", "sqs"], version = "*"}
|
||||
unstructured = {extras = ["all-docs"], version = "*"}
|
||||
llama-parse = "*"
|
||||
llama-index = "*"
|
||||
lxml = {extras = ["html_clean"], version = "*"}
|
||||
|
||||
[dev-packages]
|
||||
black = "*"
|
||||
|
3172
Pipfile.lock
generated
3172
Pipfile.lock
generated
File diff suppressed because it is too large
Load Diff
@ -5,6 +5,7 @@ from logger import get_logger
|
||||
from middlewares.auth import AuthBearer, get_current_user
|
||||
from modules.assistant.dto.inputs import InputAssistant
|
||||
from modules.assistant.dto.outputs import AssistantOutput
|
||||
from modules.assistant.ito.difference import DifferenceAssistant, difference_inputs
|
||||
from modules.assistant.ito.summary import SummaryAssistant, summary_inputs
|
||||
from modules.assistant.service.assistant import Assistant
|
||||
from modules.user.entity.user_identity import UserIdentity
|
||||
@ -26,6 +27,7 @@ async def list_assistants(
|
||||
"""
|
||||
|
||||
summary = summary_inputs()
|
||||
# difference = difference_inputs()
|
||||
# crawler = crawler_inputs()
|
||||
# audio_transcript = audio_transcript_inputs()
|
||||
return [summary]
|
||||
@ -50,4 +52,13 @@ async def process_assistant(
|
||||
return await summary_assistant.process_assistant()
|
||||
except ValueError as e:
|
||||
raise HTTPException(status_code=400, detail=str(e))
|
||||
elif input.name == "difference":
|
||||
difference_assistant = DifferenceAssistant(
|
||||
input=input, files=files, current_user=current_user
|
||||
)
|
||||
try:
|
||||
difference_assistant.check_input()
|
||||
return await difference_assistant.process_assistant()
|
||||
except ValueError as e:
|
||||
raise HTTPException(status_code=400, detail=str(e))
|
||||
return {"message": "Assistant not found"}
|
||||
|
175
backend/modules/assistant/ito/difference.py
Normal file
175
backend/modules/assistant/ito/difference.py
Normal file
@ -0,0 +1,175 @@
|
||||
import os
|
||||
import tempfile
|
||||
from typing import List
|
||||
|
||||
import nest_asyncio
|
||||
from fastapi import UploadFile
|
||||
from langchain.prompts import HumanMessagePromptTemplate, SystemMessagePromptTemplate
|
||||
from langchain_community.chat_models import ChatLiteLLM
|
||||
from langchain_core.output_parsers import StrOutputParser
|
||||
from langchain_core.prompts import ChatPromptTemplate, PromptTemplate
|
||||
from llama_parse import LlamaParse
|
||||
from logger import get_logger
|
||||
from modules.assistant.dto.inputs import InputAssistant
|
||||
from modules.assistant.dto.outputs import (
|
||||
AssistantOutput,
|
||||
InputFile,
|
||||
Inputs,
|
||||
OutputBrain,
|
||||
OutputEmail,
|
||||
Outputs,
|
||||
)
|
||||
from modules.assistant.ito.ito import ITO
|
||||
from modules.user.entity.user_identity import UserIdentity
|
||||
|
||||
nest_asyncio.apply()
|
||||
|
||||
|
||||
logger = get_logger(__name__)
|
||||
|
||||
|
||||
class DifferenceAssistant(ITO):
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
input: InputAssistant,
|
||||
files: List[UploadFile] = None,
|
||||
current_user: UserIdentity = None,
|
||||
**kwargs,
|
||||
):
|
||||
super().__init__(
|
||||
input=input,
|
||||
files=files,
|
||||
current_user=current_user,
|
||||
**kwargs,
|
||||
)
|
||||
|
||||
def check_input(self):
|
||||
if not self.files:
|
||||
raise ValueError("No file was uploaded")
|
||||
if len(self.files) != 2:
|
||||
raise ValueError("Only two files can be uploaded")
|
||||
if not self.input.inputs.files:
|
||||
raise ValueError("No files key were given in the input")
|
||||
if len(self.input.inputs.files) != 2:
|
||||
raise ValueError("Only two files can be uploaded")
|
||||
if not self.input.inputs.files[0].key == "doc_1":
|
||||
raise ValueError("The key of the first file should be doc_1")
|
||||
if not self.input.inputs.files[1].key == "doc_2":
|
||||
raise ValueError("The key of the second file should be doc_2")
|
||||
if not self.input.inputs.files[0].value:
|
||||
raise ValueError("No file was uploaded")
|
||||
if not (
|
||||
self.input.outputs.brain.activated or self.input.outputs.email.activated
|
||||
):
|
||||
raise ValueError("No output was selected")
|
||||
return True
|
||||
|
||||
async def process_assistant(self):
|
||||
|
||||
document_1 = self.files[0]
|
||||
document_2 = self.files[1]
|
||||
|
||||
# Get the file extensions
|
||||
document_1_ext = os.path.splitext(document_1.filename)[1]
|
||||
document_2_ext = os.path.splitext(document_2.filename)[1]
|
||||
|
||||
# Create temporary files with the same extension as the original files
|
||||
document_1_tmp = tempfile.NamedTemporaryFile(
|
||||
suffix=document_1_ext, delete=False
|
||||
)
|
||||
document_2_tmp = tempfile.NamedTemporaryFile(
|
||||
suffix=document_2_ext, delete=False
|
||||
)
|
||||
|
||||
document_1_tmp.write(document_1.file.read())
|
||||
document_2_tmp.write(document_2.file.read())
|
||||
|
||||
parser = LlamaParse(
|
||||
result_type="markdown" # "markdown" and "text" are available
|
||||
)
|
||||
|
||||
document_1_llama_parsed = parser.load_data(document_1_tmp.name)
|
||||
document_2_llama_parsed = parser.load_data(document_2_tmp.name)
|
||||
|
||||
document_1_tmp.close()
|
||||
document_2_tmp.close()
|
||||
|
||||
document_1_to_langchain = document_1_llama_parsed[0].to_langchain_format()
|
||||
document_2_to_langchain = document_2_llama_parsed[0].to_langchain_format()
|
||||
|
||||
llm = ChatLiteLLM(model="gpt-4-turbo-2024-04-09")
|
||||
|
||||
human_prompt = """Given the following two documents, find the difference between them:
|
||||
|
||||
Document 1:
|
||||
{document_1}
|
||||
Document 2:
|
||||
{document_2}
|
||||
Difference:
|
||||
"""
|
||||
CONDENSE_QUESTION_PROMPT = PromptTemplate.from_template(human_prompt)
|
||||
|
||||
system_message_template = """
|
||||
You are an expert in finding the difference between two documents. You look deeply into what makes the two documents different and provide a detailed analysis if needed of the differences between the two documents.
|
||||
If no differences are found, simply say that there are no differences.
|
||||
"""
|
||||
|
||||
ANSWER_PROMPT = ChatPromptTemplate.from_messages(
|
||||
[
|
||||
SystemMessagePromptTemplate.from_template(system_message_template),
|
||||
HumanMessagePromptTemplate.from_template(human_prompt),
|
||||
]
|
||||
)
|
||||
|
||||
final_inputs = {
|
||||
"document_1": document_1_to_langchain.page_content,
|
||||
"document_2": document_2_to_langchain.page_content,
|
||||
}
|
||||
|
||||
output_parser = StrOutputParser()
|
||||
|
||||
chain = ANSWER_PROMPT | llm | output_parser
|
||||
result = chain.invoke(final_inputs)
|
||||
|
||||
return result
|
||||
|
||||
|
||||
def difference_inputs():
|
||||
output = AssistantOutput(
|
||||
name="difference",
|
||||
description="Finds the difference between two sets of documents",
|
||||
tags=["new"],
|
||||
input_description="Two documents to compare",
|
||||
output_description="The difference between the two documents",
|
||||
icon_url="https://quivr-cms.s3.eu-west-3.amazonaws.com/assistant_summary_434446a2aa.png",
|
||||
inputs=Inputs(
|
||||
files=[
|
||||
InputFile(
|
||||
key="doc_1",
|
||||
allowed_extensions=["pdf"],
|
||||
required=True,
|
||||
description="The first document to compare",
|
||||
),
|
||||
InputFile(
|
||||
key="doc_2",
|
||||
allowed_extensions=["pdf"],
|
||||
required=True,
|
||||
description="The second document to compare",
|
||||
),
|
||||
]
|
||||
),
|
||||
outputs=Outputs(
|
||||
brain=OutputBrain(
|
||||
required=True,
|
||||
description="The brain to which upload the document",
|
||||
type="uuid",
|
||||
),
|
||||
email=OutputEmail(
|
||||
required=True,
|
||||
description="Send the document by email",
|
||||
type="str",
|
||||
),
|
||||
),
|
||||
)
|
||||
return output
|
@ -1,240 +1,250 @@
|
||||
-i https://pypi.org/simple
|
||||
# Ensure PyTorch, along with its required dependencies, is explicitly installed in 'CPU-only' mode to optimize compatibility and performance for systems without GPU support.
|
||||
--extra-index-url https://download.pytorch.org/whl/cpu
|
||||
aiohttp==3.9.3; python_version >= '3.8'
|
||||
aiohttp==3.9.4; python_version >= '3.8'
|
||||
aiosignal==1.3.1; python_version >= '3.7'
|
||||
amqp==5.2.0; python_version >= '3.6'
|
||||
annotated-types==0.6.0; python_version >= '3.8'
|
||||
antlr4-python3-runtime==4.9.3
|
||||
anyio==4.3.0; python_version >= '3.8'
|
||||
argon2-cffi==23.1.0; python_version >= '3.7'
|
||||
argon2-cffi-bindings==21.2.0; python_version >= '3.6'
|
||||
astor==0.8.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
|
||||
asttokens==2.4.1
|
||||
async-generator==1.10; python_version >= '3.5'
|
||||
asyncpg==0.27.0; python_full_version >= '3.7.0'
|
||||
async-timeout==4.0.3; python_full_version < '3.12.0'
|
||||
asyncpg==0.29.0; python_full_version >= '3.8.0'
|
||||
attrs==23.2.0; python_version >= '3.7'
|
||||
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.2.0; python_version >= '3.8'
|
||||
blinker==1.7.0; python_version >= '3.8'
|
||||
boto3==1.34.60; python_version >= '3.8'
|
||||
botocore==1.34.60; python_version >= '3.8'
|
||||
black==24.3.0; python_version >= '3.8'
|
||||
boto3==1.34.83; python_version >= '3.8'
|
||||
botocore==1.34.83; python_version >= '3.8'
|
||||
celery[redis,sqs]==5.3.6; python_version >= '3.8'
|
||||
certifi==2024.2.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'
|
||||
chevron==0.14.0
|
||||
click==8.1.7; python_version >= '3.7'
|
||||
click-didyoumean==0.3.0; python_full_version >= '3.6.2' and python_full_version < '4.0.0'
|
||||
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'
|
||||
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.0; python_version >= '3.9'
|
||||
contourpy==1.2.1; python_version >= '3.9'
|
||||
cryptography==42.0.5; python_version >= '3.7'
|
||||
cssselect==1.2.0; python_version >= '3.7'
|
||||
cycler==0.12.1; python_version >= '3.8'
|
||||
dataclasses-json==0.6.4; python_version >= '3.7' and python_version < '4.0'
|
||||
dataclasses-json-speakeasy==0.5.11; python_version >= '3.7' and python_version < '4.0'
|
||||
debugpy==1.8.1; python_version >= '3.8'
|
||||
decorator==5.1.1; python_version >= '3.5'
|
||||
deprecated==1.2.14; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
|
||||
deprecation==2.1.0
|
||||
dirtyjson==1.0.8
|
||||
distro==1.9.0; python_version >= '3.6'
|
||||
docker==7.0.0; python_version >= '3.8'
|
||||
docx2txt==0.8
|
||||
duckdb==0.9.2; python_full_version >= '3.7.0'
|
||||
ecdsa==0.18.0; python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'
|
||||
duckdb==0.10.1; python_full_version >= '3.7.0'
|
||||
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
|
||||
emoji==2.10.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
|
||||
emoji==2.11.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
|
||||
et-xmlfile==1.1.0; python_version >= '3.6'
|
||||
executing==2.0.1; python_version >= '3.5'
|
||||
faker==19.13.0; python_version >= '3.8'
|
||||
fastapi==0.110.0; python_version >= '3.8'
|
||||
fastapi==0.110.1; python_version >= '3.8'
|
||||
feedfinder2==0.0.4
|
||||
feedparser==6.0.11; python_version >= '3.6'
|
||||
filelock==3.13.1; python_version >= '3.8'
|
||||
filelock==3.13.4; python_version >= '3.8'
|
||||
filetype==1.2.0
|
||||
flake8==7.0.0; python_full_version >= '3.8.1'
|
||||
flake8-black==0.3.6; python_version >= '3.7'
|
||||
flask==3.0.2; python_version >= '3.8'
|
||||
flatbuffers==24.3.7
|
||||
flatbuffers==24.3.25
|
||||
flower==2.0.1; python_version >= '3.7'
|
||||
fonttools==4.49.0; python_version >= '3.8'
|
||||
fonttools==4.51.0; python_version >= '3.8'
|
||||
frozenlist==1.4.1; python_version >= '3.8'
|
||||
fsspec==2024.2.0; python_version >= '3.8'
|
||||
fsspec==2024.3.1; python_version >= '3.8'
|
||||
gitdb==4.0.11; python_version >= '3.7'
|
||||
gitpython==3.1.36; python_version >= '3.7'
|
||||
gotrue==2.4.1; python_version >= '3.8' and python_version < '4.0'
|
||||
gitpython==3.1.43; python_version >= '3.7'
|
||||
gotrue==2.4.2; python_version >= '3.8' and python_version < '4.0'
|
||||
greenlet==3.0.3
|
||||
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'
|
||||
httpcore==1.0.4; python_version >= '3.8'
|
||||
httpx==0.25.2; python_version >= '3.8'
|
||||
huggingface-hub==0.21.4; python_full_version >= '3.8.0'
|
||||
httpcore==1.0.5; python_version >= '3.8'
|
||||
httpx==0.27.0; python_version >= '3.8'
|
||||
huggingface-hub==0.22.2; 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.6; python_version >= '3.5'
|
||||
importlib-metadata==7.0.2; python_version >= '3.8'
|
||||
idna==3.7; python_version >= '3.5'
|
||||
importlib-metadata==7.1.0; python_version >= '3.8'
|
||||
iniconfig==2.0.0; python_version >= '3.7'
|
||||
iopath==0.1.10; python_version >= '3.6'
|
||||
ipython==8.22.2; python_version >= '3.10'
|
||||
itsdangerous==2.1.2; python_version >= '3.7'
|
||||
jedi==0.19.1; python_version >= '3.6'
|
||||
jieba3k==0.35.1
|
||||
jinja2==3.1.3; python_version >= '3.7'
|
||||
jmespath==1.0.1; python_version >= '3.7'
|
||||
joblib==1.3.2; python_version >= '3.7'
|
||||
jq==1.6.0; python_version >= '3.5'
|
||||
joblib==1.4.0; python_version >= '3.8'
|
||||
jq==1.7.0; python_version >= '3.5'
|
||||
jsonpatch==1.33; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6'
|
||||
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.5; python_version >= '3.8'
|
||||
langchain==0.1.11; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
langchain-community==0.0.27; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
langchain-core==0.1.30; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
langchain-openai==0.0.8; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
kombu[sqs]==5.3.7; python_version >= '3.8'
|
||||
langchain==0.1.16; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
langchain-community==0.0.32; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
langchain-core==0.1.42; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
langchain-openai==0.1.3; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
langchain-text-splitters==0.0.1; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
langdetect==1.0.9
|
||||
langfuse==2.20.1; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
langsmith==0.1.23; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
langfuse==2.25.0; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
langsmith==0.1.45; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
layoutparser[layoutmodels,tesseract]==0.3.4; python_version >= '3.6'
|
||||
litellm==1.31.2; 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'
|
||||
lxml==5.1.0; python_version >= '3.6'
|
||||
markdown==3.5.2
|
||||
litellm==1.35.2; 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-index==0.10.28; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
llama-index-agent-openai==0.2.2; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
llama-index-cli==0.1.11; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
llama-index-core==0.10.28; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
llama-index-embeddings-openai==0.1.7; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
llama-index-indices-managed-llama-cloud==0.1.5; 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.15; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
llama-index-multi-modal-llms-openai==0.1.5; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
llama-index-program-openai==0.1.5; 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.16; 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.0; python_version < '4.0' and python_full_version >= '3.8.1'
|
||||
llamaindex-py-client==0.1.17; python_version >= '3.8' and python_version < '4'
|
||||
lxml[html_clean]==5.2.1; python_version >= '3.6'
|
||||
lxml-html-clean==0.1.1
|
||||
markdown==3.6
|
||||
markupsafe==2.1.5; python_version >= '3.7'
|
||||
marshmallow==3.21.1; python_version >= '3.8'
|
||||
matplotlib==3.8.3; python_version >= '3.9'
|
||||
matplotlib-inline==0.1.6; python_version >= '3.5'
|
||||
matplotlib==3.8.4; python_version >= '3.9'
|
||||
mccabe==0.7.0; python_version >= '3.6'
|
||||
monotonic==1.6
|
||||
mpmath==1.3.0
|
||||
msg-parser==1.2.0
|
||||
multidict==6.0.5; python_version >= '3.7'
|
||||
mypy-extensions==1.0.0; python_version >= '3.5'
|
||||
nest-asyncio==1.5.6; python_version >= '3.5'
|
||||
networkx==3.2.1
|
||||
nest-asyncio==1.6.0; python_version >= '3.5'
|
||||
networkx==3.3
|
||||
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.9'
|
||||
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.15.0
|
||||
onnx==1.16.0
|
||||
onnxruntime==1.15.1
|
||||
openai==1.13.3; python_full_version >= '3.7.1'
|
||||
openai==1.17.0; python_full_version >= '3.7.1'
|
||||
opencv-python==4.9.0.80; python_version >= '3.6'
|
||||
openpyxl==3.1.2
|
||||
orjson==3.9.15; python_version >= '3.8'
|
||||
orjson==3.10.0; python_version >= '3.8'
|
||||
packaging==23.2; python_version >= '3.7'
|
||||
pandas==1.5.3; python_version >= '3.8'
|
||||
pandasai==2.0.7; 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'
|
||||
parso==0.8.3; python_version >= '3.6'
|
||||
pandasai==2.0.32; 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'
|
||||
pexpect==4.9.0; sys_platform != 'win32' and sys_platform != 'emscripten'
|
||||
pikepdf==8.13.0
|
||||
pillow==10.2.0; python_version >= '3.8'
|
||||
pillow-heif==0.15.0
|
||||
pikepdf==8.15.0
|
||||
pillow==10.3.0; python_version >= '3.8'
|
||||
pillow-heif==0.16.0
|
||||
platformdirs==4.2.0; python_version >= '3.8'
|
||||
pluggy==1.4.0; python_version >= '3.8'
|
||||
portalocker==2.8.2; python_version >= '3.8'
|
||||
postgrest==0.16.1; python_version >= '3.8' and python_version < '4.0'
|
||||
postgrest==0.16.2; 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'
|
||||
protobuf==4.25.3; python_version >= '3.8'
|
||||
protobuf==5.26.1; 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'
|
||||
psycopg2==2.9.9; python_version >= '3.7'
|
||||
psycopg2-binary==2.9.9; python_version >= '3.7'
|
||||
ptyprocess==0.7.0
|
||||
pure-eval==0.2.2
|
||||
pyasn1==0.5.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'
|
||||
py==1.11.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
|
||||
pyasn1==0.6.0; python_version >= '3.8'
|
||||
pycocotools==2.0.7; python_version >= '3.5'
|
||||
pycodestyle==2.11.1; python_version >= '3.8'
|
||||
pycparser==2.21
|
||||
pycparser==2.22; python_version >= '3.8'
|
||||
pycurl==7.45.3
|
||||
pydantic==2.6.3; python_version >= '3.8'
|
||||
pydantic-core==2.16.3; python_version >= '3.8'
|
||||
pydantic==2.7.0; python_version >= '3.8'
|
||||
pydantic-core==2.18.1; python_version >= '3.8'
|
||||
pydantic-settings==2.2.1; python_version >= '3.8'
|
||||
pyflakes==3.2.0; python_version >= '3.8'
|
||||
pygments==2.17.2; python_version >= '3.7'
|
||||
pypandoc==1.11; python_version >= '3.6'
|
||||
pymupdf==1.24.1; python_version >= '3.8'
|
||||
pymupdfb==1.24.1; python_version >= '3.8'
|
||||
pypandoc==1.13; python_version >= '3.6'
|
||||
pyparsing==3.1.2; python_full_version >= '3.6.8'
|
||||
pypdf==3.9.0; python_version >= '3.6'
|
||||
pypdfium2==4.28.0; python_version >= '3.6'
|
||||
pyright==1.1.316; python_version >= '3.7'
|
||||
pypdf==4.2.0; python_version >= '3.6'
|
||||
pypdfium2==4.29.0; python_version >= '3.6'
|
||||
pyright==1.1.358; python_version >= '3.7'
|
||||
pytesseract==0.3.10; python_version >= '3.7'
|
||||
pytest==8.1.1; python_version >= '3.8'
|
||||
pytest-celery==0.0.0
|
||||
pytest-mock==3.12.0; 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-mock==3.14.0; python_version >= '3.8'
|
||||
python-dateutil==2.9.0.post0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
|
||||
python-docx==1.1.0
|
||||
python-dotenv==1.0.1; python_version >= '3.8'
|
||||
python-iso639==2024.2.7; python_version >= '3.8'
|
||||
python-jose==3.3.0
|
||||
python-magic==0.4.27; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
|
||||
python-multipart==0.0.6; python_version >= '3.7'
|
||||
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'
|
||||
rapidfuzz==3.6.2; python_version >= '3.8'
|
||||
realtime==1.0.2; python_version >= '3.8' and python_version < '4.0'
|
||||
rapidfuzz==3.8.1; python_version >= '3.8'
|
||||
realtime==1.0.3; python_version >= '3.8' and python_version < '4.0'
|
||||
redis==5.0.3; python_version >= '3.7'
|
||||
regex==2023.12.25; python_version >= '3.7'
|
||||
requests==2.31.0; python_version >= '3.7'
|
||||
requests-file==2.0.0
|
||||
resend==0.8.0; python_version >= '3.7'
|
||||
retry==0.9.2
|
||||
rsa==4.9; python_version >= '3.6' and python_version < '4'
|
||||
s3transfer==0.10.0; python_version >= '3.8'
|
||||
s3transfer==0.10.1; python_version >= '3.8'
|
||||
safetensors==0.4.2; python_version >= '3.7'
|
||||
scipy==1.12.0; python_version >= '3.9'
|
||||
sentry-sdk[fastapi]==1.41.0
|
||||
setuptools==69.1.1; python_version >= '3.8'
|
||||
scipy==1.13.0; python_version >= '3.9'
|
||||
sentry-sdk[fastapi]==1.45.0
|
||||
setuptools==69.2.0; python_version >= '3.8'
|
||||
sgmllib3k==1.0.0
|
||||
six==1.16.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
|
||||
smmap==5.0.1; python_version >= '3.7'
|
||||
sniffio==1.3.1; python_version >= '3.7'
|
||||
soupsieve==2.5; python_version >= '3.8'
|
||||
sqlalchemy==2.0.28; python_version >= '3.7'
|
||||
stack-data==0.6.3
|
||||
starlette==0.36.3; python_version >= '3.8'
|
||||
storage3==0.7.3; python_version >= '3.8' and python_version < '4.0'
|
||||
sqlalchemy[asyncio]==2.0.29; 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'
|
||||
strenum==0.4.15
|
||||
supabase==2.4.0; python_version >= '3.8' and python_version < '4.0'
|
||||
supafunc==0.3.3; python_version >= '3.8' and python_version < '4.0'
|
||||
striprtf==0.0.26
|
||||
supabase==2.4.1; 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'
|
||||
tabulate==0.9.0; python_version >= '3.7'
|
||||
tenacity==8.2.3; python_version >= '3.7'
|
||||
tiktoken==0.6.0; python_version >= '3.8'
|
||||
timm==0.9.16; python_version >= '3.8'
|
||||
tinysegmenter==0.3
|
||||
tldextract==5.1.1; python_version >= '3.8'
|
||||
tldextract==5.1.2; python_version >= '3.8'
|
||||
tokenizers==0.15.2; python_version >= '3.7'
|
||||
torch==2.2.1
|
||||
torchvision==0.17.1
|
||||
torch==2.2.2
|
||||
torchvision==0.17.2
|
||||
tornado==6.4; python_version >= '3.8'
|
||||
tqdm==4.66.2; python_version >= '3.7'
|
||||
traitlets==5.14.1; python_version >= '3.8'
|
||||
transformers==4.38.2; python_full_version >= '3.8.0'
|
||||
typing-extensions==4.10.0; python_version >= '3.8'
|
||||
transformers==4.39.3; python_full_version >= '3.8.0'
|
||||
typing-extensions==4.11.0; python_version >= '3.8'
|
||||
typing-inspect==0.9.0
|
||||
tzdata==2024.1; python_version >= '2'
|
||||
unstructured[all-docs]==0.12.5; python_version < '3.12' and python_full_version >= '3.9.0'
|
||||
unstructured-client==0.21.0; python_version >= '3.8'
|
||||
unstructured-inference==0.7.23
|
||||
unstructured[all-docs]==0.13.2; python_version < '3.12' and python_full_version >= '3.9.0'
|
||||
unstructured-client==0.18.0; python_version >= '3.8'
|
||||
unstructured-inference==0.7.25
|
||||
unstructured.pytesseract==0.3.12
|
||||
urllib3==2.0.7; python_version >= '3.10'
|
||||
uvicorn==0.28.0; python_version >= '3.8'
|
||||
urllib3==2.2.1; python_version >= '3.8'
|
||||
uvicorn==0.29.0; python_version >= '3.8'
|
||||
vine==5.1.0; python_version >= '3.6'
|
||||
watchdog==4.0.0; python_version >= '3.8'
|
||||
wcwidth==0.2.13
|
||||
webencodings==0.5.1
|
||||
websockets==11.0.3; python_version >= '3.7'
|
||||
werkzeug==3.0.1; python_version >= '3.8'
|
||||
websockets==12.0; python_version >= '3.8'
|
||||
wrapt==1.16.0; python_version >= '3.6'
|
||||
xlrd==2.0.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'
|
||||
xlsxwriter==3.2.0; python_version >= '3.6'
|
||||
yarl==1.9.4; python_version >= '3.7'
|
||||
zipp==3.17.0; python_version >= '3.8'
|
||||
zipp==3.18.1; python_version >= '3.8'
|
||||
|
Loading…
Reference in New Issue
Block a user