Spaces:
Sleeping
Sleeping
cleanup superfluous code and libraries
Browse files- app.py +7 -19
- pyproject.toml +30 -50
- requirements.txt +210 -0
- uv.lock +7 -119
app.py
CHANGED
@@ -8,11 +8,10 @@ from langchain_core.documents import Document
|
|
8 |
from langchain_community.document_loaders import PyMuPDFLoader
|
9 |
from langchain_experimental.text_splitter import SemanticChunker
|
10 |
from langchain_community.vectorstores import Qdrant
|
11 |
-
from
|
12 |
from langchain_core.output_parsers import StrOutputParser
|
13 |
from langchain_openai import ChatOpenAI
|
14 |
from langchain_core.prompts import ChatPromptTemplate
|
15 |
-
from langgraph.graph import START, StateGraph
|
16 |
from langchain.tools import tool
|
17 |
from langchain.schema import HumanMessage
|
18 |
from typing_extensions import List, TypedDict
|
@@ -27,26 +26,21 @@ OUTPUT_PATH = "output/"
|
|
27 |
os.makedirs(UPLOAD_PATH, exist_ok=True)
|
28 |
os.makedirs(OUTPUT_PATH, exist_ok=True)
|
29 |
|
30 |
-
# Initialize embeddings model
|
31 |
model_id = "Snowflake/snowflake-arctic-embed-m"
|
32 |
embedding_model = HuggingFaceEmbeddings(model_name=model_id)
|
33 |
-
|
34 |
-
# Define semantic chunker
|
35 |
semantic_splitter = SemanticChunker(embedding_model)
|
36 |
-
|
37 |
-
# Initialize LLM
|
38 |
llm = ChatOpenAI(model="gpt-4o-mini")
|
39 |
|
40 |
-
|
|
|
41 |
export_prompt = """
|
42 |
CONTEXT:
|
|
|
43 |
{context}
|
44 |
|
45 |
QUERY:
|
46 |
{question}
|
47 |
|
48 |
-
You are a helpful assistant. Use the available context to answer the question.
|
49 |
-
|
50 |
Between these two files containing protocols, identify and match **entire assessment sections** based on conceptual similarity. Do NOT match individual questions.
|
51 |
|
52 |
### **Output Format:**
|
@@ -101,6 +95,8 @@ Provide a natural-language response using the given information. If you do not k
|
|
101 |
query_prompt = ChatPromptTemplate.from_template(QUERY_PROMPT)
|
102 |
|
103 |
|
|
|
|
|
104 |
@tool
|
105 |
def document_query_tool(question: str) -> str:
|
106 |
"""Retrieves relevant document sections and answers questions based on the uploaded documents."""
|
@@ -122,8 +118,6 @@ def document_query_tool(question: str) -> str:
|
|
122 |
"context": retrieved_docs
|
123 |
}
|
124 |
|
125 |
-
|
126 |
-
|
127 |
@tool
|
128 |
def document_comparison_tool(question: str) -> str:
|
129 |
"""Compares documents, identifies matched elements, exports them as JSON, formats into CSV, and provides a download link."""
|
@@ -158,12 +152,6 @@ def document_comparison_tool(question: str) -> str:
|
|
158 |
except json.JSONDecodeError:
|
159 |
return "Error: Response is not valid JSON."
|
160 |
|
161 |
-
|
162 |
-
|
163 |
-
tool_belt = [document_query_tool, document_comparison_tool]
|
164 |
-
model = ChatOpenAI(model="gpt-4o", temperature=0)
|
165 |
-
model = model.bind_tools(tool_belt)
|
166 |
-
|
167 |
async def process_files(files: list[cl.File]):
|
168 |
documents_with_metadata = []
|
169 |
for file in files:
|
@@ -226,4 +214,4 @@ async def handle_message(message: cl.Message):
|
|
226 |
await cl.Message(file_path).send()
|
227 |
else:
|
228 |
response_text = document_query_tool.invoke(user_input)
|
229 |
-
await cl.Message(response_text["messages"][0].content).send()
|
|
|
8 |
from langchain_community.document_loaders import PyMuPDFLoader
|
9 |
from langchain_experimental.text_splitter import SemanticChunker
|
10 |
from langchain_community.vectorstores import Qdrant
|
11 |
+
from langchain_huggingface import HuggingFaceEmbeddings
|
12 |
from langchain_core.output_parsers import StrOutputParser
|
13 |
from langchain_openai import ChatOpenAI
|
14 |
from langchain_core.prompts import ChatPromptTemplate
|
|
|
15 |
from langchain.tools import tool
|
16 |
from langchain.schema import HumanMessage
|
17 |
from typing_extensions import List, TypedDict
|
|
|
26 |
os.makedirs(UPLOAD_PATH, exist_ok=True)
|
27 |
os.makedirs(OUTPUT_PATH, exist_ok=True)
|
28 |
|
|
|
29 |
model_id = "Snowflake/snowflake-arctic-embed-m"
|
30 |
embedding_model = HuggingFaceEmbeddings(model_name=model_id)
|
|
|
|
|
31 |
semantic_splitter = SemanticChunker(embedding_model)
|
|
|
|
|
32 |
llm = ChatOpenAI(model="gpt-4o-mini")
|
33 |
|
34 |
+
|
35 |
+
# comparison prompt
|
36 |
export_prompt = """
|
37 |
CONTEXT:
|
38 |
+
CONTEXT:
|
39 |
{context}
|
40 |
|
41 |
QUERY:
|
42 |
{question}
|
43 |
|
|
|
|
|
44 |
Between these two files containing protocols, identify and match **entire assessment sections** based on conceptual similarity. Do NOT match individual questions.
|
45 |
|
46 |
### **Output Format:**
|
|
|
95 |
query_prompt = ChatPromptTemplate.from_template(QUERY_PROMPT)
|
96 |
|
97 |
|
98 |
+
## tool configurations
|
99 |
+
|
100 |
@tool
|
101 |
def document_query_tool(question: str) -> str:
|
102 |
"""Retrieves relevant document sections and answers questions based on the uploaded documents."""
|
|
|
118 |
"context": retrieved_docs
|
119 |
}
|
120 |
|
|
|
|
|
121 |
@tool
|
122 |
def document_comparison_tool(question: str) -> str:
|
123 |
"""Compares documents, identifies matched elements, exports them as JSON, formats into CSV, and provides a download link."""
|
|
|
152 |
except json.JSONDecodeError:
|
153 |
return "Error: Response is not valid JSON."
|
154 |
|
|
|
|
|
|
|
|
|
|
|
|
|
155 |
async def process_files(files: list[cl.File]):
|
156 |
documents_with_metadata = []
|
157 |
for file in files:
|
|
|
214 |
await cl.Message(file_path).send()
|
215 |
else:
|
216 |
response_text = document_query_tool.invoke(user_input)
|
217 |
+
await cl.Message(response_text["messages"][0].content).send()
|
pyproject.toml
CHANGED
@@ -5,53 +5,33 @@ description = "midterm POC huggingface project"
|
|
5 |
readme = "README.md"
|
6 |
requires-python = ">=3.13"
|
7 |
dependencies = [
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
#"langgraph>=0.2.67",
|
39 |
-
"langsmith>=0.3.1",
|
40 |
-
"lxml>=5.3.0",
|
41 |
-
###notebook
|
42 |
-
"ipykernel",
|
43 |
-
"ipywidgets",
|
44 |
-
"IProgress",
|
45 |
-
"huggingface_hub",
|
46 |
-
"wandb",
|
47 |
-
"transformers",
|
48 |
-
"accelerate",
|
49 |
-
"torch",
|
50 |
-
#### ragas
|
51 |
-
#"ragas==0.2.10"
|
52 |
-
#"FAISS"
|
53 |
-
#remove only used for testing
|
54 |
-
#"cohere",
|
55 |
-
#"langchain_cohere",
|
56 |
-
#"arxiv"
|
57 |
-
]
|
|
|
5 |
readme = "README.md"
|
6 |
requires-python = ">=3.13"
|
7 |
dependencies = [
|
8 |
+
"IProgress",
|
9 |
+
"PyMuPDF",
|
10 |
+
"accelerate",
|
11 |
+
"chainlit",
|
12 |
+
"huggingface_hub",
|
13 |
+
"ipykernel",
|
14 |
+
"ipywidgets",
|
15 |
+
"langchain",
|
16 |
+
"langchain-community",
|
17 |
+
"langchain-core",
|
18 |
+
"langchain-experimental",
|
19 |
+
"langchain-huggingface",
|
20 |
+
"langchain-openai",
|
21 |
+
"langchain-qdrant",
|
22 |
+
"langchain-text-splitters",
|
23 |
+
"langgraph",
|
24 |
+
"langsmith",
|
25 |
+
"lxml",
|
26 |
+
"openai",
|
27 |
+
"pymupdf",
|
28 |
+
"pypdf2",
|
29 |
+
"qdrant-client",
|
30 |
+
"ragas",
|
31 |
+
"torch",
|
32 |
+
"transformers",
|
33 |
+
"tqdm",
|
34 |
+
"unstructured",
|
35 |
+
"wandb",
|
36 |
+
"websockets"
|
37 |
+
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
requirements.txt
ADDED
@@ -0,0 +1,210 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
accelerate==1.4.0
|
2 |
+
aiofiles==23.2.1
|
3 |
+
aiohappyeyeballs==2.4.6
|
4 |
+
aiohttp==3.11.13
|
5 |
+
aiosignal==1.3.2
|
6 |
+
annotated-types==0.7.0
|
7 |
+
anyio==4.8.0
|
8 |
+
appdirs==1.4.4
|
9 |
+
asttokens==3.0.0
|
10 |
+
asyncer==0.0.7
|
11 |
+
attrs==25.1.0
|
12 |
+
backoff==2.2.1
|
13 |
+
beautifulsoup4==4.13.3
|
14 |
+
bidict==0.23.1
|
15 |
+
certifi==2025.1.31
|
16 |
+
cffi==1.17.1
|
17 |
+
chainlit==2.2.1
|
18 |
+
chardet==5.2.0
|
19 |
+
charset-normalizer==3.4.1
|
20 |
+
chevron==0.14.0
|
21 |
+
click==8.1.8
|
22 |
+
comm==0.2.2
|
23 |
+
cryptography==44.0.1
|
24 |
+
dataclasses-json==0.6.7
|
25 |
+
datasets==3.3.2
|
26 |
+
debugpy==1.8.12
|
27 |
+
decorator==5.2.1
|
28 |
+
deepdiff==8.2.0
|
29 |
+
deprecated==1.2.18
|
30 |
+
dill==0.3.8
|
31 |
+
diskcache==5.6.3
|
32 |
+
distro==1.9.0
|
33 |
+
docker-pycreds==0.4.0
|
34 |
+
emoji==2.14.1
|
35 |
+
executing==2.2.0
|
36 |
+
fastapi==0.115.8
|
37 |
+
filelock==3.17.0
|
38 |
+
filetype==1.2.0
|
39 |
+
frozenlist==1.5.0
|
40 |
+
fsspec==2024.12.0
|
41 |
+
gitdb==4.0.12
|
42 |
+
gitpython==3.1.44
|
43 |
+
googleapis-common-protos==1.68.0
|
44 |
+
greenlet==3.1.1
|
45 |
+
grpcio==1.70.0
|
46 |
+
grpcio-tools==1.70.0
|
47 |
+
h11==0.14.0
|
48 |
+
h2==4.2.0
|
49 |
+
hpack==4.1.0
|
50 |
+
httpcore==1.0.7
|
51 |
+
httpx==0.28.1
|
52 |
+
httpx-sse==0.4.0
|
53 |
+
huggingface-hub==0.29.1
|
54 |
+
hyperframe==6.1.0
|
55 |
+
idna==3.10
|
56 |
+
importlib-metadata==8.5.0
|
57 |
+
iprogress==0.4
|
58 |
+
ipykernel==6.29.5
|
59 |
+
ipython==8.32.0
|
60 |
+
ipywidgets==8.1.5
|
61 |
+
jedi==0.19.2
|
62 |
+
jinja2==3.1.5
|
63 |
+
jiter==0.8.2
|
64 |
+
joblib==1.4.2
|
65 |
+
jsonpatch==1.33
|
66 |
+
jsonpath-python==1.0.6
|
67 |
+
jsonpointer==3.0.0
|
68 |
+
jupyter-client==8.6.3
|
69 |
+
jupyter-core==5.7.2
|
70 |
+
jupyterlab-widgets==3.0.13
|
71 |
+
langchain==0.3.15
|
72 |
+
langchain-community==0.3.15
|
73 |
+
langchain-core==0.3.31
|
74 |
+
langchain-experimental==0.3.4
|
75 |
+
langchain-huggingface==0.1.2
|
76 |
+
langchain-openai==0.3.1
|
77 |
+
langchain-qdrant==0.2.0
|
78 |
+
langchain-text-splitters==0.3.5
|
79 |
+
langdetect==1.0.9
|
80 |
+
langgraph==0.2.74
|
81 |
+
langgraph-checkpoint==2.0.16
|
82 |
+
langgraph-sdk==0.1.53
|
83 |
+
langsmith==0.3.10
|
84 |
+
lazify==0.4.0
|
85 |
+
literalai==0.1.103
|
86 |
+
lxml==5.3.1
|
87 |
+
markupsafe==3.0.2
|
88 |
+
marshmallow==3.26.1
|
89 |
+
matplotlib-inline==0.1.7
|
90 |
+
mpmath==1.3.0
|
91 |
+
msgpack==1.1.0
|
92 |
+
multidict==6.1.0
|
93 |
+
multiprocess==0.70.16
|
94 |
+
mypy-extensions==1.0.0
|
95 |
+
nest-asyncio==1.6.0
|
96 |
+
networkx==3.4.2
|
97 |
+
nltk==3.9.1
|
98 |
+
numpy==2.2.3
|
99 |
+
nvidia-cublas-cu12==12.4.5.8
|
100 |
+
nvidia-cuda-cupti-cu12==12.4.127
|
101 |
+
nvidia-cuda-nvrtc-cu12==12.4.127
|
102 |
+
nvidia-cuda-runtime-cu12==12.4.127
|
103 |
+
nvidia-cudnn-cu12==9.1.0.70
|
104 |
+
nvidia-cufft-cu12==11.2.1.3
|
105 |
+
nvidia-curand-cu12==10.3.5.147
|
106 |
+
nvidia-cusolver-cu12==11.6.1.9
|
107 |
+
nvidia-cusparse-cu12==12.3.1.170
|
108 |
+
nvidia-cusparselt-cu12==0.6.2
|
109 |
+
nvidia-nccl-cu12==2.21.5
|
110 |
+
nvidia-nvjitlink-cu12==12.4.127
|
111 |
+
nvidia-nvtx-cu12==12.4.127
|
112 |
+
openai==1.64.0
|
113 |
+
opentelemetry-api==1.29.0
|
114 |
+
opentelemetry-exporter-otlp==1.29.0
|
115 |
+
opentelemetry-exporter-otlp-proto-common==1.29.0
|
116 |
+
opentelemetry-exporter-otlp-proto-grpc==1.29.0
|
117 |
+
opentelemetry-exporter-otlp-proto-http==1.29.0
|
118 |
+
opentelemetry-instrumentation==0.50b0
|
119 |
+
opentelemetry-proto==1.29.0
|
120 |
+
opentelemetry-sdk==1.29.0
|
121 |
+
opentelemetry-semantic-conventions==0.50b0
|
122 |
+
orderly-set==5.3.0
|
123 |
+
orjson==3.10.15
|
124 |
+
packaging==24.2
|
125 |
+
pandas==2.2.3
|
126 |
+
parso==0.8.4
|
127 |
+
pexpect==4.9.0
|
128 |
+
pillow==11.1.0
|
129 |
+
platformdirs==4.3.6
|
130 |
+
portalocker==2.10.1
|
131 |
+
prompt-toolkit==3.0.50
|
132 |
+
propcache==0.3.0
|
133 |
+
protobuf==5.29.3
|
134 |
+
psutil==7.0.0
|
135 |
+
ptyprocess==0.7.0
|
136 |
+
pure-eval==0.2.3
|
137 |
+
pyarrow==19.0.1
|
138 |
+
pycparser==2.22
|
139 |
+
pydantic==2.10.6
|
140 |
+
pydantic-core==2.27.2
|
141 |
+
pydantic-settings==2.8.0
|
142 |
+
pygments==2.19.1
|
143 |
+
pyjwt==2.10.1
|
144 |
+
pymupdf==1.25.3
|
145 |
+
pypdf==5.3.0
|
146 |
+
pypdf2==3.0.1
|
147 |
+
python-dateutil==2.9.0.post0
|
148 |
+
python-dotenv==1.0.1
|
149 |
+
python-engineio==4.11.2
|
150 |
+
python-iso639==2025.2.18
|
151 |
+
python-magic==0.4.27
|
152 |
+
python-multipart==0.0.18
|
153 |
+
python-socketio==5.12.1
|
154 |
+
pytz==2025.1
|
155 |
+
pyyaml==6.0.2
|
156 |
+
pyzmq==26.2.1
|
157 |
+
qdrant-client==1.13.2
|
158 |
+
ragas==0.2.13
|
159 |
+
rapidfuzz==3.12.1
|
160 |
+
regex==2024.11.6
|
161 |
+
requests==2.32.3
|
162 |
+
requests-toolbelt==1.0.0
|
163 |
+
safetensors==0.5.2
|
164 |
+
scikit-learn==1.6.1
|
165 |
+
scipy==1.15.2
|
166 |
+
sentence-transformers==3.4.1
|
167 |
+
sentry-sdk==2.22.0
|
168 |
+
setproctitle==1.3.5
|
169 |
+
setuptools==75.8.0
|
170 |
+
simple-websocket==1.1.0
|
171 |
+
six==1.17.0
|
172 |
+
smmap==5.0.2
|
173 |
+
sniffio==1.3.1
|
174 |
+
soupsieve==2.6
|
175 |
+
sqlalchemy==2.0.38
|
176 |
+
stack-data==0.6.3
|
177 |
+
starlette==0.41.3
|
178 |
+
sympy==1.13.1
|
179 |
+
syncer==2.0.3
|
180 |
+
tabulate==0.9.0
|
181 |
+
tenacity==9.0.0
|
182 |
+
threadpoolctl==3.5.0
|
183 |
+
tiktoken==0.9.0
|
184 |
+
tokenizers==0.21.0
|
185 |
+
tomli==2.2.1
|
186 |
+
torch==2.6.0
|
187 |
+
tornado==6.4.2
|
188 |
+
tqdm==4.67.1
|
189 |
+
traitlets==5.14.3
|
190 |
+
transformers==4.49.0
|
191 |
+
triton==3.2.0
|
192 |
+
typing-extensions==4.12.2
|
193 |
+
typing-inspect==0.9.0
|
194 |
+
tzdata==2025.1
|
195 |
+
unstructured==0.14.8
|
196 |
+
unstructured-client==0.25.9
|
197 |
+
uptrace==1.29.0
|
198 |
+
urllib3==2.3.0
|
199 |
+
uvicorn==0.34.0
|
200 |
+
wandb==0.19.7
|
201 |
+
watchfiles==0.20.0
|
202 |
+
wcwidth==0.2.13
|
203 |
+
websockets==15.0
|
204 |
+
widgetsnbextension==4.0.13
|
205 |
+
wrapt==1.17.2
|
206 |
+
wsproto==1.2.0
|
207 |
+
xxhash==3.5.0
|
208 |
+
yarl==1.18.3
|
209 |
+
zipp==3.21.0
|
210 |
+
zstandard==0.23.0
|
uv.lock
CHANGED
@@ -126,19 +126,6 @@ wheels = [
|
|
126 |
{ url = "https://files.pythonhosted.org/packages/81/29/5ecc3a15d5a33e31b26c11426c45c501e439cb865d0bff96315d86443b78/appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c", size = 4321 },
|
127 |
]
|
128 |
|
129 |
-
[[package]]
|
130 |
-
name = "arxiv"
|
131 |
-
version = "2.1.3"
|
132 |
-
source = { registry = "https://pypi.org/simple" }
|
133 |
-
dependencies = [
|
134 |
-
{ name = "feedparser" },
|
135 |
-
{ name = "requests" },
|
136 |
-
]
|
137 |
-
sdist = { url = "https://files.pythonhosted.org/packages/fe/59/fe41f54bdfed776c2e9bcd6289e4c71349eb938241d89b4c97d0f33e8013/arxiv-2.1.3.tar.gz", hash = "sha256:32365221994d2cf05657c1fadf63a26efc8ccdec18590281ee03515bfef8bc4e", size = 16747 }
|
138 |
-
wheels = [
|
139 |
-
{ url = "https://files.pythonhosted.org/packages/b7/7b/7bf42178d227b26d3daf94cdd22a72a4ed5bf235548c4f5aea49c51c6458/arxiv-2.1.3-py3-none-any.whl", hash = "sha256:6f43673ab770a9e848d7d4fc1894824df55edeac3c3572ea280c9ba2e3c0f39f", size = 11478 },
|
140 |
-
]
|
141 |
-
|
142 |
[[package]]
|
143 |
name = "asttokens"
|
144 |
version = "3.0.0"
|
@@ -316,26 +303,6 @@ wheels = [
|
|
316 |
{ url = "https://files.pythonhosted.org/packages/7e/d4/7ebdbd03970677812aac39c869717059dbb71a4cfc033ca6e5221787892c/click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2", size = 98188 },
|
317 |
]
|
318 |
|
319 |
-
[[package]]
|
320 |
-
name = "cohere"
|
321 |
-
version = "5.13.12"
|
322 |
-
source = { registry = "https://pypi.org/simple" }
|
323 |
-
dependencies = [
|
324 |
-
{ name = "fastavro" },
|
325 |
-
{ name = "httpx" },
|
326 |
-
{ name = "httpx-sse" },
|
327 |
-
{ name = "pydantic" },
|
328 |
-
{ name = "pydantic-core" },
|
329 |
-
{ name = "requests" },
|
330 |
-
{ name = "tokenizers" },
|
331 |
-
{ name = "types-requests" },
|
332 |
-
{ name = "typing-extensions" },
|
333 |
-
]
|
334 |
-
sdist = { url = "https://files.pythonhosted.org/packages/f4/48/795c53b25b08ec353cc4f48dc5c199ac4615b3c331e716ac50c7cb07034c/cohere-5.13.12.tar.gz", hash = "sha256:97bb9ac107e580780b941acbabd3aa5e71960e6835398292c46aaa8a0a4cab88", size = 132860 }
|
335 |
-
wheels = [
|
336 |
-
{ url = "https://files.pythonhosted.org/packages/50/c6/cffec9284d9713d28c6235a653a9a34c49b0f880f00cfa002252cdb8d033/cohere-5.13.12-py3-none-any.whl", hash = "sha256:2a043591a3e5280b47716a6b311e4c7f58e799364113a9cb81b50cd4f6c95f7e", size = 252856 },
|
337 |
-
]
|
338 |
-
|
339 |
[[package]]
|
340 |
name = "colorama"
|
341 |
version = "0.4.6"
|
@@ -547,32 +514,6 @@ wheels = [
|
|
547 |
{ url = "https://files.pythonhosted.org/packages/8f/7d/2d6ce181d7a5f51dedb8c06206cbf0ec026a99bf145edd309f9e17c3282f/fastapi-0.115.8-py3-none-any.whl", hash = "sha256:753a96dd7e036b34eeef8babdfcfe3f28ff79648f86551eb36bfc1b0bf4a8cbf", size = 94814 },
|
548 |
]
|
549 |
|
550 |
-
[[package]]
|
551 |
-
name = "fastavro"
|
552 |
-
version = "1.10.0"
|
553 |
-
source = { registry = "https://pypi.org/simple" }
|
554 |
-
sdist = { url = "https://files.pythonhosted.org/packages/f3/67/7121d2221e998706cac00fa779ec44c1c943cb65e8a7ed1bd57d78d93f2c/fastavro-1.10.0.tar.gz", hash = "sha256:47bf41ac6d52cdfe4a3da88c75a802321321b37b663a900d12765101a5d6886f", size = 987970 }
|
555 |
-
wheels = [
|
556 |
-
{ url = "https://files.pythonhosted.org/packages/c9/c4/163cf154cc694c2dccc70cd6796db6214ac668a1260bf0310401dad188dc/fastavro-1.10.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:82263af0adfddb39c85f9517d736e1e940fe506dfcc35bc9ab9f85e0fa9236d8", size = 1022741 },
|
557 |
-
{ url = "https://files.pythonhosted.org/packages/38/01/a24598f5f31b8582a92fe9c41bf91caeed50d5b5eaa7576e6f8b23cb488d/fastavro-1.10.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:566c193109ff0ff84f1072a165b7106c4f96050078a4e6ac7391f81ca1ef3efa", size = 3237421 },
|
558 |
-
{ url = "https://files.pythonhosted.org/packages/a7/bf/08bcf65cfb7feb0e5b1329fafeb4a9b95b7b5ec723ba58c7dbd0d04ded34/fastavro-1.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e400d2e55d068404d9fea7c5021f8b999c6f9d9afa1d1f3652ec92c105ffcbdd", size = 3300222 },
|
559 |
-
{ url = "https://files.pythonhosted.org/packages/53/4d/a6c25f3166328f8306ec2e6be1123ed78a55b8ab774a43a661124508881f/fastavro-1.10.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9b8227497f71565270f9249fc9af32a93644ca683a0167cfe66d203845c3a038", size = 3233276 },
|
560 |
-
{ url = "https://files.pythonhosted.org/packages/47/1c/b2b2ce2bf866a248ae23e96a87b3b8369427ff79be9112073039bee1d245/fastavro-1.10.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8e62d04c65461b30ac6d314e4197ad666371e97ae8cb2c16f971d802f6c7f514", size = 3388936 },
|
561 |
-
{ url = "https://files.pythonhosted.org/packages/1f/2c/43927e22a2d57587b3aa09765098a6d833246b672d34c10c5f135414745a/fastavro-1.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:86baf8c9740ab570d0d4d18517da71626fe9be4d1142bea684db52bd5adb078f", size = 483967 },
|
562 |
-
]
|
563 |
-
|
564 |
-
[[package]]
|
565 |
-
name = "feedparser"
|
566 |
-
version = "6.0.11"
|
567 |
-
source = { registry = "https://pypi.org/simple" }
|
568 |
-
dependencies = [
|
569 |
-
{ name = "sgmllib3k" },
|
570 |
-
]
|
571 |
-
sdist = { url = "https://files.pythonhosted.org/packages/ff/aa/7af346ebeb42a76bf108027fe7f3328bb4e57a3a96e53e21fd9ef9dd6dd0/feedparser-6.0.11.tar.gz", hash = "sha256:c9d0407b64c6f2a065d0ebb292c2b35c01050cc0dc33757461aaabdc4c4184d5", size = 286197 }
|
572 |
-
wheels = [
|
573 |
-
{ url = "https://files.pythonhosted.org/packages/7c/d4/8c31aad9cc18f451c49f7f9cfb5799dadffc88177f7917bc90a66459b1d7/feedparser-6.0.11-py3-none-any.whl", hash = "sha256:0be7ee7b395572b19ebeb1d6aafb0028dee11169f1c934e0ed67d54992f4ad45", size = 81343 },
|
574 |
-
]
|
575 |
-
|
576 |
[[package]]
|
577 |
name = "filelock"
|
578 |
version = "3.17.0"
|
@@ -1067,22 +1008,6 @@ wheels = [
|
|
1067 |
{ url = "https://files.pythonhosted.org/packages/3e/cb/a375aa0a8e5ab806766ea6f167088bbb9b8aea836031e5f80f6f492b1f8d/langchain-0.3.15-py3-none-any.whl", hash = "sha256:2657735184054cae8181ac43fce6cbc9ee64ca81a2ad2aed3ccd6e5d6fe1f19f", size = 1009589 },
|
1068 |
]
|
1069 |
|
1070 |
-
[[package]]
|
1071 |
-
name = "langchain-cohere"
|
1072 |
-
version = "0.4.2"
|
1073 |
-
source = { registry = "https://pypi.org/simple" }
|
1074 |
-
dependencies = [
|
1075 |
-
{ name = "cohere" },
|
1076 |
-
{ name = "langchain-community" },
|
1077 |
-
{ name = "langchain-core" },
|
1078 |
-
{ name = "pydantic" },
|
1079 |
-
{ name = "types-pyyaml" },
|
1080 |
-
]
|
1081 |
-
sdist = { url = "https://files.pythonhosted.org/packages/24/c8/5bbc627c88231317f2c6f463a44b40fb1cb2cf0a0f61cdf4e2ee95f9eb28/langchain_cohere-0.4.2.tar.gz", hash = "sha256:96971055a806b63e388d08e4663fc16957cf07ad234a1524ef31f039790bb35b", size = 36391 }
|
1082 |
-
wheels = [
|
1083 |
-
{ url = "https://files.pythonhosted.org/packages/f4/f0/0f2e4dc99c52d458cd23f7d8d18bb25280ff49529a4fd34e59a92faf6d46/langchain_cohere-0.4.2-py3-none-any.whl", hash = "sha256:1d4e5f9212daa64d997785de7a79e3e1c3971acba1d987f1a99a9a1be6acfb40", size = 42205 },
|
1084 |
-
]
|
1085 |
-
|
1086 |
[[package]]
|
1087 |
name = "langchain-community"
|
1088 |
version = "0.3.15"
|
@@ -1363,15 +1288,12 @@ version = "0.1.0"
|
|
1363 |
source = { virtual = "." }
|
1364 |
dependencies = [
|
1365 |
{ name = "accelerate" },
|
1366 |
-
{ name = "arxiv" },
|
1367 |
{ name = "chainlit" },
|
1368 |
-
{ name = "cohere" },
|
1369 |
{ name = "huggingface-hub" },
|
1370 |
{ name = "iprogress" },
|
1371 |
{ name = "ipykernel" },
|
1372 |
{ name = "ipywidgets" },
|
1373 |
{ name = "langchain" },
|
1374 |
-
{ name = "langchain-cohere" },
|
1375 |
{ name = "langchain-community" },
|
1376 |
{ name = "langchain-core" },
|
1377 |
{ name = "langchain-experimental" },
|
@@ -1398,32 +1320,25 @@ dependencies = [
|
|
1398 |
[package.metadata]
|
1399 |
requires-dist = [
|
1400 |
{ name = "accelerate" },
|
1401 |
-
{ name = "arxiv" },
|
1402 |
{ name = "chainlit" },
|
1403 |
-
{ name = "cohere" },
|
1404 |
{ name = "huggingface-hub" },
|
1405 |
{ name = "iprogress" },
|
1406 |
{ name = "ipykernel" },
|
1407 |
{ name = "ipywidgets" },
|
1408 |
{ name = "langchain" },
|
1409 |
-
{ name = "langchain", specifier = "==0.3.15" },
|
1410 |
-
{ name = "langchain-cohere" },
|
1411 |
{ name = "langchain-community" },
|
1412 |
-
{ name = "langchain-community", specifier = "==0.3.15" },
|
1413 |
{ name = "langchain-core" },
|
1414 |
-
{ name = "langchain-core", specifier = "==0.3.31" },
|
1415 |
{ name = "langchain-experimental" },
|
1416 |
-
{ name = "langchain-huggingface"
|
1417 |
{ name = "langchain-openai" },
|
1418 |
-
{ name = "langchain-
|
1419 |
-
{ name = "langchain-
|
1420 |
-
{ name = "langchain-text-splitters", specifier = ">=0.3.5" },
|
1421 |
{ name = "langgraph" },
|
1422 |
-
{ name = "langsmith"
|
1423 |
-
{ name = "lxml"
|
1424 |
-
{ name = "openai"
|
1425 |
{ name = "pymupdf" },
|
1426 |
-
{ name = "pypdf2"
|
1427 |
{ name = "qdrant-client" },
|
1428 |
{ name = "ragas" },
|
1429 |
{ name = "torch" },
|
@@ -2593,12 +2508,6 @@ wheels = [
|
|
2593 |
{ url = "https://files.pythonhosted.org/packages/69/8a/b9dc7678803429e4a3bc9ba462fa3dd9066824d3c607490235c6a796be5a/setuptools-75.8.0-py3-none-any.whl", hash = "sha256:e3982f444617239225d675215d51f6ba05f845d4eec313da4418fdbb56fb27e3", size = 1228782 },
|
2594 |
]
|
2595 |
|
2596 |
-
[[package]]
|
2597 |
-
name = "sgmllib3k"
|
2598 |
-
version = "1.0.0"
|
2599 |
-
source = { registry = "https://pypi.org/simple" }
|
2600 |
-
sdist = { url = "https://files.pythonhosted.org/packages/9e/bd/3704a8c3e0942d711c1299ebf7b9091930adae6675d7c8f476a7ce48653c/sgmllib3k-1.0.0.tar.gz", hash = "sha256:7868fb1c8bfa764c1ac563d3cf369c381d1325d36124933a726f29fcdaa812e9", size = 5750 }
|
2601 |
-
|
2602 |
[[package]]
|
2603 |
name = "simple-websocket"
|
2604 |
version = "1.1.0"
|
@@ -2903,27 +2812,6 @@ wheels = [
|
|
2903 |
{ url = "https://files.pythonhosted.org/packages/c7/30/37a3384d1e2e9320331baca41e835e90a3767303642c7a80d4510152cbcf/triton-3.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e5dfa23ba84541d7c0a531dfce76d8bcd19159d50a4a8b14ad01e91734a5c1b0", size = 253154278 },
|
2904 |
]
|
2905 |
|
2906 |
-
[[package]]
|
2907 |
-
name = "types-pyyaml"
|
2908 |
-
version = "6.0.12.20241230"
|
2909 |
-
source = { registry = "https://pypi.org/simple" }
|
2910 |
-
sdist = { url = "https://files.pythonhosted.org/packages/9a/f9/4d566925bcf9396136c0a2e5dc7e230ff08d86fa011a69888dd184469d80/types_pyyaml-6.0.12.20241230.tar.gz", hash = "sha256:7f07622dbd34bb9c8b264fe860a17e0efcad00d50b5f27e93984909d9363498c", size = 17078 }
|
2911 |
-
wheels = [
|
2912 |
-
{ url = "https://files.pythonhosted.org/packages/e8/c1/48474fbead512b70ccdb4f81ba5eb4a58f69d100ba19f17c92c0c4f50ae6/types_PyYAML-6.0.12.20241230-py3-none-any.whl", hash = "sha256:fa4d32565219b68e6dee5f67534c722e53c00d1cfc09c435ef04d7353e1e96e6", size = 20029 },
|
2913 |
-
]
|
2914 |
-
|
2915 |
-
[[package]]
|
2916 |
-
name = "types-requests"
|
2917 |
-
version = "2.32.0.20241016"
|
2918 |
-
source = { registry = "https://pypi.org/simple" }
|
2919 |
-
dependencies = [
|
2920 |
-
{ name = "urllib3" },
|
2921 |
-
]
|
2922 |
-
sdist = { url = "https://files.pythonhosted.org/packages/fa/3c/4f2a430c01a22abd49a583b6b944173e39e7d01b688190a5618bd59a2e22/types-requests-2.32.0.20241016.tar.gz", hash = "sha256:0d9cad2f27515d0e3e3da7134a1b6f28fb97129d86b867f24d9c726452634d95", size = 18065 }
|
2923 |
-
wheels = [
|
2924 |
-
{ url = "https://files.pythonhosted.org/packages/d7/01/485b3026ff90e5190b5e24f1711522e06c79f4a56c8f4b95848ac072e20f/types_requests-2.32.0.20241016-py3-none-any.whl", hash = "sha256:4195d62d6d3e043a4eaaf08ff8a62184584d2e8684e9d2aa178c7915a7da3747", size = 15836 },
|
2925 |
-
]
|
2926 |
-
|
2927 |
[[package]]
|
2928 |
name = "typing-extensions"
|
2929 |
version = "4.12.2"
|
|
|
126 |
{ url = "https://files.pythonhosted.org/packages/81/29/5ecc3a15d5a33e31b26c11426c45c501e439cb865d0bff96315d86443b78/appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c", size = 4321 },
|
127 |
]
|
128 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
129 |
[[package]]
|
130 |
name = "asttokens"
|
131 |
version = "3.0.0"
|
|
|
303 |
{ url = "https://files.pythonhosted.org/packages/7e/d4/7ebdbd03970677812aac39c869717059dbb71a4cfc033ca6e5221787892c/click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2", size = 98188 },
|
304 |
]
|
305 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
306 |
[[package]]
|
307 |
name = "colorama"
|
308 |
version = "0.4.6"
|
|
|
514 |
{ url = "https://files.pythonhosted.org/packages/8f/7d/2d6ce181d7a5f51dedb8c06206cbf0ec026a99bf145edd309f9e17c3282f/fastapi-0.115.8-py3-none-any.whl", hash = "sha256:753a96dd7e036b34eeef8babdfcfe3f28ff79648f86551eb36bfc1b0bf4a8cbf", size = 94814 },
|
515 |
]
|
516 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
517 |
[[package]]
|
518 |
name = "filelock"
|
519 |
version = "3.17.0"
|
|
|
1008 |
{ url = "https://files.pythonhosted.org/packages/3e/cb/a375aa0a8e5ab806766ea6f167088bbb9b8aea836031e5f80f6f492b1f8d/langchain-0.3.15-py3-none-any.whl", hash = "sha256:2657735184054cae8181ac43fce6cbc9ee64ca81a2ad2aed3ccd6e5d6fe1f19f", size = 1009589 },
|
1009 |
]
|
1010 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1011 |
[[package]]
|
1012 |
name = "langchain-community"
|
1013 |
version = "0.3.15"
|
|
|
1288 |
source = { virtual = "." }
|
1289 |
dependencies = [
|
1290 |
{ name = "accelerate" },
|
|
|
1291 |
{ name = "chainlit" },
|
|
|
1292 |
{ name = "huggingface-hub" },
|
1293 |
{ name = "iprogress" },
|
1294 |
{ name = "ipykernel" },
|
1295 |
{ name = "ipywidgets" },
|
1296 |
{ name = "langchain" },
|
|
|
1297 |
{ name = "langchain-community" },
|
1298 |
{ name = "langchain-core" },
|
1299 |
{ name = "langchain-experimental" },
|
|
|
1320 |
[package.metadata]
|
1321 |
requires-dist = [
|
1322 |
{ name = "accelerate" },
|
|
|
1323 |
{ name = "chainlit" },
|
|
|
1324 |
{ name = "huggingface-hub" },
|
1325 |
{ name = "iprogress" },
|
1326 |
{ name = "ipykernel" },
|
1327 |
{ name = "ipywidgets" },
|
1328 |
{ name = "langchain" },
|
|
|
|
|
1329 |
{ name = "langchain-community" },
|
|
|
1330 |
{ name = "langchain-core" },
|
|
|
1331 |
{ name = "langchain-experimental" },
|
1332 |
+
{ name = "langchain-huggingface" },
|
1333 |
{ name = "langchain-openai" },
|
1334 |
+
{ name = "langchain-qdrant" },
|
1335 |
+
{ name = "langchain-text-splitters" },
|
|
|
1336 |
{ name = "langgraph" },
|
1337 |
+
{ name = "langsmith" },
|
1338 |
+
{ name = "lxml" },
|
1339 |
+
{ name = "openai" },
|
1340 |
{ name = "pymupdf" },
|
1341 |
+
{ name = "pypdf2" },
|
1342 |
{ name = "qdrant-client" },
|
1343 |
{ name = "ragas" },
|
1344 |
{ name = "torch" },
|
|
|
2508 |
{ url = "https://files.pythonhosted.org/packages/69/8a/b9dc7678803429e4a3bc9ba462fa3dd9066824d3c607490235c6a796be5a/setuptools-75.8.0-py3-none-any.whl", hash = "sha256:e3982f444617239225d675215d51f6ba05f845d4eec313da4418fdbb56fb27e3", size = 1228782 },
|
2509 |
]
|
2510 |
|
|
|
|
|
|
|
|
|
|
|
|
|
2511 |
[[package]]
|
2512 |
name = "simple-websocket"
|
2513 |
version = "1.1.0"
|
|
|
2812 |
{ url = "https://files.pythonhosted.org/packages/c7/30/37a3384d1e2e9320331baca41e835e90a3767303642c7a80d4510152cbcf/triton-3.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e5dfa23ba84541d7c0a531dfce76d8bcd19159d50a4a8b14ad01e91734a5c1b0", size = 253154278 },
|
2813 |
]
|
2814 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2815 |
[[package]]
|
2816 |
name = "typing-extensions"
|
2817 |
version = "4.12.2"
|