Spaces:
Sleeping
Sleeping
Commit
·
95b0fa1
1
Parent(s):
465a7e3
updates
Browse files- app.py +7 -3
- pyproject.toml +1 -0
- rag_graph.py +24 -13
- uv.lock +252 -0
app.py
CHANGED
@@ -4,21 +4,25 @@ from rag_graph import RagGraph
|
|
4 |
|
5 |
@cl.cache
|
6 |
def get_qdrant_client():
|
|
|
7 |
from qdrant_client import QdrantClient
|
8 |
return QdrantClient(path='data/vectors')
|
9 |
|
10 |
@cl.on_chat_start
|
11 |
async def on_chat_start():
|
|
|
12 |
qdrant_client = get_qdrant_client()
|
13 |
rag_graph = RagGraph(qdrant_client)
|
14 |
-
rag_graph.create_rag_graph()
|
15 |
|
16 |
cl.user_session.set("rag_graph", rag_graph)
|
17 |
|
18 |
@cl.on_message
|
19 |
async def on_message(question: cl.Message):
|
|
|
20 |
msg = cl.Message(content="")
|
21 |
-
|
|
|
22 |
|
23 |
rag_graph = cl.user_session.get("rag_graph")
|
24 |
-
|
|
|
|
4 |
|
5 |
@cl.cache
|
6 |
def get_qdrant_client():
|
7 |
+
"""Create a QdrantClient instance and cache it for restarts during development."""
|
8 |
from qdrant_client import QdrantClient
|
9 |
return QdrantClient(path='data/vectors')
|
10 |
|
11 |
@cl.on_chat_start
|
12 |
async def on_chat_start():
|
13 |
+
"""Create the RAG graph and store it in the user session."""
|
14 |
qdrant_client = get_qdrant_client()
|
15 |
rag_graph = RagGraph(qdrant_client)
|
|
|
16 |
|
17 |
cl.user_session.set("rag_graph", rag_graph)
|
18 |
|
19 |
@cl.on_message
|
20 |
async def on_message(question: cl.Message):
|
21 |
+
"""Stream the response to the user."""
|
22 |
msg = cl.Message(content="")
|
23 |
+
# Send a message to the user to indicate that the response is being generated
|
24 |
+
await msg.send()
|
25 |
|
26 |
rag_graph = cl.user_session.get("rag_graph")
|
27 |
+
# Update the message when streaming is complete
|
28 |
+
await rag_graph.stream(question.content, msg)
|
pyproject.toml
CHANGED
@@ -22,4 +22,5 @@ dependencies = [
|
|
22 |
"dotenv>=0.9.9",
|
23 |
"unstructured>=0.14.8",
|
24 |
"chainlit>=2.2.1",
|
|
|
25 |
]
|
|
|
22 |
"dotenv>=0.9.9",
|
23 |
"unstructured>=0.14.8",
|
24 |
"chainlit>=2.2.1",
|
25 |
+
"ragas>=0.2.13",
|
26 |
]
|
rag_graph.py
CHANGED
@@ -16,15 +16,20 @@ from langchain.text_splitter import RecursiveCharacterTextSplitter
|
|
16 |
|
17 |
from qdrant_client.http.models import Distance, VectorParams
|
18 |
|
|
|
19 |
import nltk
|
20 |
nltk.download('punkt_tab')
|
21 |
nltk.download('averaged_perceptron_tagger_eng')
|
22 |
|
|
|
23 |
CHUNK_SIZE = 1000
|
24 |
CHUNK_OVERLAP = CHUNK_SIZE // 2
|
25 |
|
|
|
26 |
RAG_PROMPT = """\
|
27 |
-
You are a helpful assistant who
|
|
|
|
|
28 |
You must only use the provided context, and cannot use your own knowledge.
|
29 |
|
30 |
### Question
|
@@ -64,8 +69,10 @@ class RagGraph:
|
|
64 |
|
65 |
self.vector_db_retriever = self.vector_store.as_retriever(search_kwargs={"k": 5})
|
66 |
self.graph = None
|
|
|
|
|
67 |
|
68 |
-
def
|
69 |
"""Create the RAG graph."""
|
70 |
class State(TypedDict):
|
71 |
"""State for the conversation."""
|
@@ -74,8 +81,8 @@ class RagGraph:
|
|
74 |
|
75 |
def retrieve(state):
|
76 |
question = state["question"]
|
77 |
-
|
78 |
-
return {"question": state["question"], "context":
|
79 |
|
80 |
async def stream(state):
|
81 |
"""LangGraph node that streams responses"""
|
@@ -90,23 +97,27 @@ class RagGraph:
|
|
90 |
self.graph = graph_builder.compile()
|
91 |
|
92 |
def run(self, question):
|
93 |
-
"""
|
94 |
-
|
95 |
-
|
96 |
-
messages = self.rag_prompt.format_messages(question=question, context=
|
97 |
response = self.llm.invoke(messages)
|
98 |
-
|
99 |
-
|
|
|
|
|
100 |
|
101 |
async def stream(self, question, msg):
|
102 |
-
"""Stream
|
103 |
async for event in self.graph.astream({"question": question, "context": []}, stream_mode=["messages"]):
|
104 |
-
|
105 |
if message_chunk.content:
|
106 |
await msg.stream_token(message_chunk.content)
|
107 |
-
|
108 |
await msg.send()
|
109 |
|
|
|
|
|
|
|
110 |
def main():
|
111 |
"""Test the RAG graph."""
|
112 |
load_dotenv()
|
|
|
16 |
|
17 |
from qdrant_client.http.models import Distance, VectorParams
|
18 |
|
19 |
+
# Necessary for dependencies for DirectoryLoader
|
20 |
import nltk
|
21 |
nltk.download('punkt_tab')
|
22 |
nltk.download('averaged_perceptron_tagger_eng')
|
23 |
|
24 |
+
# Chunk configuration
|
25 |
CHUNK_SIZE = 1000
|
26 |
CHUNK_OVERLAP = CHUNK_SIZE // 2
|
27 |
|
28 |
+
# RAG prompt template
|
29 |
RAG_PROMPT = """\
|
30 |
+
You are a helpful assistant who helps Shopify merchants automate their businesses.
|
31 |
+
Your goal is to provide a helpful response to the merchant's question in straight forward, non technical language.
|
32 |
+
Try to be brief and to the point, but explain technical jargon.
|
33 |
You must only use the provided context, and cannot use your own knowledge.
|
34 |
|
35 |
### Question
|
|
|
69 |
|
70 |
self.vector_db_retriever = self.vector_store.as_retriever(search_kwargs={"k": 5})
|
71 |
self.graph = None
|
72 |
+
|
73 |
+
self.create()
|
74 |
|
75 |
+
def create(self):
|
76 |
"""Create the RAG graph."""
|
77 |
class State(TypedDict):
|
78 |
"""State for the conversation."""
|
|
|
81 |
|
82 |
def retrieve(state):
|
83 |
question = state["question"]
|
84 |
+
context = self.vector_db_retriever.invoke(question)
|
85 |
+
return {"question": state["question"], "context": context}
|
86 |
|
87 |
async def stream(state):
|
88 |
"""LangGraph node that streams responses"""
|
|
|
97 |
self.graph = graph_builder.compile()
|
98 |
|
99 |
def run(self, question):
|
100 |
+
"""Invoke RAG response without streaming."""
|
101 |
+
chunks = self.vector_db_retriever.invoke(question)
|
102 |
+
context = "\n\n".join(doc.page_content for doc in chunks)
|
103 |
+
messages = self.rag_prompt.format_messages(question=question, context=context)
|
104 |
response = self.llm.invoke(messages)
|
105 |
+
return {
|
106 |
+
"response": response.content,
|
107 |
+
"context": chunks
|
108 |
+
}
|
109 |
|
110 |
async def stream(self, question, msg):
|
111 |
+
"""Stream RAG response."""
|
112 |
async for event in self.graph.astream({"question": question, "context": []}, stream_mode=["messages"]):
|
113 |
+
_event_name, (message_chunk, _metadata) = event
|
114 |
if message_chunk.content:
|
115 |
await msg.stream_token(message_chunk.content)
|
|
|
116 |
await msg.send()
|
117 |
|
118 |
+
|
119 |
+
|
120 |
+
# Run RAG with CLI (no streaming)
|
121 |
def main():
|
122 |
"""Test the RAG graph."""
|
123 |
load_dotenv()
|
uv.lock
CHANGED
@@ -120,6 +120,15 @@ wheels = [
|
|
120 |
{ url = "https://files.pythonhosted.org/packages/46/eb/e7f063ad1fec6b3178a3cd82d1a3c4de82cccf283fc42746168188e1cdd5/anyio-4.8.0-py3-none-any.whl", hash = "sha256:b5011f270ab5eb0abf13385f851315585cc37ef330dd88e27ec3d34d651fd47a", size = 96041 },
|
121 |
]
|
122 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
123 |
[[package]]
|
124 |
name = "asyncer"
|
125 |
version = "0.0.7"
|
@@ -369,6 +378,31 @@ wheels = [
|
|
369 |
{ url = "https://files.pythonhosted.org/packages/c3/be/d0d44e092656fe7a06b55e6103cbce807cdbdee17884a5367c68c9860853/dataclasses_json-0.6.7-py3-none-any.whl", hash = "sha256:0dbf33f26c8d5305befd61b39d2b3414e8a407bedc2834dea9b8d642666fb40a", size = 28686 },
|
370 |
]
|
371 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
372 |
[[package]]
|
373 |
name = "deepdiff"
|
374 |
version = "8.2.0"
|
@@ -393,6 +427,24 @@ wheels = [
|
|
393 |
{ url = "https://files.pythonhosted.org/packages/6e/c6/ac0b6c1e2d138f1002bcf799d330bd6d85084fece321e662a14223794041/Deprecated-1.2.18-py2.py3-none-any.whl", hash = "sha256:bd5011788200372a32418f888e326a09ff80d0214bd961147cfed01b5c018eec", size = 9998 },
|
394 |
]
|
395 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
396 |
[[package]]
|
397 |
name = "distro"
|
398 |
version = "1.9.0"
|
@@ -436,6 +488,15 @@ wheels = [
|
|
436 |
{ url = "https://files.pythonhosted.org/packages/8f/7d/2d6ce181d7a5f51dedb8c06206cbf0ec026a99bf145edd309f9e17c3282f/fastapi-0.115.8-py3-none-any.whl", hash = "sha256:753a96dd7e036b34eeef8babdfcfe3f28ff79648f86551eb36bfc1b0bf4a8cbf", size = 94814 },
|
437 |
]
|
438 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
439 |
[[package]]
|
440 |
name = "filetype"
|
441 |
version = "1.2.0"
|
@@ -484,6 +545,20 @@ wheels = [
|
|
484 |
{ url = "https://files.pythonhosted.org/packages/c6/c8/a5be5b7550c10858fcf9b0ea054baccab474da77d37f1e828ce043a3a5d4/frozenlist-1.5.0-py3-none-any.whl", hash = "sha256:d994863bba198a4a518b467bb971c56e1db3f180a25c6cf7bb1949c267f748c3", size = 11901 },
|
485 |
]
|
486 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
487 |
[[package]]
|
488 |
name = "googleapis-common-protos"
|
489 |
version = "1.68.0"
|
@@ -659,6 +734,24 @@ wheels = [
|
|
659 |
{ url = "https://files.pythonhosted.org/packages/e1/9b/a181f281f65d776426002f330c31849b86b31fc9d848db62e16f03ff739f/httpx_sse-0.4.0-py3-none-any.whl", hash = "sha256:f329af6eae57eaa2bdfd962b42524764af68075ea87370a2de920af5341e318f", size = 7819 },
|
660 |
]
|
661 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
662 |
[[package]]
|
663 |
name = "hyperframe"
|
664 |
version = "6.1.0"
|
@@ -1075,6 +1168,22 @@ wheels = [
|
|
1075 |
{ url = "https://files.pythonhosted.org/packages/99/b7/b9e70fde2c0f0c9af4cc5277782a89b66d35948ea3369ec9f598358c3ac5/multidict-6.1.0-py3-none-any.whl", hash = "sha256:48e171e52d1c4d33888e529b999e5900356b9ae588c2f09a52dcefb158b27506", size = 10051 },
|
1076 |
]
|
1077 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1078 |
[[package]]
|
1079 |
name = "mypy-extensions"
|
1080 |
version = "1.0.0"
|
@@ -1345,6 +1454,40 @@ wheels = [
|
|
1345 |
{ url = "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", size = 65451 },
|
1346 |
]
|
1347 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1348 |
[[package]]
|
1349 |
name = "portalocker"
|
1350 |
version = "2.10.1"
|
@@ -1412,6 +1555,34 @@ wheels = [
|
|
1412 |
{ url = "https://files.pythonhosted.org/packages/fd/b2/ab07b09e0f6d143dfb839693aa05765257bceaa13d03bf1a696b78323e7a/protobuf-5.29.3-py3-none-any.whl", hash = "sha256:0a18ed4a24198528f2333802eb075e59dea9d679ab7a6c5efb017a59004d849f", size = 172550 },
|
1413 |
]
|
1414 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1415 |
[[package]]
|
1416 |
name = "pycares"
|
1417 |
version = "4.5.0"
|
@@ -1617,6 +1788,15 @@ wheels = [
|
|
1617 |
{ url = "https://files.pythonhosted.org/packages/8a/a3/c69806f30dd81df5a99d592e7db4c930c3a9b098555aa97b0eb866b20b11/python_socketio-5.12.1-py3-none-any.whl", hash = "sha256:24a0ea7cfff0e021eb28c68edbf7914ee4111bdf030b95e4d250c4dc9af7a386", size = 76947 },
|
1618 |
]
|
1619 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1620 |
[[package]]
|
1621 |
name = "pywin32"
|
1622 |
version = "308"
|
@@ -1674,6 +1854,29 @@ wheels = [
|
|
1674 |
{ url = "https://files.pythonhosted.org/packages/5f/26/89ebaee5fcbd99bf1c0a627a9447b440118b2d31dea423d074cb0481be5c/qdrant_client-1.13.2-py3-none-any.whl", hash = "sha256:db97e759bd3f8d483a383984ba4c2a158eef56f2188d83df7771591d43de2201", size = 306637 },
|
1675 |
]
|
1676 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1677 |
[[package]]
|
1678 |
name = "rapidfuzz"
|
1679 |
version = "3.12.1"
|
@@ -1805,6 +2008,7 @@ dependencies = [
|
|
1805 |
{ name = "langgraph" },
|
1806 |
{ name = "lxml" },
|
1807 |
{ name = "qdrant-client" },
|
|
|
1808 |
{ name = "typing-extensions" },
|
1809 |
{ name = "unstructured" },
|
1810 |
{ name = "yarl" },
|
@@ -1826,6 +2030,7 @@ requires-dist = [
|
|
1826 |
{ name = "langgraph", specifier = ">=0.2.74" },
|
1827 |
{ name = "lxml", specifier = ">=5.1.0" },
|
1828 |
{ name = "qdrant-client", specifier = ">=1.13.2" },
|
|
|
1829 |
{ name = "typing-extensions", specifier = ">=4.12.2" },
|
1830 |
{ name = "unstructured", specifier = ">=0.14.8" },
|
1831 |
{ name = "yarl", specifier = ">=1.9.4" },
|
@@ -2022,6 +2227,15 @@ wheels = [
|
|
2022 |
{ url = "https://files.pythonhosted.org/packages/65/f3/107a22063bf27bdccf2024833d3445f4eea42b2e598abfbd46f6a63b6cb0/typing_inspect-0.9.0-py3-none-any.whl", hash = "sha256:9ee6fc59062311ef8547596ab6b955e1b8aa46242d854bfc78f4f6b0eff35f9f", size = 8827 },
|
2023 |
]
|
2024 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025 |
[[package]]
|
2026 |
name = "unstructured"
|
2027 |
version = "0.14.8"
|
@@ -2198,6 +2412,44 @@ wheels = [
|
|
2198 |
{ url = "https://files.pythonhosted.org/packages/78/58/e860788190eba3bcce367f74d29c4675466ce8dddfba85f7827588416f01/wsproto-1.2.0-py3-none-any.whl", hash = "sha256:b9acddd652b585d75b20477888c56642fdade28bdfd3579aa24a4d2c037dd736", size = 24226 },
|
2199 |
]
|
2200 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2201 |
[[package]]
|
2202 |
name = "yarl"
|
2203 |
version = "1.18.3"
|
|
|
120 |
{ url = "https://files.pythonhosted.org/packages/46/eb/e7f063ad1fec6b3178a3cd82d1a3c4de82cccf283fc42746168188e1cdd5/anyio-4.8.0-py3-none-any.whl", hash = "sha256:b5011f270ab5eb0abf13385f851315585cc37ef330dd88e27ec3d34d651fd47a", size = 96041 },
|
121 |
]
|
122 |
|
123 |
+
[[package]]
|
124 |
+
name = "appdirs"
|
125 |
+
version = "1.4.4"
|
126 |
+
source = { registry = "https://pypi.org/simple" }
|
127 |
+
sdist = { url = "https://files.pythonhosted.org/packages/d7/d8/05696357e0311f5b5c316d7b95f46c669dd9c15aaeecbb48c7d0aeb88c40/appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41", size = 13470 }
|
128 |
+
wheels = [
|
129 |
+
{ url = "https://files.pythonhosted.org/packages/3b/00/2344469e2084fb287c2e0b57b72910309874c3245463acd6cf5e3db69324/appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128", size = 9566 },
|
130 |
+
]
|
131 |
+
|
132 |
[[package]]
|
133 |
name = "asyncer"
|
134 |
version = "0.0.7"
|
|
|
378 |
{ url = "https://files.pythonhosted.org/packages/c3/be/d0d44e092656fe7a06b55e6103cbce807cdbdee17884a5367c68c9860853/dataclasses_json-0.6.7-py3-none-any.whl", hash = "sha256:0dbf33f26c8d5305befd61b39d2b3414e8a407bedc2834dea9b8d642666fb40a", size = 28686 },
|
379 |
]
|
380 |
|
381 |
+
[[package]]
|
382 |
+
name = "datasets"
|
383 |
+
version = "3.3.2"
|
384 |
+
source = { registry = "https://pypi.org/simple" }
|
385 |
+
dependencies = [
|
386 |
+
{ name = "aiohttp" },
|
387 |
+
{ name = "dill" },
|
388 |
+
{ name = "filelock" },
|
389 |
+
{ name = "fsspec", extra = ["http"] },
|
390 |
+
{ name = "huggingface-hub" },
|
391 |
+
{ name = "multiprocess" },
|
392 |
+
{ name = "numpy" },
|
393 |
+
{ name = "packaging" },
|
394 |
+
{ name = "pandas" },
|
395 |
+
{ name = "pyarrow" },
|
396 |
+
{ name = "pyyaml" },
|
397 |
+
{ name = "requests" },
|
398 |
+
{ name = "tqdm" },
|
399 |
+
{ name = "xxhash" },
|
400 |
+
]
|
401 |
+
sdist = { url = "https://files.pythonhosted.org/packages/73/0c/dc3d172104e78e68f7a60386664adbf61db5d10c2246b31ddad06c2d1cb3/datasets-3.3.2.tar.gz", hash = "sha256:20901a97da870fb80b407ccc45f034a7ac99accd07da897ed42f11641bdb8c6e", size = 564352 }
|
402 |
+
wheels = [
|
403 |
+
{ url = "https://files.pythonhosted.org/packages/4c/37/22ef7675bef4ffe9577b937ddca2e22791534cbbe11c30714972a91532dc/datasets-3.3.2-py3-none-any.whl", hash = "sha256:fdaf3d5d70242621210b044e9b9b15a56e908bfc3e9d077bcf5605ac390f70bd", size = 485360 },
|
404 |
+
]
|
405 |
+
|
406 |
[[package]]
|
407 |
name = "deepdiff"
|
408 |
version = "8.2.0"
|
|
|
427 |
{ url = "https://files.pythonhosted.org/packages/6e/c6/ac0b6c1e2d138f1002bcf799d330bd6d85084fece321e662a14223794041/Deprecated-1.2.18-py2.py3-none-any.whl", hash = "sha256:bd5011788200372a32418f888e326a09ff80d0214bd961147cfed01b5c018eec", size = 9998 },
|
428 |
]
|
429 |
|
430 |
+
[[package]]
|
431 |
+
name = "dill"
|
432 |
+
version = "0.3.8"
|
433 |
+
source = { registry = "https://pypi.org/simple" }
|
434 |
+
sdist = { url = "https://files.pythonhosted.org/packages/17/4d/ac7ffa80c69ea1df30a8aa11b3578692a5118e7cd1aa157e3ef73b092d15/dill-0.3.8.tar.gz", hash = "sha256:3ebe3c479ad625c4553aca177444d89b486b1d84982eeacded644afc0cf797ca", size = 184847 }
|
435 |
+
wheels = [
|
436 |
+
{ url = "https://files.pythonhosted.org/packages/c9/7a/cef76fd8438a42f96db64ddaa85280485a9c395e7df3db8158cfec1eee34/dill-0.3.8-py3-none-any.whl", hash = "sha256:c36ca9ffb54365bdd2f8eb3eff7d2a21237f8452b57ace88b1ac615b7e815bd7", size = 116252 },
|
437 |
+
]
|
438 |
+
|
439 |
+
[[package]]
|
440 |
+
name = "diskcache"
|
441 |
+
version = "5.6.3"
|
442 |
+
source = { registry = "https://pypi.org/simple" }
|
443 |
+
sdist = { url = "https://files.pythonhosted.org/packages/3f/21/1c1ffc1a039ddcc459db43cc108658f32c57d271d7289a2794e401d0fdb6/diskcache-5.6.3.tar.gz", hash = "sha256:2c3a3fa2743d8535d832ec61c2054a1641f41775aa7c556758a109941e33e4fc", size = 67916 }
|
444 |
+
wheels = [
|
445 |
+
{ url = "https://files.pythonhosted.org/packages/3f/27/4570e78fc0bf5ea0ca45eb1de3818a23787af9b390c0b0a0033a1b8236f9/diskcache-5.6.3-py3-none-any.whl", hash = "sha256:5e31b2d5fbad117cc363ebaf6b689474db18a1f6438bc82358b024abd4c2ca19", size = 45550 },
|
446 |
+
]
|
447 |
+
|
448 |
[[package]]
|
449 |
name = "distro"
|
450 |
version = "1.9.0"
|
|
|
488 |
{ url = "https://files.pythonhosted.org/packages/8f/7d/2d6ce181d7a5f51dedb8c06206cbf0ec026a99bf145edd309f9e17c3282f/fastapi-0.115.8-py3-none-any.whl", hash = "sha256:753a96dd7e036b34eeef8babdfcfe3f28ff79648f86551eb36bfc1b0bf4a8cbf", size = 94814 },
|
489 |
]
|
490 |
|
491 |
+
[[package]]
|
492 |
+
name = "filelock"
|
493 |
+
version = "3.17.0"
|
494 |
+
source = { registry = "https://pypi.org/simple" }
|
495 |
+
sdist = { url = "https://files.pythonhosted.org/packages/dc/9c/0b15fb47b464e1b663b1acd1253a062aa5feecb07d4e597daea542ebd2b5/filelock-3.17.0.tar.gz", hash = "sha256:ee4e77401ef576ebb38cd7f13b9b28893194acc20a8e68e18730ba9c0e54660e", size = 18027 }
|
496 |
+
wheels = [
|
497 |
+
{ url = "https://files.pythonhosted.org/packages/89/ec/00d68c4ddfedfe64159999e5f8a98fb8442729a63e2077eb9dcd89623d27/filelock-3.17.0-py3-none-any.whl", hash = "sha256:533dc2f7ba78dc2f0f531fc6c4940addf7b70a481e269a5a3b93be94ffbe8338", size = 16164 },
|
498 |
+
]
|
499 |
+
|
500 |
[[package]]
|
501 |
name = "filetype"
|
502 |
version = "1.2.0"
|
|
|
545 |
{ url = "https://files.pythonhosted.org/packages/c6/c8/a5be5b7550c10858fcf9b0ea054baccab474da77d37f1e828ce043a3a5d4/frozenlist-1.5.0-py3-none-any.whl", hash = "sha256:d994863bba198a4a518b467bb971c56e1db3f180a25c6cf7bb1949c267f748c3", size = 11901 },
|
546 |
]
|
547 |
|
548 |
+
[[package]]
|
549 |
+
name = "fsspec"
|
550 |
+
version = "2024.12.0"
|
551 |
+
source = { registry = "https://pypi.org/simple" }
|
552 |
+
sdist = { url = "https://files.pythonhosted.org/packages/ee/11/de70dee31455c546fbc88301971ec03c328f3d1138cfba14263f651e9551/fsspec-2024.12.0.tar.gz", hash = "sha256:670700c977ed2fb51e0d9f9253177ed20cbde4a3e5c0283cc5385b5870c8533f", size = 291600 }
|
553 |
+
wheels = [
|
554 |
+
{ url = "https://files.pythonhosted.org/packages/de/86/5486b0188d08aa643e127774a99bac51ffa6cf343e3deb0583956dca5b22/fsspec-2024.12.0-py3-none-any.whl", hash = "sha256:b520aed47ad9804237ff878b504267a3b0b441e97508bd6d2d8774e3db85cee2", size = 183862 },
|
555 |
+
]
|
556 |
+
|
557 |
+
[package.optional-dependencies]
|
558 |
+
http = [
|
559 |
+
{ name = "aiohttp" },
|
560 |
+
]
|
561 |
+
|
562 |
[[package]]
|
563 |
name = "googleapis-common-protos"
|
564 |
version = "1.68.0"
|
|
|
734 |
{ url = "https://files.pythonhosted.org/packages/e1/9b/a181f281f65d776426002f330c31849b86b31fc9d848db62e16f03ff739f/httpx_sse-0.4.0-py3-none-any.whl", hash = "sha256:f329af6eae57eaa2bdfd962b42524764af68075ea87370a2de920af5341e318f", size = 7819 },
|
735 |
]
|
736 |
|
737 |
+
[[package]]
|
738 |
+
name = "huggingface-hub"
|
739 |
+
version = "0.29.1"
|
740 |
+
source = { registry = "https://pypi.org/simple" }
|
741 |
+
dependencies = [
|
742 |
+
{ name = "filelock" },
|
743 |
+
{ name = "fsspec" },
|
744 |
+
{ name = "packaging" },
|
745 |
+
{ name = "pyyaml" },
|
746 |
+
{ name = "requests" },
|
747 |
+
{ name = "tqdm" },
|
748 |
+
{ name = "typing-extensions" },
|
749 |
+
]
|
750 |
+
sdist = { url = "https://files.pythonhosted.org/packages/22/37/797d6476f13e5ef6af5fc48a5d641d32b39c37e166ccf40c3714c5854a85/huggingface_hub-0.29.1.tar.gz", hash = "sha256:9524eae42077b8ff4fc459ceb7a514eca1c1232b775276b009709fe2a084f250", size = 389776 }
|
751 |
+
wheels = [
|
752 |
+
{ url = "https://files.pythonhosted.org/packages/ae/05/75b90de9093de0aadafc868bb2fa7c57651fd8f45384adf39bd77f63980d/huggingface_hub-0.29.1-py3-none-any.whl", hash = "sha256:352f69caf16566c7b6de84b54a822f6238e17ddd8ae3da4f8f2272aea5b198d5", size = 468049 },
|
753 |
+
]
|
754 |
+
|
755 |
[[package]]
|
756 |
name = "hyperframe"
|
757 |
version = "6.1.0"
|
|
|
1168 |
{ url = "https://files.pythonhosted.org/packages/99/b7/b9e70fde2c0f0c9af4cc5277782a89b66d35948ea3369ec9f598358c3ac5/multidict-6.1.0-py3-none-any.whl", hash = "sha256:48e171e52d1c4d33888e529b999e5900356b9ae588c2f09a52dcefb158b27506", size = 10051 },
|
1169 |
]
|
1170 |
|
1171 |
+
[[package]]
|
1172 |
+
name = "multiprocess"
|
1173 |
+
version = "0.70.16"
|
1174 |
+
source = { registry = "https://pypi.org/simple" }
|
1175 |
+
dependencies = [
|
1176 |
+
{ name = "dill" },
|
1177 |
+
]
|
1178 |
+
sdist = { url = "https://files.pythonhosted.org/packages/b5/ae/04f39c5d0d0def03247c2893d6f2b83c136bf3320a2154d7b8858f2ba72d/multiprocess-0.70.16.tar.gz", hash = "sha256:161af703d4652a0e1410be6abccecde4a7ddffd19341be0a7011b94aeb171ac1", size = 1772603 }
|
1179 |
+
wheels = [
|
1180 |
+
{ url = "https://files.pythonhosted.org/packages/bc/f7/7ec7fddc92e50714ea3745631f79bd9c96424cb2702632521028e57d3a36/multiprocess-0.70.16-py310-none-any.whl", hash = "sha256:c4a9944c67bd49f823687463660a2d6daae94c289adff97e0f9d696ba6371d02", size = 134824 },
|
1181 |
+
{ url = "https://files.pythonhosted.org/packages/50/15/b56e50e8debaf439f44befec5b2af11db85f6e0f344c3113ae0be0593a91/multiprocess-0.70.16-py311-none-any.whl", hash = "sha256:af4cabb0dac72abfb1e794fa7855c325fd2b55a10a44628a3c1ad3311c04127a", size = 143519 },
|
1182 |
+
{ url = "https://files.pythonhosted.org/packages/0a/7d/a988f258104dcd2ccf1ed40fdc97e26c4ac351eeaf81d76e266c52d84e2f/multiprocess-0.70.16-py312-none-any.whl", hash = "sha256:fc0544c531920dde3b00c29863377f87e1632601092ea2daca74e4beb40faa2e", size = 146741 },
|
1183 |
+
{ url = "https://files.pythonhosted.org/packages/ea/89/38df130f2c799090c978b366cfdf5b96d08de5b29a4a293df7f7429fa50b/multiprocess-0.70.16-py38-none-any.whl", hash = "sha256:a71d82033454891091a226dfc319d0cfa8019a4e888ef9ca910372a446de4435", size = 132628 },
|
1184 |
+
{ url = "https://files.pythonhosted.org/packages/da/d9/f7f9379981e39b8c2511c9e0326d212accacb82f12fbfdc1aa2ce2a7b2b6/multiprocess-0.70.16-py39-none-any.whl", hash = "sha256:a0bafd3ae1b732eac64be2e72038231c1ba97724b60b09400d68f229fcc2fbf3", size = 133351 },
|
1185 |
+
]
|
1186 |
+
|
1187 |
[[package]]
|
1188 |
name = "mypy-extensions"
|
1189 |
version = "1.0.0"
|
|
|
1454 |
{ url = "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", size = 65451 },
|
1455 |
]
|
1456 |
|
1457 |
+
[[package]]
|
1458 |
+
name = "pandas"
|
1459 |
+
version = "2.2.3"
|
1460 |
+
source = { registry = "https://pypi.org/simple" }
|
1461 |
+
dependencies = [
|
1462 |
+
{ name = "numpy" },
|
1463 |
+
{ name = "python-dateutil" },
|
1464 |
+
{ name = "pytz" },
|
1465 |
+
{ name = "tzdata" },
|
1466 |
+
]
|
1467 |
+
sdist = { url = "https://files.pythonhosted.org/packages/9c/d6/9f8431bacc2e19dca897724cd097b1bb224a6ad5433784a44b587c7c13af/pandas-2.2.3.tar.gz", hash = "sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667", size = 4399213 }
|
1468 |
+
wheels = [
|
1469 |
+
{ url = "https://files.pythonhosted.org/packages/17/a3/fb2734118db0af37ea7433f57f722c0a56687e14b14690edff0cdb4b7e58/pandas-2.2.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b1d432e8d08679a40e2a6d8b2f9770a5c21793a6f9f47fdd52c5ce1948a5a8a9", size = 12529893 },
|
1470 |
+
{ url = "https://files.pythonhosted.org/packages/e1/0c/ad295fd74bfac85358fd579e271cded3ac969de81f62dd0142c426b9da91/pandas-2.2.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a5a1595fe639f5988ba6a8e5bc9649af3baf26df3998a0abe56c02609392e0a4", size = 11363475 },
|
1471 |
+
{ url = "https://files.pythonhosted.org/packages/c6/2a/4bba3f03f7d07207481fed47f5b35f556c7441acddc368ec43d6643c5777/pandas-2.2.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5de54125a92bb4d1c051c0659e6fcb75256bf799a732a87184e5ea503965bce3", size = 15188645 },
|
1472 |
+
{ url = "https://files.pythonhosted.org/packages/38/f8/d8fddee9ed0d0c0f4a2132c1dfcf0e3e53265055da8df952a53e7eaf178c/pandas-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fffb8ae78d8af97f849404f21411c95062db1496aeb3e56f146f0355c9989319", size = 12739445 },
|
1473 |
+
{ url = "https://files.pythonhosted.org/packages/20/e8/45a05d9c39d2cea61ab175dbe6a2de1d05b679e8de2011da4ee190d7e748/pandas-2.2.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dfcb5ee8d4d50c06a51c2fffa6cff6272098ad6540aed1a76d15fb9318194d8", size = 16359235 },
|
1474 |
+
{ url = "https://files.pythonhosted.org/packages/1d/99/617d07a6a5e429ff90c90da64d428516605a1ec7d7bea494235e1c3882de/pandas-2.2.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:062309c1b9ea12a50e8ce661145c6aab431b1e99530d3cd60640e255778bd43a", size = 14056756 },
|
1475 |
+
{ url = "https://files.pythonhosted.org/packages/29/d4/1244ab8edf173a10fd601f7e13b9566c1b525c4f365d6bee918e68381889/pandas-2.2.3-cp312-cp312-win_amd64.whl", hash = "sha256:59ef3764d0fe818125a5097d2ae867ca3fa64df032331b7e0917cf5d7bf66b13", size = 11504248 },
|
1476 |
+
{ url = "https://files.pythonhosted.org/packages/64/22/3b8f4e0ed70644e85cfdcd57454686b9057c6c38d2f74fe4b8bc2527214a/pandas-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f00d1345d84d8c86a63e476bb4955e46458b304b9575dcf71102b5c705320015", size = 12477643 },
|
1477 |
+
{ url = "https://files.pythonhosted.org/packages/e4/93/b3f5d1838500e22c8d793625da672f3eec046b1a99257666c94446969282/pandas-2.2.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3508d914817e153ad359d7e069d752cdd736a247c322d932eb89e6bc84217f28", size = 11281573 },
|
1478 |
+
{ url = "https://files.pythonhosted.org/packages/f5/94/6c79b07f0e5aab1dcfa35a75f4817f5c4f677931d4234afcd75f0e6a66ca/pandas-2.2.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22a9d949bfc9a502d320aa04e5d02feab689d61da4e7764b62c30b991c42c5f0", size = 15196085 },
|
1479 |
+
{ url = "https://files.pythonhosted.org/packages/e8/31/aa8da88ca0eadbabd0a639788a6da13bb2ff6edbbb9f29aa786450a30a91/pandas-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3a255b2c19987fbbe62a9dfd6cff7ff2aa9ccab3fc75218fd4b7530f01efa24", size = 12711809 },
|
1480 |
+
{ url = "https://files.pythonhosted.org/packages/ee/7c/c6dbdb0cb2a4344cacfb8de1c5808ca885b2e4dcfde8008266608f9372af/pandas-2.2.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:800250ecdadb6d9c78eae4990da62743b857b470883fa27f652db8bdde7f6659", size = 16356316 },
|
1481 |
+
{ url = "https://files.pythonhosted.org/packages/57/b7/8b757e7d92023b832869fa8881a992696a0bfe2e26f72c9ae9f255988d42/pandas-2.2.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6374c452ff3ec675a8f46fd9ab25c4ad0ba590b71cf0656f8b6daa5202bca3fb", size = 14022055 },
|
1482 |
+
{ url = "https://files.pythonhosted.org/packages/3b/bc/4b18e2b8c002572c5a441a64826252ce5da2aa738855747247a971988043/pandas-2.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:61c5ad4043f791b61dd4752191d9f07f0ae412515d59ba8f005832a532f8736d", size = 11481175 },
|
1483 |
+
{ url = "https://files.pythonhosted.org/packages/76/a3/a5d88146815e972d40d19247b2c162e88213ef51c7c25993942c39dbf41d/pandas-2.2.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3b71f27954685ee685317063bf13c7709a7ba74fc996b84fc6821c59b0f06468", size = 12615650 },
|
1484 |
+
{ url = "https://files.pythonhosted.org/packages/9c/8c/f0fd18f6140ddafc0c24122c8a964e48294acc579d47def376fef12bcb4a/pandas-2.2.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:38cf8125c40dae9d5acc10fa66af8ea6fdf760b2714ee482ca691fc66e6fcb18", size = 11290177 },
|
1485 |
+
{ url = "https://files.pythonhosted.org/packages/ed/f9/e995754eab9c0f14c6777401f7eece0943840b7a9fc932221c19d1abee9f/pandas-2.2.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ba96630bc17c875161df3818780af30e43be9b166ce51c9a18c1feae342906c2", size = 14651526 },
|
1486 |
+
{ url = "https://files.pythonhosted.org/packages/25/b0/98d6ae2e1abac4f35230aa756005e8654649d305df9a28b16b9ae4353bff/pandas-2.2.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db71525a1538b30142094edb9adc10be3f3e176748cd7acc2240c2f2e5aa3a4", size = 11871013 },
|
1487 |
+
{ url = "https://files.pythonhosted.org/packages/cc/57/0f72a10f9db6a4628744c8e8f0df4e6e21de01212c7c981d31e50ffc8328/pandas-2.2.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:15c0e1e02e93116177d29ff83e8b1619c93ddc9c49083f237d4312337a61165d", size = 15711620 },
|
1488 |
+
{ url = "https://files.pythonhosted.org/packages/ab/5f/b38085618b950b79d2d9164a711c52b10aefc0ae6833b96f626b7021b2ed/pandas-2.2.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ad5b65698ab28ed8d7f18790a0dc58005c7629f227be9ecc1072aa74c0c1d43a", size = 13098436 },
|
1489 |
+
]
|
1490 |
+
|
1491 |
[[package]]
|
1492 |
name = "portalocker"
|
1493 |
version = "2.10.1"
|
|
|
1555 |
{ url = "https://files.pythonhosted.org/packages/fd/b2/ab07b09e0f6d143dfb839693aa05765257bceaa13d03bf1a696b78323e7a/protobuf-5.29.3-py3-none-any.whl", hash = "sha256:0a18ed4a24198528f2333802eb075e59dea9d679ab7a6c5efb017a59004d849f", size = 172550 },
|
1556 |
]
|
1557 |
|
1558 |
+
[[package]]
|
1559 |
+
name = "pyarrow"
|
1560 |
+
version = "19.0.1"
|
1561 |
+
source = { registry = "https://pypi.org/simple" }
|
1562 |
+
sdist = { url = "https://files.pythonhosted.org/packages/7f/09/a9046344212690f0632b9c709f9bf18506522feb333c894d0de81d62341a/pyarrow-19.0.1.tar.gz", hash = "sha256:3bf266b485df66a400f282ac0b6d1b500b9d2ae73314a153dbe97d6d5cc8a99e", size = 1129437 }
|
1563 |
+
wheels = [
|
1564 |
+
{ url = "https://files.pythonhosted.org/packages/78/b4/94e828704b050e723f67d67c3535cf7076c7432cd4cf046e4bb3b96a9c9d/pyarrow-19.0.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:80b2ad2b193e7d19e81008a96e313fbd53157945c7be9ac65f44f8937a55427b", size = 30670749 },
|
1565 |
+
{ url = "https://files.pythonhosted.org/packages/7e/3b/4692965e04bb1df55e2c314c4296f1eb12b4f3052d4cf43d29e076aedf66/pyarrow-19.0.1-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:ee8dec072569f43835932a3b10c55973593abc00936c202707a4ad06af7cb294", size = 32128007 },
|
1566 |
+
{ url = "https://files.pythonhosted.org/packages/22/f7/2239af706252c6582a5635c35caa17cb4d401cd74a87821ef702e3888957/pyarrow-19.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d5d1ec7ec5324b98887bdc006f4d2ce534e10e60f7ad995e7875ffa0ff9cb14", size = 41144566 },
|
1567 |
+
{ url = "https://files.pythonhosted.org/packages/fb/e3/c9661b2b2849cfefddd9fd65b64e093594b231b472de08ff658f76c732b2/pyarrow-19.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3ad4c0eb4e2a9aeb990af6c09e6fa0b195c8c0e7b272ecc8d4d2b6574809d34", size = 42202991 },
|
1568 |
+
{ url = "https://files.pythonhosted.org/packages/fe/4f/a2c0ed309167ef436674782dfee4a124570ba64299c551e38d3fdaf0a17b/pyarrow-19.0.1-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:d383591f3dcbe545f6cc62daaef9c7cdfe0dff0fb9e1c8121101cabe9098cfa6", size = 40507986 },
|
1569 |
+
{ url = "https://files.pythonhosted.org/packages/27/2e/29bb28a7102a6f71026a9d70d1d61df926887e36ec797f2e6acfd2dd3867/pyarrow-19.0.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:b4c4156a625f1e35d6c0b2132635a237708944eb41df5fbe7d50f20d20c17832", size = 42087026 },
|
1570 |
+
{ url = "https://files.pythonhosted.org/packages/16/33/2a67c0f783251106aeeee516f4806161e7b481f7d744d0d643d2f30230a5/pyarrow-19.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:5bd1618ae5e5476b7654c7b55a6364ae87686d4724538c24185bbb2952679960", size = 25250108 },
|
1571 |
+
{ url = "https://files.pythonhosted.org/packages/2b/8d/275c58d4b00781bd36579501a259eacc5c6dfb369be4ddeb672ceb551d2d/pyarrow-19.0.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:e45274b20e524ae5c39d7fc1ca2aa923aab494776d2d4b316b49ec7572ca324c", size = 30653552 },
|
1572 |
+
{ url = "https://files.pythonhosted.org/packages/a0/9e/e6aca5cc4ef0c7aec5f8db93feb0bde08dbad8c56b9014216205d271101b/pyarrow-19.0.1-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:d9dedeaf19097a143ed6da37f04f4051aba353c95ef507764d344229b2b740ae", size = 32103413 },
|
1573 |
+
{ url = "https://files.pythonhosted.org/packages/6a/fa/a7033f66e5d4f1308c7eb0dfcd2ccd70f881724eb6fd1776657fdf65458f/pyarrow-19.0.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ebfb5171bb5f4a52319344ebbbecc731af3f021e49318c74f33d520d31ae0c4", size = 41134869 },
|
1574 |
+
{ url = "https://files.pythonhosted.org/packages/2d/92/34d2569be8e7abdc9d145c98dc410db0071ac579b92ebc30da35f500d630/pyarrow-19.0.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a21d39fbdb948857f67eacb5bbaaf36802de044ec36fbef7a1c8f0dd3a4ab2", size = 42192626 },
|
1575 |
+
{ url = "https://files.pythonhosted.org/packages/0a/1f/80c617b1084fc833804dc3309aa9d8daacd46f9ec8d736df733f15aebe2c/pyarrow-19.0.1-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:99bc1bec6d234359743b01e70d4310d0ab240c3d6b0da7e2a93663b0158616f6", size = 40496708 },
|
1576 |
+
{ url = "https://files.pythonhosted.org/packages/e6/90/83698fcecf939a611c8d9a78e38e7fed7792dcc4317e29e72cf8135526fb/pyarrow-19.0.1-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:1b93ef2c93e77c442c979b0d596af45e4665d8b96da598db145b0fec014b9136", size = 42075728 },
|
1577 |
+
{ url = "https://files.pythonhosted.org/packages/40/49/2325f5c9e7a1c125c01ba0c509d400b152c972a47958768e4e35e04d13d8/pyarrow-19.0.1-cp313-cp313-win_amd64.whl", hash = "sha256:d9d46e06846a41ba906ab25302cf0fd522f81aa2a85a71021826f34639ad31ef", size = 25242568 },
|
1578 |
+
{ url = "https://files.pythonhosted.org/packages/3f/72/135088d995a759d4d916ec4824cb19e066585b4909ebad4ab196177aa825/pyarrow-19.0.1-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:c0fe3dbbf054a00d1f162fda94ce236a899ca01123a798c561ba307ca38af5f0", size = 30702371 },
|
1579 |
+
{ url = "https://files.pythonhosted.org/packages/2e/01/00beeebd33d6bac701f20816a29d2018eba463616bbc07397fdf99ac4ce3/pyarrow-19.0.1-cp313-cp313t-macosx_12_0_x86_64.whl", hash = "sha256:96606c3ba57944d128e8a8399da4812f56c7f61de8c647e3470b417f795d0ef9", size = 32116046 },
|
1580 |
+
{ url = "https://files.pythonhosted.org/packages/1f/c9/23b1ea718dfe967cbd986d16cf2a31fe59d015874258baae16d7ea0ccabc/pyarrow-19.0.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f04d49a6b64cf24719c080b3c2029a3a5b16417fd5fd7c4041f94233af732f3", size = 41091183 },
|
1581 |
+
{ url = "https://files.pythonhosted.org/packages/3a/d4/b4a3aa781a2c715520aa8ab4fe2e7fa49d33a1d4e71c8fc6ab7b5de7a3f8/pyarrow-19.0.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a9137cf7e1640dce4c190551ee69d478f7121b5c6f323553b319cac936395f6", size = 42171896 },
|
1582 |
+
{ url = "https://files.pythonhosted.org/packages/23/1b/716d4cd5a3cbc387c6e6745d2704c4b46654ba2668260d25c402626c5ddb/pyarrow-19.0.1-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:7c1bca1897c28013db5e4c83944a2ab53231f541b9e0c3f4791206d0c0de389a", size = 40464851 },
|
1583 |
+
{ url = "https://files.pythonhosted.org/packages/ed/bd/54907846383dcc7ee28772d7e646f6c34276a17da740002a5cefe90f04f7/pyarrow-19.0.1-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:58d9397b2e273ef76264b45531e9d552d8ec8a6688b7390b5be44c02a37aade8", size = 42085744 },
|
1584 |
+
]
|
1585 |
+
|
1586 |
[[package]]
|
1587 |
name = "pycares"
|
1588 |
version = "4.5.0"
|
|
|
1788 |
{ url = "https://files.pythonhosted.org/packages/8a/a3/c69806f30dd81df5a99d592e7db4c930c3a9b098555aa97b0eb866b20b11/python_socketio-5.12.1-py3-none-any.whl", hash = "sha256:24a0ea7cfff0e021eb28c68edbf7914ee4111bdf030b95e4d250c4dc9af7a386", size = 76947 },
|
1789 |
]
|
1790 |
|
1791 |
+
[[package]]
|
1792 |
+
name = "pytz"
|
1793 |
+
version = "2025.1"
|
1794 |
+
source = { registry = "https://pypi.org/simple" }
|
1795 |
+
sdist = { url = "https://files.pythonhosted.org/packages/5f/57/df1c9157c8d5a05117e455d66fd7cf6dbc46974f832b1058ed4856785d8a/pytz-2025.1.tar.gz", hash = "sha256:c2db42be2a2518b28e65f9207c4d05e6ff547d1efa4086469ef855e4ab70178e", size = 319617 }
|
1796 |
+
wheels = [
|
1797 |
+
{ url = "https://files.pythonhosted.org/packages/eb/38/ac33370d784287baa1c3d538978b5e2ea064d4c1b93ffbd12826c190dd10/pytz-2025.1-py2.py3-none-any.whl", hash = "sha256:89dd22dca55b46eac6eda23b2d72721bf1bdfef212645d81513ef5d03038de57", size = 507930 },
|
1798 |
+
]
|
1799 |
+
|
1800 |
[[package]]
|
1801 |
name = "pywin32"
|
1802 |
version = "308"
|
|
|
1854 |
{ url = "https://files.pythonhosted.org/packages/5f/26/89ebaee5fcbd99bf1c0a627a9447b440118b2d31dea423d074cb0481be5c/qdrant_client-1.13.2-py3-none-any.whl", hash = "sha256:db97e759bd3f8d483a383984ba4c2a158eef56f2188d83df7771591d43de2201", size = 306637 },
|
1855 |
]
|
1856 |
|
1857 |
+
[[package]]
|
1858 |
+
name = "ragas"
|
1859 |
+
version = "0.2.13"
|
1860 |
+
source = { registry = "https://pypi.org/simple" }
|
1861 |
+
dependencies = [
|
1862 |
+
{ name = "appdirs" },
|
1863 |
+
{ name = "datasets" },
|
1864 |
+
{ name = "diskcache" },
|
1865 |
+
{ name = "langchain" },
|
1866 |
+
{ name = "langchain-community" },
|
1867 |
+
{ name = "langchain-core" },
|
1868 |
+
{ name = "langchain-openai" },
|
1869 |
+
{ name = "nest-asyncio" },
|
1870 |
+
{ name = "numpy" },
|
1871 |
+
{ name = "openai" },
|
1872 |
+
{ name = "pydantic" },
|
1873 |
+
{ name = "tiktoken" },
|
1874 |
+
]
|
1875 |
+
sdist = { url = "https://files.pythonhosted.org/packages/22/db/74deba37d53752f5e1656e36df878a73bbe0b5750ad73a30906ce286931d/ragas-0.2.13.tar.gz", hash = "sha256:33ebfd8c88465c7c86e639049138e38d3d3117d03eb68c0b2c98065c4608feb5", size = 39916780 }
|
1876 |
+
wheels = [
|
1877 |
+
{ url = "https://files.pythonhosted.org/packages/b6/1f/1087efbd0d0723ef8212aba2dfd035bdbcef6698623b29e6f724ad8cdcf9/ragas-0.2.13-py3-none-any.whl", hash = "sha256:0a9c4014768cb6a1d962f9348ee2ea36732a1edafdf18d884ab020f4fe2d4acc", size = 178261 },
|
1878 |
+
]
|
1879 |
+
|
1880 |
[[package]]
|
1881 |
name = "rapidfuzz"
|
1882 |
version = "3.12.1"
|
|
|
2008 |
{ name = "langgraph" },
|
2009 |
{ name = "lxml" },
|
2010 |
{ name = "qdrant-client" },
|
2011 |
+
{ name = "ragas" },
|
2012 |
{ name = "typing-extensions" },
|
2013 |
{ name = "unstructured" },
|
2014 |
{ name = "yarl" },
|
|
|
2030 |
{ name = "langgraph", specifier = ">=0.2.74" },
|
2031 |
{ name = "lxml", specifier = ">=5.1.0" },
|
2032 |
{ name = "qdrant-client", specifier = ">=1.13.2" },
|
2033 |
+
{ name = "ragas", specifier = ">=0.2.13" },
|
2034 |
{ name = "typing-extensions", specifier = ">=4.12.2" },
|
2035 |
{ name = "unstructured", specifier = ">=0.14.8" },
|
2036 |
{ name = "yarl", specifier = ">=1.9.4" },
|
|
|
2227 |
{ url = "https://files.pythonhosted.org/packages/65/f3/107a22063bf27bdccf2024833d3445f4eea42b2e598abfbd46f6a63b6cb0/typing_inspect-0.9.0-py3-none-any.whl", hash = "sha256:9ee6fc59062311ef8547596ab6b955e1b8aa46242d854bfc78f4f6b0eff35f9f", size = 8827 },
|
2228 |
]
|
2229 |
|
2230 |
+
[[package]]
|
2231 |
+
name = "tzdata"
|
2232 |
+
version = "2025.1"
|
2233 |
+
source = { registry = "https://pypi.org/simple" }
|
2234 |
+
sdist = { url = "https://files.pythonhosted.org/packages/43/0f/fa4723f22942480be4ca9527bbde8d43f6c3f2fe8412f00e7f5f6746bc8b/tzdata-2025.1.tar.gz", hash = "sha256:24894909e88cdb28bd1636c6887801df64cb485bd593f2fd83ef29075a81d694", size = 194950 }
|
2235 |
+
wheels = [
|
2236 |
+
{ url = "https://files.pythonhosted.org/packages/0f/dd/84f10e23edd882c6f968c21c2434fe67bd4a528967067515feca9e611e5e/tzdata-2025.1-py2.py3-none-any.whl", hash = "sha256:7e127113816800496f027041c570f50bcd464a020098a3b6b199517772303639", size = 346762 },
|
2237 |
+
]
|
2238 |
+
|
2239 |
[[package]]
|
2240 |
name = "unstructured"
|
2241 |
version = "0.14.8"
|
|
|
2412 |
{ url = "https://files.pythonhosted.org/packages/78/58/e860788190eba3bcce367f74d29c4675466ce8dddfba85f7827588416f01/wsproto-1.2.0-py3-none-any.whl", hash = "sha256:b9acddd652b585d75b20477888c56642fdade28bdfd3579aa24a4d2c037dd736", size = 24226 },
|
2413 |
]
|
2414 |
|
2415 |
+
[[package]]
|
2416 |
+
name = "xxhash"
|
2417 |
+
version = "3.5.0"
|
2418 |
+
source = { registry = "https://pypi.org/simple" }
|
2419 |
+
sdist = { url = "https://files.pythonhosted.org/packages/00/5e/d6e5258d69df8b4ed8c83b6664f2b47d30d2dec551a29ad72a6c69eafd31/xxhash-3.5.0.tar.gz", hash = "sha256:84f2caddf951c9cbf8dc2e22a89d4ccf5d86391ac6418fe81e3c67d0cf60b45f", size = 84241 }
|
2420 |
+
wheels = [
|
2421 |
+
{ url = "https://files.pythonhosted.org/packages/07/0e/1bfce2502c57d7e2e787600b31c83535af83746885aa1a5f153d8c8059d6/xxhash-3.5.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:14470ace8bd3b5d51318782cd94e6f94431974f16cb3b8dc15d52f3b69df8e00", size = 31969 },
|
2422 |
+
{ url = "https://files.pythonhosted.org/packages/3f/d6/8ca450d6fe5b71ce521b4e5db69622383d039e2b253e9b2f24f93265b52c/xxhash-3.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:59aa1203de1cb96dbeab595ded0ad0c0056bb2245ae11fac11c0ceea861382b9", size = 30787 },
|
2423 |
+
{ url = "https://files.pythonhosted.org/packages/5b/84/de7c89bc6ef63d750159086a6ada6416cc4349eab23f76ab870407178b93/xxhash-3.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08424f6648526076e28fae6ea2806c0a7d504b9ef05ae61d196d571e5c879c84", size = 220959 },
|
2424 |
+
{ url = "https://files.pythonhosted.org/packages/fe/86/51258d3e8a8545ff26468c977101964c14d56a8a37f5835bc0082426c672/xxhash-3.5.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:61a1ff00674879725b194695e17f23d3248998b843eb5e933007ca743310f793", size = 200006 },
|
2425 |
+
{ url = "https://files.pythonhosted.org/packages/02/0a/96973bd325412feccf23cf3680fd2246aebf4b789122f938d5557c54a6b2/xxhash-3.5.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2f2c61bee5844d41c3eb015ac652a0229e901074951ae48581d58bfb2ba01be", size = 428326 },
|
2426 |
+
{ url = "https://files.pythonhosted.org/packages/11/a7/81dba5010f7e733de88af9555725146fc133be97ce36533867f4c7e75066/xxhash-3.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d32a592cac88d18cc09a89172e1c32d7f2a6e516c3dfde1b9adb90ab5df54a6", size = 194380 },
|
2427 |
+
{ url = "https://files.pythonhosted.org/packages/fb/7d/f29006ab398a173f4501c0e4977ba288f1c621d878ec217b4ff516810c04/xxhash-3.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:70dabf941dede727cca579e8c205e61121afc9b28516752fd65724be1355cc90", size = 207934 },
|
2428 |
+
{ url = "https://files.pythonhosted.org/packages/8a/6e/6e88b8f24612510e73d4d70d9b0c7dff62a2e78451b9f0d042a5462c8d03/xxhash-3.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e5d0ddaca65ecca9c10dcf01730165fd858533d0be84c75c327487c37a906a27", size = 216301 },
|
2429 |
+
{ url = "https://files.pythonhosted.org/packages/af/51/7862f4fa4b75a25c3b4163c8a873f070532fe5f2d3f9b3fc869c8337a398/xxhash-3.5.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3e5b5e16c5a480fe5f59f56c30abdeba09ffd75da8d13f6b9b6fd224d0b4d0a2", size = 203351 },
|
2430 |
+
{ url = "https://files.pythonhosted.org/packages/22/61/8d6a40f288f791cf79ed5bb113159abf0c81d6efb86e734334f698eb4c59/xxhash-3.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:149b7914451eb154b3dfaa721315117ea1dac2cc55a01bfbd4df7c68c5dd683d", size = 210294 },
|
2431 |
+
{ url = "https://files.pythonhosted.org/packages/17/02/215c4698955762d45a8158117190261b2dbefe9ae7e5b906768c09d8bc74/xxhash-3.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:eade977f5c96c677035ff39c56ac74d851b1cca7d607ab3d8f23c6b859379cab", size = 414674 },
|
2432 |
+
{ url = "https://files.pythonhosted.org/packages/31/5c/b7a8db8a3237cff3d535261325d95de509f6a8ae439a5a7a4ffcff478189/xxhash-3.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fa9f547bd98f5553d03160967866a71056a60960be00356a15ecc44efb40ba8e", size = 192022 },
|
2433 |
+
{ url = "https://files.pythonhosted.org/packages/78/e3/dd76659b2811b3fd06892a8beb850e1996b63e9235af5a86ea348f053e9e/xxhash-3.5.0-cp312-cp312-win32.whl", hash = "sha256:f7b58d1fd3551b8c80a971199543379be1cee3d0d409e1f6d8b01c1a2eebf1f8", size = 30170 },
|
2434 |
+
{ url = "https://files.pythonhosted.org/packages/d9/6b/1c443fe6cfeb4ad1dcf231cdec96eb94fb43d6498b4469ed8b51f8b59a37/xxhash-3.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:fa0cafd3a2af231b4e113fba24a65d7922af91aeb23774a8b78228e6cd785e3e", size = 30040 },
|
2435 |
+
{ url = "https://files.pythonhosted.org/packages/0f/eb/04405305f290173acc0350eba6d2f1a794b57925df0398861a20fbafa415/xxhash-3.5.0-cp312-cp312-win_arm64.whl", hash = "sha256:586886c7e89cb9828bcd8a5686b12e161368e0064d040e225e72607b43858ba2", size = 26796 },
|
2436 |
+
{ url = "https://files.pythonhosted.org/packages/c9/b8/e4b3ad92d249be5c83fa72916c9091b0965cb0faeff05d9a0a3870ae6bff/xxhash-3.5.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:37889a0d13b0b7d739cfc128b1c902f04e32de17b33d74b637ad42f1c55101f6", size = 31795 },
|
2437 |
+
{ url = "https://files.pythonhosted.org/packages/fc/d8/b3627a0aebfbfa4c12a41e22af3742cf08c8ea84f5cc3367b5de2d039cce/xxhash-3.5.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:97a662338797c660178e682f3bc180277b9569a59abfb5925e8620fba00b9fc5", size = 30792 },
|
2438 |
+
{ url = "https://files.pythonhosted.org/packages/c3/cc/762312960691da989c7cd0545cb120ba2a4148741c6ba458aa723c00a3f8/xxhash-3.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7f85e0108d51092bdda90672476c7d909c04ada6923c14ff9d913c4f7dc8a3bc", size = 220950 },
|
2439 |
+
{ url = "https://files.pythonhosted.org/packages/fe/e9/cc266f1042c3c13750e86a535496b58beb12bf8c50a915c336136f6168dc/xxhash-3.5.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cd2fd827b0ba763ac919440042302315c564fdb797294d86e8cdd4578e3bc7f3", size = 199980 },
|
2440 |
+
{ url = "https://files.pythonhosted.org/packages/bf/85/a836cd0dc5cc20376de26b346858d0ac9656f8f730998ca4324921a010b9/xxhash-3.5.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:82085c2abec437abebf457c1d12fccb30cc8b3774a0814872511f0f0562c768c", size = 428324 },
|
2441 |
+
{ url = "https://files.pythonhosted.org/packages/b4/0e/15c243775342ce840b9ba34aceace06a1148fa1630cd8ca269e3223987f5/xxhash-3.5.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:07fda5de378626e502b42b311b049848c2ef38784d0d67b6f30bb5008642f8eb", size = 194370 },
|
2442 |
+
{ url = "https://files.pythonhosted.org/packages/87/a1/b028bb02636dfdc190da01951d0703b3d904301ed0ef6094d948983bef0e/xxhash-3.5.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c279f0d2b34ef15f922b77966640ade58b4ccdfef1c4d94b20f2a364617a493f", size = 207911 },
|
2443 |
+
{ url = "https://files.pythonhosted.org/packages/80/d5/73c73b03fc0ac73dacf069fdf6036c9abad82de0a47549e9912c955ab449/xxhash-3.5.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:89e66ceed67b213dec5a773e2f7a9e8c58f64daeb38c7859d8815d2c89f39ad7", size = 216352 },
|
2444 |
+
{ url = "https://files.pythonhosted.org/packages/b6/2a/5043dba5ddbe35b4fe6ea0a111280ad9c3d4ba477dd0f2d1fe1129bda9d0/xxhash-3.5.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:bcd51708a633410737111e998ceb3b45d3dbc98c0931f743d9bb0a209033a326", size = 203410 },
|
2445 |
+
{ url = "https://files.pythonhosted.org/packages/a2/b2/9a8ded888b7b190aed75b484eb5c853ddd48aa2896e7b59bbfbce442f0a1/xxhash-3.5.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:3ff2c0a34eae7df88c868be53a8dd56fbdf592109e21d4bfa092a27b0bf4a7bf", size = 210322 },
|
2446 |
+
{ url = "https://files.pythonhosted.org/packages/98/62/440083fafbc917bf3e4b67c2ade621920dd905517e85631c10aac955c1d2/xxhash-3.5.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:4e28503dccc7d32e0b9817aa0cbfc1f45f563b2c995b7a66c4c8a0d232e840c7", size = 414725 },
|
2447 |
+
{ url = "https://files.pythonhosted.org/packages/75/db/009206f7076ad60a517e016bb0058381d96a007ce3f79fa91d3010f49cc2/xxhash-3.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a6c50017518329ed65a9e4829154626f008916d36295b6a3ba336e2458824c8c", size = 192070 },
|
2448 |
+
{ url = "https://files.pythonhosted.org/packages/1f/6d/c61e0668943a034abc3a569cdc5aeae37d686d9da7e39cf2ed621d533e36/xxhash-3.5.0-cp313-cp313-win32.whl", hash = "sha256:53a068fe70301ec30d868ece566ac90d873e3bb059cf83c32e76012c889b8637", size = 30172 },
|
2449 |
+
{ url = "https://files.pythonhosted.org/packages/96/14/8416dce965f35e3d24722cdf79361ae154fa23e2ab730e5323aa98d7919e/xxhash-3.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:80babcc30e7a1a484eab952d76a4f4673ff601f54d5142c26826502740e70b43", size = 30041 },
|
2450 |
+
{ url = "https://files.pythonhosted.org/packages/27/ee/518b72faa2073f5aa8e3262408d284892cb79cf2754ba0c3a5870645ef73/xxhash-3.5.0-cp313-cp313-win_arm64.whl", hash = "sha256:4811336f1ce11cac89dcbd18f3a25c527c16311709a89313c3acaf771def2d4b", size = 26801 },
|
2451 |
+
]
|
2452 |
+
|
2453 |
[[package]]
|
2454 |
name = "yarl"
|
2455 |
version = "1.18.3"
|