philocifer
commited on
Commit
·
4029738
1
Parent(s):
4c1e615
Added RAGAS evaluation
Browse files- README.md +21 -0
- app.py +2 -2
- data/competitor_store_200.json +0 -0
- pyproject.toml +2 -0
- rag_agent.py +4 -3
- ragas_eval.py +43 -0
- sql_agent.py +2 -2
- synthetic_data_gen.py +31 -0
- uv.lock +170 -3
README.md
CHANGED
@@ -35,4 +35,25 @@ Our business devlopment team purchased competitor data from a vendor that specia
|
|
35 |
When generating semantic content from the structured data, I put a seperator ("="*80) between the store entries, which I used for chunking, making each store a chunk (all are under 1000 tokens). I found this to be effective, particularly with summarization, but is unable to handle query's like "How many stores are in Florida?", which the SQL agent handles with ease.
|
36 |
|
37 |
For creating store profiles, I used US Census Bureau's API service to get vast array of demographic data. There are many business profiling API providers, but I did not want to incurr those costs for this prototype project. Unfortunately there are many gaps in the free census data, so the resulting profiles are generally not useful... but it shows that this approach does work.
|
|
|
|
|
|
|
38 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
When generating semantic content from the structured data, I put a seperator ("="*80) between the store entries, which I used for chunking, making each store a chunk (all are under 1000 tokens). I found this to be effective, particularly with summarization, but is unable to handle query's like "How many stores are in Florida?", which the SQL agent handles with ease.
|
36 |
|
37 |
For creating store profiles, I used US Census Bureau's API service to get vast array of demographic data. There are many business profiling API providers, but I did not want to incurr those costs for this prototype project. Unfortunately there are many gaps in the free census data, so the resulting profiles are generally not useful... but it shows that this approach does work.
|
38 |
+
### Ene-to-End Prototype
|
39 |
+
https://huggingface.co/spaces/philocifer/banner_flip_engine_prototype
|
40 |
+
### Golden Test Dataset
|
41 |
|
42 |
+
| Metric | Score |
|
43 |
+
|-----------------------------|---------|
|
44 |
+
| Context Recall | 0.7867 |
|
45 |
+
| Faithfulness | 0.8726 |
|
46 |
+
| Factual Correctness | 0.5185 |
|
47 |
+
| Answer Relevancy | 0.9069 |
|
48 |
+
| Context Entity Recall | 0.4353 |
|
49 |
+
| Noise Sensitivity Relevant | 0.5952 |
|
50 |
+
|
51 |
+
Strengths:
|
52 |
+
1. High Answer Relevancy (0.9069) - Responses stay focused on user queries
|
53 |
+
2. Strong Faithfulness (0.8726) - Answers remain grounded in provided context
|
54 |
+
3. Good Context Recall (0.7867) - Retrieves most relevant context chunks
|
55 |
+
|
56 |
+
Weaknesses:
|
57 |
+
1. Low Factual Correctness (0.5185) - Generated answers contain factual errors despite good context
|
58 |
+
2. Poor Entity Recall (0.4353) - Struggles to identify/store key entities (store names, locations)
|
59 |
+
3. Noise Sensitivity (0.5952) - Vulnerable to irrelevant/conflicting information
|
app.py
CHANGED
@@ -7,7 +7,7 @@ from typing import Annotated, TypedDict, List
|
|
7 |
from langchain_core.messages import HumanMessage
|
8 |
import os
|
9 |
from dotenv import load_dotenv
|
10 |
-
|
11 |
from rag_agent import rag_agent_tool
|
12 |
from profile_agent import profile_agent_tool
|
13 |
from langgraph.graph.message import add_messages
|
@@ -20,7 +20,7 @@ def load_app():
|
|
20 |
tivly_tool = TavilySearchResults(max_results=5)
|
21 |
|
22 |
tool_belt = [
|
23 |
-
|
24 |
rag_agent_tool,
|
25 |
profile_agent_tool,
|
26 |
tivly_tool
|
|
|
7 |
from langchain_core.messages import HumanMessage
|
8 |
import os
|
9 |
from dotenv import load_dotenv
|
10 |
+
from sql_agent import sql_agent_tool
|
11 |
from rag_agent import rag_agent_tool
|
12 |
from profile_agent import profile_agent_tool
|
13 |
from langgraph.graph.message import add_messages
|
|
|
20 |
tivly_tool = TavilySearchResults(max_results=5)
|
21 |
|
22 |
tool_belt = [
|
23 |
+
sql_agent_tool,
|
24 |
rag_agent_tool,
|
25 |
profile_agent_tool,
|
26 |
tivly_tool
|
data/competitor_store_200.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|
pyproject.toml
CHANGED
@@ -21,6 +21,8 @@ dependencies = [
|
|
21 |
"openai>=1.63.2",
|
22 |
"pandas>=2.2.3",
|
23 |
"python-dotenv>=1.0.1",
|
|
|
|
|
24 |
"sentence-transformers>=3.4.1",
|
25 |
"websockets>=15.0",
|
26 |
]
|
|
|
21 |
"openai>=1.63.2",
|
22 |
"pandas>=2.2.3",
|
23 |
"python-dotenv>=1.0.1",
|
24 |
+
"ragas>=0.2.13",
|
25 |
+
"rapidfuzz>=3.12.1",
|
26 |
"sentence-transformers>=3.4.1",
|
27 |
"websockets>=15.0",
|
28 |
]
|
rag_agent.py
CHANGED
@@ -14,7 +14,10 @@ from tqdm import tqdm
|
|
14 |
|
15 |
load_dotenv()
|
16 |
|
17 |
-
def load_agent():
|
|
|
|
|
|
|
18 |
loader = TextLoader('data/enhanced_store_data_200.txt')
|
19 |
docs = loader.load()
|
20 |
text_splitter = CharacterTextSplitter(
|
@@ -25,8 +28,6 @@ def load_agent():
|
|
25 |
)
|
26 |
split_documents = text_splitter.split_documents(docs)
|
27 |
|
28 |
-
embeddings = OpenAIEmbeddings(model="text-embedding-3-small")
|
29 |
-
|
30 |
client = QdrantClient(":memory:")
|
31 |
client.create_collection(
|
32 |
collection_name="competitor_stores",
|
|
|
14 |
|
15 |
load_dotenv()
|
16 |
|
17 |
+
def load_agent(embeddings=None):
|
18 |
+
if embeddings is None:
|
19 |
+
embeddings = OpenAIEmbeddings(model="text-embedding-3-small")
|
20 |
+
|
21 |
loader = TextLoader('data/enhanced_store_data_200.txt')
|
22 |
docs = loader.load()
|
23 |
text_splitter = CharacterTextSplitter(
|
|
|
28 |
)
|
29 |
split_documents = text_splitter.split_documents(docs)
|
30 |
|
|
|
|
|
31 |
client = QdrantClient(":memory:")
|
32 |
client.create_collection(
|
33 |
collection_name="competitor_stores",
|
ragas_eval.py
ADDED
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from ragas import EvaluationDataset
|
2 |
+
from ragas import evaluate
|
3 |
+
from ragas.llms import LangchainLLMWrapper
|
4 |
+
from langchain_openai import ChatOpenAI
|
5 |
+
from dotenv import load_dotenv
|
6 |
+
from rag_agent import rag_agent
|
7 |
+
from synthetic_data_gen import generate_synthetic_data
|
8 |
+
from ragas.metrics import LLMContextRecall, Faithfulness, FactualCorrectness, ResponseRelevancy, ContextEntityRecall, NoiseSensitivity
|
9 |
+
from ragas import evaluate, RunConfig
|
10 |
+
|
11 |
+
load_dotenv()
|
12 |
+
|
13 |
+
def run_ragas_evaluation(model=None, dataset=None):
|
14 |
+
"""
|
15 |
+
Evaluate the model using RAGAS.
|
16 |
+
"""
|
17 |
+
if model is None:
|
18 |
+
model = rag_agent
|
19 |
+
if dataset is None:
|
20 |
+
dataset = generate_synthetic_data()
|
21 |
+
|
22 |
+
for test_row in dataset:
|
23 |
+
response = model.invoke({"question" : test_row.eval_sample.user_input})
|
24 |
+
test_row.eval_sample.response = response["response"]
|
25 |
+
test_row.eval_sample.retrieved_contexts = [context.page_content for context in response["context"]]
|
26 |
+
|
27 |
+
evaluation_dataset = EvaluationDataset.from_pandas(dataset.to_pandas())
|
28 |
+
evaluator_llm = LangchainLLMWrapper(ChatOpenAI(model="gpt-4o"))
|
29 |
+
|
30 |
+
custom_run_config = RunConfig(timeout=360)
|
31 |
+
|
32 |
+
result = evaluate(
|
33 |
+
dataset=evaluation_dataset,
|
34 |
+
metrics=[LLMContextRecall(), Faithfulness(), FactualCorrectness(), ResponseRelevancy(), ContextEntityRecall(), NoiseSensitivity()],
|
35 |
+
llm=evaluator_llm,
|
36 |
+
run_config=custom_run_config
|
37 |
+
)
|
38 |
+
|
39 |
+
return result
|
40 |
+
|
41 |
+
if __name__ == "__main__":
|
42 |
+
result = run_ragas_evaluation()
|
43 |
+
print(result)
|
sql_agent.py
CHANGED
@@ -81,7 +81,7 @@ def load_agent():
|
|
81 |
)
|
82 |
|
83 |
engine = sa.create_engine(
|
84 |
-
"sqlite
|
85 |
poolclass=sa.pool.SingletonThreadPool
|
86 |
)
|
87 |
|
@@ -91,7 +91,7 @@ def load_agent():
|
|
91 |
# Add deterministic flag for better query optimization
|
92 |
dbapi_connection.create_function("distance", 4, calculate_distance, deterministic=True)
|
93 |
|
94 |
-
json_file = 'data/
|
95 |
table_name = 'competitor_stores'
|
96 |
|
97 |
df = pd.read_json(json_file)
|
|
|
81 |
)
|
82 |
|
83 |
engine = sa.create_engine(
|
84 |
+
"sqlite:///:memory:", # Changed from file-based to in-memory database
|
85 |
poolclass=sa.pool.SingletonThreadPool
|
86 |
)
|
87 |
|
|
|
91 |
# Add deterministic flag for better query optimization
|
92 |
dbapi_connection.create_function("distance", 4, calculate_distance, deterministic=True)
|
93 |
|
94 |
+
json_file = 'data/competitor_store_200.json'
|
95 |
table_name = 'competitor_stores'
|
96 |
|
97 |
df = pd.read_json(json_file)
|
synthetic_data_gen.py
ADDED
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from langchain_community.document_loaders import TextLoader
|
2 |
+
from ragas.llms import LangchainLLMWrapper
|
3 |
+
from ragas.embeddings import LangchainEmbeddingsWrapper
|
4 |
+
from langchain_openai import ChatOpenAI
|
5 |
+
from langchain_openai import OpenAIEmbeddings
|
6 |
+
from ragas.testset import TestsetGenerator
|
7 |
+
from dotenv import load_dotenv
|
8 |
+
|
9 |
+
load_dotenv()
|
10 |
+
|
11 |
+
def generate_synthetic_data(testset_size=20):
|
12 |
+
"""
|
13 |
+
Generate synthetic data for RAGAS evaluation.
|
14 |
+
|
15 |
+
Args:
|
16 |
+
test_size (int): Number of synthetic data entries to generate.
|
17 |
+
"""
|
18 |
+
loader = TextLoader('data/enhanced_store_data_200.txt')
|
19 |
+
docs = loader.load()
|
20 |
+
|
21 |
+
generator_llm = LangchainLLMWrapper(ChatOpenAI(model="gpt-4o"))
|
22 |
+
generator_embeddings = LangchainEmbeddingsWrapper(OpenAIEmbeddings())
|
23 |
+
|
24 |
+
generator = TestsetGenerator(llm=generator_llm, embedding_model=generator_embeddings)
|
25 |
+
dataset = generator.generate_with_langchain_docs(docs, testset_size=testset_size)
|
26 |
+
|
27 |
+
return dataset
|
28 |
+
|
29 |
+
if __name__ == "__main__":
|
30 |
+
dataset = generate_synthetic_data()
|
31 |
+
print(dataset.to_pandas())
|
uv.lock
CHANGED
@@ -104,6 +104,15 @@ wheels = [
|
|
104 |
{ url = "https://files.pythonhosted.org/packages/46/eb/e7f063ad1fec6b3178a3cd82d1a3c4de82cccf283fc42746168188e1cdd5/anyio-4.8.0-py3-none-any.whl", hash = "sha256:b5011f270ab5eb0abf13385f851315585cc37ef330dd88e27ec3d34d651fd47a", size = 96041 },
|
105 |
]
|
106 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
107 |
[[package]]
|
108 |
name = "appnope"
|
109 |
version = "0.1.4"
|
@@ -164,6 +173,8 @@ dependencies = [
|
|
164 |
{ name = "openai" },
|
165 |
{ name = "pandas" },
|
166 |
{ name = "python-dotenv" },
|
|
|
|
|
167 |
{ name = "sentence-transformers" },
|
168 |
{ name = "websockets" },
|
169 |
]
|
@@ -186,6 +197,8 @@ requires-dist = [
|
|
186 |
{ name = "openai", specifier = ">=1.63.2" },
|
187 |
{ name = "pandas", specifier = ">=2.2.3" },
|
188 |
{ name = "python-dotenv", specifier = ">=1.0.1" },
|
|
|
|
|
189 |
{ name = "sentence-transformers", specifier = ">=3.4.1" },
|
190 |
{ name = "websockets", specifier = ">=15.0" },
|
191 |
]
|
@@ -340,6 +353,31 @@ wheels = [
|
|
340 |
{ url = "https://files.pythonhosted.org/packages/c3/be/d0d44e092656fe7a06b55e6103cbce807cdbdee17884a5367c68c9860853/dataclasses_json-0.6.7-py3-none-any.whl", hash = "sha256:0dbf33f26c8d5305befd61b39d2b3414e8a407bedc2834dea9b8d642666fb40a", size = 28686 },
|
341 |
]
|
342 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
343 |
[[package]]
|
344 |
name = "debugpy"
|
345 |
version = "1.8.12"
|
@@ -374,6 +412,24 @@ wheels = [
|
|
374 |
{ url = "https://files.pythonhosted.org/packages/6e/c6/ac0b6c1e2d138f1002bcf799d330bd6d85084fece321e662a14223794041/Deprecated-1.2.18-py2.py3-none-any.whl", hash = "sha256:bd5011788200372a32418f888e326a09ff80d0214bd961147cfed01b5c018eec", size = 9998 },
|
375 |
]
|
376 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
377 |
[[package]]
|
378 |
name = "distro"
|
379 |
version = "1.9.0"
|
@@ -450,11 +506,16 @@ wheels = [
|
|
450 |
|
451 |
[[package]]
|
452 |
name = "fsspec"
|
453 |
-
version = "
|
454 |
source = { registry = "https://pypi.org/simple" }
|
455 |
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
456 |
wheels = [
|
457 |
-
{ url = "https://files.pythonhosted.org/packages/
|
|
|
|
|
|
|
|
|
|
|
458 |
]
|
459 |
|
460 |
[[package]]
|
@@ -1138,6 +1199,22 @@ wheels = [
|
|
1138 |
{ url = "https://files.pythonhosted.org/packages/99/b7/b9e70fde2c0f0c9af4cc5277782a89b66d35948ea3369ec9f598358c3ac5/multidict-6.1.0-py3-none-any.whl", hash = "sha256:48e171e52d1c4d33888e529b999e5900356b9ae588c2f09a52dcefb158b27506", size = 10051 },
|
1139 |
]
|
1140 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1141 |
[[package]]
|
1142 |
name = "mypy-extensions"
|
1143 |
version = "1.0.0"
|
@@ -1684,6 +1761,27 @@ wheels = [
|
|
1684 |
{ url = "https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0", size = 11842 },
|
1685 |
]
|
1686 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1687 |
[[package]]
|
1688 |
name = "pycparser"
|
1689 |
version = "2.22"
|
@@ -1904,6 +2002,52 @@ wheels = [
|
|
1904 |
{ url = "https://files.pythonhosted.org/packages/5f/26/89ebaee5fcbd99bf1c0a627a9447b440118b2d31dea423d074cb0481be5c/qdrant_client-1.13.2-py3-none-any.whl", hash = "sha256:db97e759bd3f8d483a383984ba4c2a158eef56f2188d83df7771591d43de2201", size = 306637 },
|
1905 |
]
|
1906 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1907 |
[[package]]
|
1908 |
name = "regex"
|
1909 |
version = "2024.11.6"
|
@@ -2496,6 +2640,29 @@ wheels = [
|
|
2496 |
{ url = "https://files.pythonhosted.org/packages/78/58/e860788190eba3bcce367f74d29c4675466ce8dddfba85f7827588416f01/wsproto-1.2.0-py3-none-any.whl", hash = "sha256:b9acddd652b585d75b20477888c56642fdade28bdfd3579aa24a4d2c037dd736", size = 24226 },
|
2497 |
]
|
2498 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2499 |
[[package]]
|
2500 |
name = "yarl"
|
2501 |
version = "1.18.3"
|
|
|
104 |
{ url = "https://files.pythonhosted.org/packages/46/eb/e7f063ad1fec6b3178a3cd82d1a3c4de82cccf283fc42746168188e1cdd5/anyio-4.8.0-py3-none-any.whl", hash = "sha256:b5011f270ab5eb0abf13385f851315585cc37ef330dd88e27ec3d34d651fd47a", size = 96041 },
|
105 |
]
|
106 |
|
107 |
+
[[package]]
|
108 |
+
name = "appdirs"
|
109 |
+
version = "1.4.4"
|
110 |
+
source = { registry = "https://pypi.org/simple" }
|
111 |
+
sdist = { url = "https://files.pythonhosted.org/packages/d7/d8/05696357e0311f5b5c316d7b95f46c669dd9c15aaeecbb48c7d0aeb88c40/appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41", size = 13470 }
|
112 |
+
wheels = [
|
113 |
+
{ url = "https://files.pythonhosted.org/packages/3b/00/2344469e2084fb287c2e0b57b72910309874c3245463acd6cf5e3db69324/appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128", size = 9566 },
|
114 |
+
]
|
115 |
+
|
116 |
[[package]]
|
117 |
name = "appnope"
|
118 |
version = "0.1.4"
|
|
|
173 |
{ name = "openai" },
|
174 |
{ name = "pandas" },
|
175 |
{ name = "python-dotenv" },
|
176 |
+
{ name = "ragas" },
|
177 |
+
{ name = "rapidfuzz" },
|
178 |
{ name = "sentence-transformers" },
|
179 |
{ name = "websockets" },
|
180 |
]
|
|
|
197 |
{ name = "openai", specifier = ">=1.63.2" },
|
198 |
{ name = "pandas", specifier = ">=2.2.3" },
|
199 |
{ name = "python-dotenv", specifier = ">=1.0.1" },
|
200 |
+
{ name = "ragas", specifier = ">=0.2.13" },
|
201 |
+
{ name = "rapidfuzz", specifier = ">=3.12.1" },
|
202 |
{ name = "sentence-transformers", specifier = ">=3.4.1" },
|
203 |
{ name = "websockets", specifier = ">=15.0" },
|
204 |
]
|
|
|
353 |
{ url = "https://files.pythonhosted.org/packages/c3/be/d0d44e092656fe7a06b55e6103cbce807cdbdee17884a5367c68c9860853/dataclasses_json-0.6.7-py3-none-any.whl", hash = "sha256:0dbf33f26c8d5305befd61b39d2b3414e8a407bedc2834dea9b8d642666fb40a", size = 28686 },
|
354 |
]
|
355 |
|
356 |
+
[[package]]
|
357 |
+
name = "datasets"
|
358 |
+
version = "3.3.2"
|
359 |
+
source = { registry = "https://pypi.org/simple" }
|
360 |
+
dependencies = [
|
361 |
+
{ name = "aiohttp" },
|
362 |
+
{ name = "dill" },
|
363 |
+
{ name = "filelock" },
|
364 |
+
{ name = "fsspec", extra = ["http"] },
|
365 |
+
{ name = "huggingface-hub" },
|
366 |
+
{ name = "multiprocess" },
|
367 |
+
{ name = "numpy" },
|
368 |
+
{ name = "packaging" },
|
369 |
+
{ name = "pandas" },
|
370 |
+
{ name = "pyarrow" },
|
371 |
+
{ name = "pyyaml" },
|
372 |
+
{ name = "requests" },
|
373 |
+
{ name = "tqdm" },
|
374 |
+
{ name = "xxhash" },
|
375 |
+
]
|
376 |
+
sdist = { url = "https://files.pythonhosted.org/packages/73/0c/dc3d172104e78e68f7a60386664adbf61db5d10c2246b31ddad06c2d1cb3/datasets-3.3.2.tar.gz", hash = "sha256:20901a97da870fb80b407ccc45f034a7ac99accd07da897ed42f11641bdb8c6e", size = 564352 }
|
377 |
+
wheels = [
|
378 |
+
{ url = "https://files.pythonhosted.org/packages/4c/37/22ef7675bef4ffe9577b937ddca2e22791534cbbe11c30714972a91532dc/datasets-3.3.2-py3-none-any.whl", hash = "sha256:fdaf3d5d70242621210b044e9b9b15a56e908bfc3e9d077bcf5605ac390f70bd", size = 485360 },
|
379 |
+
]
|
380 |
+
|
381 |
[[package]]
|
382 |
name = "debugpy"
|
383 |
version = "1.8.12"
|
|
|
412 |
{ url = "https://files.pythonhosted.org/packages/6e/c6/ac0b6c1e2d138f1002bcf799d330bd6d85084fece321e662a14223794041/Deprecated-1.2.18-py2.py3-none-any.whl", hash = "sha256:bd5011788200372a32418f888e326a09ff80d0214bd961147cfed01b5c018eec", size = 9998 },
|
413 |
]
|
414 |
|
415 |
+
[[package]]
|
416 |
+
name = "dill"
|
417 |
+
version = "0.3.8"
|
418 |
+
source = { registry = "https://pypi.org/simple" }
|
419 |
+
sdist = { url = "https://files.pythonhosted.org/packages/17/4d/ac7ffa80c69ea1df30a8aa11b3578692a5118e7cd1aa157e3ef73b092d15/dill-0.3.8.tar.gz", hash = "sha256:3ebe3c479ad625c4553aca177444d89b486b1d84982eeacded644afc0cf797ca", size = 184847 }
|
420 |
+
wheels = [
|
421 |
+
{ url = "https://files.pythonhosted.org/packages/c9/7a/cef76fd8438a42f96db64ddaa85280485a9c395e7df3db8158cfec1eee34/dill-0.3.8-py3-none-any.whl", hash = "sha256:c36ca9ffb54365bdd2f8eb3eff7d2a21237f8452b57ace88b1ac615b7e815bd7", size = 116252 },
|
422 |
+
]
|
423 |
+
|
424 |
+
[[package]]
|
425 |
+
name = "diskcache"
|
426 |
+
version = "5.6.3"
|
427 |
+
source = { registry = "https://pypi.org/simple" }
|
428 |
+
sdist = { url = "https://files.pythonhosted.org/packages/3f/21/1c1ffc1a039ddcc459db43cc108658f32c57d271d7289a2794e401d0fdb6/diskcache-5.6.3.tar.gz", hash = "sha256:2c3a3fa2743d8535d832ec61c2054a1641f41775aa7c556758a109941e33e4fc", size = 67916 }
|
429 |
+
wheels = [
|
430 |
+
{ url = "https://files.pythonhosted.org/packages/3f/27/4570e78fc0bf5ea0ca45eb1de3818a23787af9b390c0b0a0033a1b8236f9/diskcache-5.6.3-py3-none-any.whl", hash = "sha256:5e31b2d5fbad117cc363ebaf6b689474db18a1f6438bc82358b024abd4c2ca19", size = 45550 },
|
431 |
+
]
|
432 |
+
|
433 |
[[package]]
|
434 |
name = "distro"
|
435 |
version = "1.9.0"
|
|
|
506 |
|
507 |
[[package]]
|
508 |
name = "fsspec"
|
509 |
+
version = "2024.12.0"
|
510 |
source = { registry = "https://pypi.org/simple" }
|
511 |
+
sdist = { url = "https://files.pythonhosted.org/packages/ee/11/de70dee31455c546fbc88301971ec03c328f3d1138cfba14263f651e9551/fsspec-2024.12.0.tar.gz", hash = "sha256:670700c977ed2fb51e0d9f9253177ed20cbde4a3e5c0283cc5385b5870c8533f", size = 291600 }
|
512 |
wheels = [
|
513 |
+
{ url = "https://files.pythonhosted.org/packages/de/86/5486b0188d08aa643e127774a99bac51ffa6cf343e3deb0583956dca5b22/fsspec-2024.12.0-py3-none-any.whl", hash = "sha256:b520aed47ad9804237ff878b504267a3b0b441e97508bd6d2d8774e3db85cee2", size = 183862 },
|
514 |
+
]
|
515 |
+
|
516 |
+
[package.optional-dependencies]
|
517 |
+
http = [
|
518 |
+
{ name = "aiohttp" },
|
519 |
]
|
520 |
|
521 |
[[package]]
|
|
|
1199 |
{ url = "https://files.pythonhosted.org/packages/99/b7/b9e70fde2c0f0c9af4cc5277782a89b66d35948ea3369ec9f598358c3ac5/multidict-6.1.0-py3-none-any.whl", hash = "sha256:48e171e52d1c4d33888e529b999e5900356b9ae588c2f09a52dcefb158b27506", size = 10051 },
|
1200 |
]
|
1201 |
|
1202 |
+
[[package]]
|
1203 |
+
name = "multiprocess"
|
1204 |
+
version = "0.70.16"
|
1205 |
+
source = { registry = "https://pypi.org/simple" }
|
1206 |
+
dependencies = [
|
1207 |
+
{ name = "dill" },
|
1208 |
+
]
|
1209 |
+
sdist = { url = "https://files.pythonhosted.org/packages/b5/ae/04f39c5d0d0def03247c2893d6f2b83c136bf3320a2154d7b8858f2ba72d/multiprocess-0.70.16.tar.gz", hash = "sha256:161af703d4652a0e1410be6abccecde4a7ddffd19341be0a7011b94aeb171ac1", size = 1772603 }
|
1210 |
+
wheels = [
|
1211 |
+
{ url = "https://files.pythonhosted.org/packages/bc/f7/7ec7fddc92e50714ea3745631f79bd9c96424cb2702632521028e57d3a36/multiprocess-0.70.16-py310-none-any.whl", hash = "sha256:c4a9944c67bd49f823687463660a2d6daae94c289adff97e0f9d696ba6371d02", size = 134824 },
|
1212 |
+
{ url = "https://files.pythonhosted.org/packages/50/15/b56e50e8debaf439f44befec5b2af11db85f6e0f344c3113ae0be0593a91/multiprocess-0.70.16-py311-none-any.whl", hash = "sha256:af4cabb0dac72abfb1e794fa7855c325fd2b55a10a44628a3c1ad3311c04127a", size = 143519 },
|
1213 |
+
{ url = "https://files.pythonhosted.org/packages/0a/7d/a988f258104dcd2ccf1ed40fdc97e26c4ac351eeaf81d76e266c52d84e2f/multiprocess-0.70.16-py312-none-any.whl", hash = "sha256:fc0544c531920dde3b00c29863377f87e1632601092ea2daca74e4beb40faa2e", size = 146741 },
|
1214 |
+
{ url = "https://files.pythonhosted.org/packages/ea/89/38df130f2c799090c978b366cfdf5b96d08de5b29a4a293df7f7429fa50b/multiprocess-0.70.16-py38-none-any.whl", hash = "sha256:a71d82033454891091a226dfc319d0cfa8019a4e888ef9ca910372a446de4435", size = 132628 },
|
1215 |
+
{ url = "https://files.pythonhosted.org/packages/da/d9/f7f9379981e39b8c2511c9e0326d212accacb82f12fbfdc1aa2ce2a7b2b6/multiprocess-0.70.16-py39-none-any.whl", hash = "sha256:a0bafd3ae1b732eac64be2e72038231c1ba97724b60b09400d68f229fcc2fbf3", size = 133351 },
|
1216 |
+
]
|
1217 |
+
|
1218 |
[[package]]
|
1219 |
name = "mypy-extensions"
|
1220 |
version = "1.0.0"
|
|
|
1761 |
{ url = "https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0", size = 11842 },
|
1762 |
]
|
1763 |
|
1764 |
+
[[package]]
|
1765 |
+
name = "pyarrow"
|
1766 |
+
version = "19.0.1"
|
1767 |
+
source = { registry = "https://pypi.org/simple" }
|
1768 |
+
sdist = { url = "https://files.pythonhosted.org/packages/7f/09/a9046344212690f0632b9c709f9bf18506522feb333c894d0de81d62341a/pyarrow-19.0.1.tar.gz", hash = "sha256:3bf266b485df66a400f282ac0b6d1b500b9d2ae73314a153dbe97d6d5cc8a99e", size = 1129437 }
|
1769 |
+
wheels = [
|
1770 |
+
{ 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 },
|
1771 |
+
{ 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 },
|
1772 |
+
{ 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 },
|
1773 |
+
{ 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 },
|
1774 |
+
{ 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 },
|
1775 |
+
{ 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 },
|
1776 |
+
{ url = "https://files.pythonhosted.org/packages/40/49/2325f5c9e7a1c125c01ba0c509d400b152c972a47958768e4e35e04d13d8/pyarrow-19.0.1-cp313-cp313-win_amd64.whl", hash = "sha256:d9d46e06846a41ba906ab25302cf0fd522f81aa2a85a71021826f34639ad31ef", size = 25242568 },
|
1777 |
+
{ 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 },
|
1778 |
+
{ 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 },
|
1779 |
+
{ 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 },
|
1780 |
+
{ 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 },
|
1781 |
+
{ 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 },
|
1782 |
+
{ 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 },
|
1783 |
+
]
|
1784 |
+
|
1785 |
[[package]]
|
1786 |
name = "pycparser"
|
1787 |
version = "2.22"
|
|
|
2002 |
{ url = "https://files.pythonhosted.org/packages/5f/26/89ebaee5fcbd99bf1c0a627a9447b440118b2d31dea423d074cb0481be5c/qdrant_client-1.13.2-py3-none-any.whl", hash = "sha256:db97e759bd3f8d483a383984ba4c2a158eef56f2188d83df7771591d43de2201", size = 306637 },
|
2003 |
]
|
2004 |
|
2005 |
+
[[package]]
|
2006 |
+
name = "ragas"
|
2007 |
+
version = "0.2.13"
|
2008 |
+
source = { registry = "https://pypi.org/simple" }
|
2009 |
+
dependencies = [
|
2010 |
+
{ name = "appdirs" },
|
2011 |
+
{ name = "datasets" },
|
2012 |
+
{ name = "diskcache" },
|
2013 |
+
{ name = "langchain" },
|
2014 |
+
{ name = "langchain-community" },
|
2015 |
+
{ name = "langchain-core" },
|
2016 |
+
{ name = "langchain-openai" },
|
2017 |
+
{ name = "nest-asyncio" },
|
2018 |
+
{ name = "numpy" },
|
2019 |
+
{ name = "openai" },
|
2020 |
+
{ name = "pydantic" },
|
2021 |
+
{ name = "tiktoken" },
|
2022 |
+
]
|
2023 |
+
sdist = { url = "https://files.pythonhosted.org/packages/22/db/74deba37d53752f5e1656e36df878a73bbe0b5750ad73a30906ce286931d/ragas-0.2.13.tar.gz", hash = "sha256:33ebfd8c88465c7c86e639049138e38d3d3117d03eb68c0b2c98065c4608feb5", size = 39916780 }
|
2024 |
+
wheels = [
|
2025 |
+
{ url = "https://files.pythonhosted.org/packages/b6/1f/1087efbd0d0723ef8212aba2dfd035bdbcef6698623b29e6f724ad8cdcf9/ragas-0.2.13-py3-none-any.whl", hash = "sha256:0a9c4014768cb6a1d962f9348ee2ea36732a1edafdf18d884ab020f4fe2d4acc", size = 178261 },
|
2026 |
+
]
|
2027 |
+
|
2028 |
+
[[package]]
|
2029 |
+
name = "rapidfuzz"
|
2030 |
+
version = "3.12.1"
|
2031 |
+
source = { registry = "https://pypi.org/simple" }
|
2032 |
+
sdist = { url = "https://files.pythonhosted.org/packages/c9/df/c300ead8c2962f54ad87872e6372a6836f0181a7f20b433c987bd106bfce/rapidfuzz-3.12.1.tar.gz", hash = "sha256:6a98bbca18b4a37adddf2d8201856441c26e9c981d8895491b5bc857b5f780eb", size = 57907552 }
|
2033 |
+
wheels = [
|
2034 |
+
{ url = "https://files.pythonhosted.org/packages/62/d2/ceebc2446d1f3d3f2cae2597116982e50c2eed9ff2f5a322a51736981405/rapidfuzz-3.12.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:97f824c15bc6933a31d6e3cbfa90188ba0e5043cf2b6dd342c2b90ee8b3fd47c", size = 1936794 },
|
2035 |
+
{ url = "https://files.pythonhosted.org/packages/88/38/37f7ea800aa959a4f7a63477fc9ad7f3cd024e46bfadce5d23420af6c7e5/rapidfuzz-3.12.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a973b3f5cabf931029a3ae4a0f72e3222e53d412ea85fc37ddc49e1774f00fbf", size = 1424155 },
|
2036 |
+
{ url = "https://files.pythonhosted.org/packages/3f/14/409d0aa84430451488177fcc5cba8babcdf5a45cee772a2a265b9b5f4c7e/rapidfuzz-3.12.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df7880e012228722dec1be02b9ef3898ed023388b8a24d6fa8213d7581932510", size = 1398013 },
|
2037 |
+
{ url = "https://files.pythonhosted.org/packages/4b/2c/601e3ad0bbe61e65f99e72c8cefed9713606cf4b297cc4c3876051db7722/rapidfuzz-3.12.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9c78582f50e75e6c2bc38c791ed291cb89cf26a3148c47860c1a04d6e5379c8e", size = 5526157 },
|
2038 |
+
{ url = "https://files.pythonhosted.org/packages/97/ce/deb7b00ce6e06713fc4df81336402b7fa062f2393c8a47401c228ee906c3/rapidfuzz-3.12.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2d7d9e6a04d8344b0198c96394c28874086888d0a2b2f605f30d1b27b9377b7d", size = 1648446 },
|
2039 |
+
{ url = "https://files.pythonhosted.org/packages/ec/6f/2b8eae1748a022290815999594b438dbc1e072c38c76178ea996920a6253/rapidfuzz-3.12.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5620001fd4d6644a2f56880388179cc8f3767670f0670160fcb97c3b46c828af", size = 1676038 },
|
2040 |
+
{ url = "https://files.pythonhosted.org/packages/b9/6c/5c831197aca7148ed85c86bbe940e66073fea0fa97f30307bb5850ed8858/rapidfuzz-3.12.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0666ab4c52e500af7ba5cc17389f5d15c0cdad06412c80312088519fdc25686d", size = 3114137 },
|
2041 |
+
{ url = "https://files.pythonhosted.org/packages/fc/f2/d66ac185eeb0ee3fc0fe208dab1e72feece2c883bc0ab2097570a8159a7b/rapidfuzz-3.12.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:27b4d440fa50b50c515a91a01ee17e8ede719dca06eef4c0cccf1a111a4cfad3", size = 2305754 },
|
2042 |
+
{ url = "https://files.pythonhosted.org/packages/6c/61/9bf74d7ea9bebc7a1bed707591617bba7901fce414d346a7c5532ef02dbd/rapidfuzz-3.12.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:83dccfd5a754f2a0e8555b23dde31f0f7920601bfa807aa76829391ea81e7c67", size = 6901746 },
|
2043 |
+
{ url = "https://files.pythonhosted.org/packages/81/73/d8dddf73e168f723ef21272e8abb7d34d9244da395eb90ed5a617f870678/rapidfuzz-3.12.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:b572b634740e047c53743ed27a1bb3b4f93cf4abbac258cd7af377b2c4a9ba5b", size = 2673947 },
|
2044 |
+
{ url = "https://files.pythonhosted.org/packages/2e/31/3c473cea7d76af162819a5b84f5e7bdcf53b9e19568fc37cfbdab4f4512a/rapidfuzz-3.12.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:7fa7b81fb52902d5f78dac42b3d6c835a6633b01ddf9b202a3ca8443be4b2d6a", size = 3233070 },
|
2045 |
+
{ url = "https://files.pythonhosted.org/packages/c0/b7/73227dcbf8586f0ca4a77be2720311367288e2db142ae00a1404f42e712d/rapidfuzz-3.12.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b1d4fbff980cb6baef4ee675963c081f7b5d6580a105d6a4962b20f1f880e1fb", size = 4146828 },
|
2046 |
+
{ url = "https://files.pythonhosted.org/packages/3a/c8/fea749c662e268d348a77501995b51ac95cdc3624f3f95ba261f30b000ff/rapidfuzz-3.12.1-cp313-cp313-win32.whl", hash = "sha256:3fe8da12ea77271097b303fa7624cfaf5afd90261002314e3b0047d36f4afd8d", size = 1831797 },
|
2047 |
+
{ url = "https://files.pythonhosted.org/packages/66/18/11052be5984d9972eb04a52e2931e19e95b2e87731d179f60b79707b7efd/rapidfuzz-3.12.1-cp313-cp313-win_amd64.whl", hash = "sha256:6f7e92fc7d2a7f02e1e01fe4f539324dfab80f27cb70a30dd63a95445566946b", size = 1610169 },
|
2048 |
+
{ url = "https://files.pythonhosted.org/packages/db/c1/66427c618f000298edbd24e46dd3dd2d3fa441a602701ba6a260d41dd62b/rapidfuzz-3.12.1-cp313-cp313-win_arm64.whl", hash = "sha256:e31be53d7f4905a6a038296d8b773a79da9ee9f0cd19af9490c5c5a22e37d2e5", size = 863036 },
|
2049 |
+
]
|
2050 |
+
|
2051 |
[[package]]
|
2052 |
name = "regex"
|
2053 |
version = "2024.11.6"
|
|
|
2640 |
{ url = "https://files.pythonhosted.org/packages/78/58/e860788190eba3bcce367f74d29c4675466ce8dddfba85f7827588416f01/wsproto-1.2.0-py3-none-any.whl", hash = "sha256:b9acddd652b585d75b20477888c56642fdade28bdfd3579aa24a4d2c037dd736", size = 24226 },
|
2641 |
]
|
2642 |
|
2643 |
+
[[package]]
|
2644 |
+
name = "xxhash"
|
2645 |
+
version = "3.5.0"
|
2646 |
+
source = { registry = "https://pypi.org/simple" }
|
2647 |
+
sdist = { url = "https://files.pythonhosted.org/packages/00/5e/d6e5258d69df8b4ed8c83b6664f2b47d30d2dec551a29ad72a6c69eafd31/xxhash-3.5.0.tar.gz", hash = "sha256:84f2caddf951c9cbf8dc2e22a89d4ccf5d86391ac6418fe81e3c67d0cf60b45f", size = 84241 }
|
2648 |
+
wheels = [
|
2649 |
+
{ 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 },
|
2650 |
+
{ 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 },
|
2651 |
+
{ 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 },
|
2652 |
+
{ 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 },
|
2653 |
+
{ 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 },
|
2654 |
+
{ 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 },
|
2655 |
+
{ 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 },
|
2656 |
+
{ 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 },
|
2657 |
+
{ 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 },
|
2658 |
+
{ 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 },
|
2659 |
+
{ 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 },
|
2660 |
+
{ 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 },
|
2661 |
+
{ url = "https://files.pythonhosted.org/packages/1f/6d/c61e0668943a034abc3a569cdc5aeae37d686d9da7e39cf2ed621d533e36/xxhash-3.5.0-cp313-cp313-win32.whl", hash = "sha256:53a068fe70301ec30d868ece566ac90d873e3bb059cf83c32e76012c889b8637", size = 30172 },
|
2662 |
+
{ url = "https://files.pythonhosted.org/packages/96/14/8416dce965f35e3d24722cdf79361ae154fa23e2ab730e5323aa98d7919e/xxhash-3.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:80babcc30e7a1a484eab952d76a4f4673ff601f54d5142c26826502740e70b43", size = 30041 },
|
2663 |
+
{ url = "https://files.pythonhosted.org/packages/27/ee/518b72faa2073f5aa8e3262408d284892cb79cf2754ba0c3a5870645ef73/xxhash-3.5.0-cp313-cp313-win_arm64.whl", hash = "sha256:4811336f1ce11cac89dcbd18f3a25c527c16311709a89313c3acaf771def2d4b", size = 26801 },
|
2664 |
+
]
|
2665 |
+
|
2666 |
[[package]]
|
2667 |
name = "yarl"
|
2668 |
version = "1.18.3"
|