Migrate infinity at startup (#3858)
Browse files### What problem does this PR solve?
Migrate infinity at startup
#3809
https://github.com/infiniflow/infinity/issues/2321
### Type of change
- [x] New Feature (non-breaking change which adds functionality)
- conf/infinity_mapping.json +12 -12
- docker/docker-compose-base.yml +1 -1
- poetry.lock +118 -132
- pyproject.toml +1 -1
- rag/utils/infinity_conn.py +82 -35
- sdk/python/ragflow_sdk/modules/agent.py +1 -2
conf/infinity_mapping.json
CHANGED
@@ -5,17 +5,17 @@
|
|
5 |
"create_time": {"type": "varchar", "default": ""},
|
6 |
"create_timestamp_flt": {"type": "float", "default": 0.0},
|
7 |
"img_id": {"type": "varchar", "default": ""},
|
8 |
-
"docnm_kwd": {"type": "varchar", "default": ""},
|
9 |
-
"title_tks": {"type": "varchar", "default": ""},
|
10 |
-
"title_sm_tks": {"type": "varchar", "default": ""},
|
11 |
-
"name_kwd": {"type": "varchar", "default": ""},
|
12 |
-
"important_kwd": {"type": "varchar", "default": ""},
|
13 |
-
"important_tks": {"type": "varchar", "default": ""},
|
14 |
-
"question_kwd": {"type": "varchar", "default": ""},
|
15 |
-
"question_tks": {"type": "varchar", "default": ""},
|
16 |
"content_with_weight": {"type": "varchar", "default": ""},
|
17 |
-
"content_ltks": {"type": "varchar", "default": ""},
|
18 |
-
"content_sm_ltks": {"type": "varchar", "default": ""},
|
19 |
"page_num_int": {"type": "varchar", "default": ""},
|
20 |
"top_int": {"type": "varchar", "default": ""},
|
21 |
"position_int": {"type": "varchar", "default": ""},
|
@@ -23,7 +23,7 @@
|
|
23 |
"weight_flt": {"type": "float", "default": 0.0},
|
24 |
"rank_int": {"type": "integer", "default": 0},
|
25 |
"available_int": {"type": "integer", "default": 1},
|
26 |
-
"knowledge_graph_kwd": {"type": "varchar", "default": ""},
|
27 |
-
"entities_kwd": {"type": "varchar", "default": ""},
|
28 |
"pagerank_fea": {"type": "integer", "default": 0}
|
29 |
}
|
|
|
5 |
"create_time": {"type": "varchar", "default": ""},
|
6 |
"create_timestamp_flt": {"type": "float", "default": 0.0},
|
7 |
"img_id": {"type": "varchar", "default": ""},
|
8 |
+
"docnm_kwd": {"type": "varchar", "default": "", "analyzer": "whitespace"},
|
9 |
+
"title_tks": {"type": "varchar", "default": "", "analyzer": "whitespace"},
|
10 |
+
"title_sm_tks": {"type": "varchar", "default": "", "analyzer": "whitespace"},
|
11 |
+
"name_kwd": {"type": "varchar", "default": "", "analyzer": "whitespace"},
|
12 |
+
"important_kwd": {"type": "varchar", "default": "", "analyzer": "whitespace"},
|
13 |
+
"important_tks": {"type": "varchar", "default": "", "analyzer": "whitespace"},
|
14 |
+
"question_kwd": {"type": "varchar", "default": "", "analyzer": "whitespace"},
|
15 |
+
"question_tks": {"type": "varchar", "default": "", "analyzer": "whitespace"},
|
16 |
"content_with_weight": {"type": "varchar", "default": ""},
|
17 |
+
"content_ltks": {"type": "varchar", "default": "", "analyzer": "whitespace"},
|
18 |
+
"content_sm_ltks": {"type": "varchar", "default": "", "analyzer": "whitespace"},
|
19 |
"page_num_int": {"type": "varchar", "default": ""},
|
20 |
"top_int": {"type": "varchar", "default": ""},
|
21 |
"position_int": {"type": "varchar", "default": ""},
|
|
|
23 |
"weight_flt": {"type": "float", "default": 0.0},
|
24 |
"rank_int": {"type": "integer", "default": 0},
|
25 |
"available_int": {"type": "integer", "default": 1},
|
26 |
+
"knowledge_graph_kwd": {"type": "varchar", "default": "", "analyzer": "whitespace"},
|
27 |
+
"entities_kwd": {"type": "varchar", "default": "", "analyzer": "whitespace"},
|
28 |
"pagerank_fea": {"type": "integer", "default": 0}
|
29 |
}
|
docker/docker-compose-base.yml
CHANGED
@@ -36,7 +36,7 @@ services:
|
|
36 |
container_name: ragflow-infinity
|
37 |
profiles:
|
38 |
- infinity
|
39 |
-
image: infiniflow/infinity:v0.5.0-
|
40 |
volumes:
|
41 |
- infinity_data:/var/infinity
|
42 |
- ./infinity_conf.toml:/infinity_conf.toml
|
|
|
36 |
container_name: ragflow-infinity
|
37 |
profiles:
|
38 |
- infinity
|
39 |
+
image: infiniflow/infinity:v0.5.0-dev6
|
40 |
volumes:
|
41 |
- infinity_data:/var/infinity
|
42 |
- ./infinity_conf.toml:/infinity_conf.toml
|
poetry.lock
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
# This file is automatically @generated by Poetry 1.8.
|
2 |
|
3 |
[[package]]
|
4 |
name = "accelerate"
|
@@ -145,7 +145,7 @@ name = "aiolimiter"
|
|
145 |
version = "1.2.1"
|
146 |
description = "asyncio rate limiter, a leaky bucket implementation"
|
147 |
optional = false
|
148 |
-
python-versions = "
|
149 |
files = [
|
150 |
{file = "aiolimiter-1.2.1-py3-none-any.whl", hash = "sha256:d3f249e9059a20badcb56b61601a83556133655c11d1eb3dd3e04ff069e5f3c7"},
|
151 |
{file = "aiolimiter-1.2.1.tar.gz", hash = "sha256:e02a37ea1a855d9e832252a105420ad4d15011505512a1a1d814647451b5cca9"},
|
@@ -196,13 +196,13 @@ files = [
|
|
196 |
|
197 |
[[package]]
|
198 |
name = "akshare"
|
199 |
-
version = "1.15.
|
200 |
description = "AKShare is an elegant and simple financial data interface library for Python, built for human beings!"
|
201 |
optional = false
|
202 |
python-versions = ">=3.8"
|
203 |
files = [
|
204 |
-
{file = "akshare-1.15.
|
205 |
-
{file = "akshare-1.15.
|
206 |
]
|
207 |
|
208 |
[package.dependencies]
|
@@ -416,7 +416,7 @@ name = "aspose-slides"
|
|
416 |
version = "24.12.0"
|
417 |
description = "Aspose.Slides for Python via .NET is a presentation file formats processing library for working with Microsoft PowerPoint files without using Microsoft PowerPoint."
|
418 |
optional = false
|
419 |
-
python-versions = "
|
420 |
files = [
|
421 |
{file = "Aspose.Slides-24.12.0-py3-none-macosx_10_14_x86_64.whl", hash = "sha256:ccfaa61a863ed28cd37b221e31a0edf4a83802599d76fb50861c25149ac5e5e3"},
|
422 |
{file = "Aspose.Slides-24.12.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:b050659129c5ca92e52fbcd7d5091caa244db731adb68fbea1fd0a8b9fd62a5a"},
|
@@ -568,7 +568,7 @@ name = "bce-python-sdk"
|
|
568 |
version = "0.9.23"
|
569 |
description = "BCE SDK for python"
|
570 |
optional = false
|
571 |
-
python-versions = "!=3.0
|
572 |
files = [
|
573 |
{file = "bce_python_sdk-0.9.23-py3-none-any.whl", hash = "sha256:8debe21a040e00060f6044877d594765ed7b18bc765c6bf16b878bca864140a3"},
|
574 |
{file = "bce_python_sdk-0.9.23.tar.gz", hash = "sha256:19739fed5cd0725356fc5ffa2acbdd8fb23f2a81edb91db21a03174551d0cf41"},
|
@@ -1366,101 +1366,101 @@ test-no-images = ["pytest", "pytest-cov", "pytest-rerunfailures", "pytest-xdist"
|
|
1366 |
|
1367 |
[[package]]
|
1368 |
name = "cramjam"
|
1369 |
-
version = "2.9.
|
1370 |
description = "Thin Python bindings to de/compression algorithms in Rust"
|
1371 |
optional = false
|
1372 |
python-versions = ">=3.8"
|
1373 |
files = [
|
1374 |
-
{file = "cramjam-2.9.
|
1375 |
-
{file = "cramjam-2.9.
|
1376 |
-
{file = "cramjam-2.9.
|
1377 |
-
{file = "cramjam-2.9.
|
1378 |
-
{file = "cramjam-2.9.
|
1379 |
-
{file = "cramjam-2.9.
|
1380 |
-
{file = "cramjam-2.9.
|
1381 |
-
{file = "cramjam-2.9.
|
1382 |
-
{file = "cramjam-2.9.
|
1383 |
-
{file = "cramjam-2.9.
|
1384 |
-
{file = "cramjam-2.9.
|
1385 |
-
{file = "cramjam-2.9.
|
1386 |
-
{file = "cramjam-2.9.
|
1387 |
-
{file = "cramjam-2.9.
|
1388 |
-
{file = "cramjam-2.9.
|
1389 |
-
{file = "cramjam-2.9.
|
1390 |
-
{file = "cramjam-2.9.
|
1391 |
-
{file = "cramjam-2.9.
|
1392 |
-
{file = "cramjam-2.9.
|
1393 |
-
{file = "cramjam-2.9.
|
1394 |
-
{file = "cramjam-2.9.
|
1395 |
-
{file = "cramjam-2.9.
|
1396 |
-
{file = "cramjam-2.9.
|
1397 |
-
{file = "cramjam-2.9.
|
1398 |
-
{file = "cramjam-2.9.
|
1399 |
-
{file = "cramjam-2.9.
|
1400 |
-
{file = "cramjam-2.9.
|
1401 |
-
{file = "cramjam-2.9.
|
1402 |
-
{file = "cramjam-2.9.
|
1403 |
-
{file = "cramjam-2.9.
|
1404 |
-
{file = "cramjam-2.9.
|
1405 |
-
{file = "cramjam-2.9.
|
1406 |
-
{file = "cramjam-2.9.
|
1407 |
-
{file = "cramjam-2.9.
|
1408 |
-
{file = "cramjam-2.9.
|
1409 |
-
{file = "cramjam-2.9.
|
1410 |
-
{file = "cramjam-2.9.
|
1411 |
-
{file = "cramjam-2.9.
|
1412 |
-
{file = "cramjam-2.9.
|
1413 |
-
{file = "cramjam-2.9.
|
1414 |
-
{file = "cramjam-2.9.
|
1415 |
-
{file = "cramjam-2.9.
|
1416 |
-
{file = "cramjam-2.9.
|
1417 |
-
{file = "cramjam-2.9.
|
1418 |
-
{file = "cramjam-2.9.
|
1419 |
-
{file = "cramjam-2.9.
|
1420 |
-
{file = "cramjam-2.9.
|
1421 |
-
{file = "cramjam-2.9.
|
1422 |
-
{file = "cramjam-2.9.
|
1423 |
-
{file = "cramjam-2.9.
|
1424 |
-
{file = "cramjam-2.9.
|
1425 |
-
{file = "cramjam-2.9.
|
1426 |
-
{file = "cramjam-2.9.
|
1427 |
-
{file = "cramjam-2.9.
|
1428 |
-
{file = "cramjam-2.9.
|
1429 |
-
{file = "cramjam-2.9.
|
1430 |
-
{file = "cramjam-2.9.
|
1431 |
-
{file = "cramjam-2.9.
|
1432 |
-
{file = "cramjam-2.9.
|
1433 |
-
{file = "cramjam-2.9.
|
1434 |
-
{file = "cramjam-2.9.
|
1435 |
-
{file = "cramjam-2.9.
|
1436 |
-
{file = "cramjam-2.9.
|
1437 |
-
{file = "cramjam-2.9.
|
1438 |
-
{file = "cramjam-2.9.
|
1439 |
-
{file = "cramjam-2.9.
|
1440 |
-
{file = "cramjam-2.9.
|
1441 |
-
{file = "cramjam-2.9.
|
1442 |
-
{file = "cramjam-2.9.
|
1443 |
-
{file = "cramjam-2.9.
|
1444 |
-
{file = "cramjam-2.9.
|
1445 |
-
{file = "cramjam-2.9.
|
1446 |
-
{file = "cramjam-2.9.
|
1447 |
-
{file = "cramjam-2.9.
|
1448 |
-
{file = "cramjam-2.9.
|
1449 |
-
{file = "cramjam-2.9.
|
1450 |
-
{file = "cramjam-2.9.
|
1451 |
-
{file = "cramjam-2.9.
|
1452 |
-
{file = "cramjam-2.9.
|
1453 |
-
{file = "cramjam-2.9.
|
1454 |
-
{file = "cramjam-2.9.
|
1455 |
-
{file = "cramjam-2.9.
|
1456 |
-
{file = "cramjam-2.9.
|
1457 |
-
{file = "cramjam-2.9.
|
1458 |
-
{file = "cramjam-2.9.
|
1459 |
-
{file = "cramjam-2.9.
|
1460 |
-
{file = "cramjam-2.9.
|
1461 |
-
{file = "cramjam-2.9.
|
1462 |
-
{file = "cramjam-2.9.
|
1463 |
-
{file = "cramjam-2.9.
|
1464 |
]
|
1465 |
|
1466 |
[package.extras]
|
@@ -1502,7 +1502,7 @@ name = "cryptography"
|
|
1502 |
version = "44.0.0"
|
1503 |
description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers."
|
1504 |
optional = false
|
1505 |
-
python-versions = "!=3.9.0
|
1506 |
files = [
|
1507 |
{file = "cryptography-44.0.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:84111ad4ff3f6253820e6d3e58be2cc2a00adb29335d4cacb5ab4d4d34f2a123"},
|
1508 |
{file = "cryptography-44.0.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b15492a11f9e1b62ba9d73c210e2416724633167de94607ec6069ef724fad092"},
|
@@ -1510,6 +1510,7 @@ files = [
|
|
1510 |
{file = "cryptography-44.0.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:761817a3377ef15ac23cd7834715081791d4ec77f9297ee694ca1ee9c2c7e5eb"},
|
1511 |
{file = "cryptography-44.0.0-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3c672a53c0fb4725a29c303be906d3c1fa99c32f58abe008a82705f9ee96f40b"},
|
1512 |
{file = "cryptography-44.0.0-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:4ac4c9f37eba52cb6fbeaf5b59c152ea976726b865bd4cf87883a7e7006cc543"},
|
|
|
1513 |
{file = "cryptography-44.0.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:ed3534eb1090483c96178fcb0f8893719d96d5274dfde98aa6add34614e97c8e"},
|
1514 |
{file = "cryptography-44.0.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:f3f6fdfa89ee2d9d496e2c087cebef9d4fcbb0ad63c40e821b39f74bf48d9c5e"},
|
1515 |
{file = "cryptography-44.0.0-cp37-abi3-win32.whl", hash = "sha256:eb33480f1bad5b78233b0ad3e1b0be21e8ef1da745d8d2aecbb20671658b9053"},
|
@@ -1520,6 +1521,7 @@ files = [
|
|
1520 |
{file = "cryptography-44.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:c5eb858beed7835e5ad1faba59e865109f3e52b3783b9ac21e7e47dc5554e289"},
|
1521 |
{file = "cryptography-44.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f53c2c87e0fb4b0c00fa9571082a057e37690a8f12233306161c8f4b819960b7"},
|
1522 |
{file = "cryptography-44.0.0-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:9e6fc8a08e116fb7c7dd1f040074c9d7b51d74a8ea40d4df2fc7aa08b76b9e6c"},
|
|
|
1523 |
{file = "cryptography-44.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:d2436114e46b36d00f8b72ff57e598978b37399d2786fd39793c36c6d5cb1c64"},
|
1524 |
{file = "cryptography-44.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a01956ddfa0a6790d594f5b34fc1bfa6098aca434696a03cfdbe469b8ed79285"},
|
1525 |
{file = "cryptography-44.0.0-cp39-abi3-win32.whl", hash = "sha256:eca27345e1214d1b9f9490d200f9db5a874479be914199194e746c893788d417"},
|
@@ -1709,7 +1711,7 @@ name = "deprecated"
|
|
1709 |
version = "1.2.15"
|
1710 |
description = "Python @deprecated decorator to deprecate old python classes, functions or methods."
|
1711 |
optional = false
|
1712 |
-
python-versions = "!=3.0
|
1713 |
files = [
|
1714 |
{file = "Deprecated-1.2.15-py2.py3-none-any.whl", hash = "sha256:353bc4a8ac4bfc96800ddab349d89c25dec1079f65fd53acdcc1e0b975b21320"},
|
1715 |
{file = "deprecated-1.2.15.tar.gz", hash = "sha256:683e561a90de76239796e6b6feac66b99030d2dd3fcf61ef996330f14bbb9b0d"},
|
@@ -2040,7 +2042,7 @@ name = "fastembed"
|
|
2040 |
version = "0.3.6"
|
2041 |
description = "Fast, light, accurate library built for retrieval embedding generation"
|
2042 |
optional = false
|
2043 |
-
python-versions = "
|
2044 |
files = [
|
2045 |
{file = "fastembed-0.3.6-py3-none-any.whl", hash = "sha256:2bf70edae28bb4ccd9e01617098c2075b0ba35b88025a3d22b0e1e85b2c488ce"},
|
2046 |
{file = "fastembed-0.3.6.tar.gz", hash = "sha256:c93c8ec99b8c008c2d192d6297866b8d70ec7ac8f5696b34eb5ea91f85efd15f"},
|
@@ -2093,7 +2095,6 @@ files = [
|
|
2093 |
{file = "fastparquet-2024.11.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0e2d7f02f57231e6c86d26e9ea71953737202f20e948790e5d4db6d6a1a150dc"},
|
2094 |
{file = "fastparquet-2024.11.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:fbe4468146b633d8f09d7b196fea0547f213cb5ce5f76e9d1beb29eaa9593a93"},
|
2095 |
{file = "fastparquet-2024.11.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:29d5c718817bcd765fc519b17f759cad4945974421ecc1931d3bdc3e05e57fa9"},
|
2096 |
-
{file = "fastparquet-2024.11.0-cp312-cp312-win_amd64.whl", hash = "sha256:74a0b3c40ab373442c0fda96b75a36e88745d8b138fcc3a6143e04682cbbb8ca"},
|
2097 |
{file = "fastparquet-2024.11.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:59e5c5b51083d5b82572cdb7aed0346e3181e3ac9d2e45759da2e804bdafa7ee"},
|
2098 |
{file = "fastparquet-2024.11.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bdadf7b6bad789125b823bfc5b0a719ba5c4a2ef965f973702d3ea89cff057f6"},
|
2099 |
{file = "fastparquet-2024.11.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:46b2db02fc2a1507939d35441c8ab211d53afd75d82eec9767d1c3656402859b"},
|
@@ -2796,13 +2797,13 @@ grpc = ["grpcio (>=1.38.0,<2.0dev)", "grpcio-status (>=1.38.0,<2.0.dev0)"]
|
|
2796 |
|
2797 |
[[package]]
|
2798 |
name = "google-cloud-resource-manager"
|
2799 |
-
version = "1.
|
2800 |
description = "Google Cloud Resource Manager API client library"
|
2801 |
optional = false
|
2802 |
python-versions = ">=3.7"
|
2803 |
files = [
|
2804 |
-
{file = "google_cloud_resource_manager-1.
|
2805 |
-
{file = "google_cloud_resource_manager-1.
|
2806 |
]
|
2807 |
|
2808 |
[package.dependencies]
|
@@ -2965,7 +2966,7 @@ name = "graspologic"
|
|
2965 |
version = "3.4.1"
|
2966 |
description = "A set of Python modules for graph statistics"
|
2967 |
optional = false
|
2968 |
-
python-versions = "
|
2969 |
files = [
|
2970 |
{file = "graspologic-3.4.1-py3-none-any.whl", hash = "sha256:c6563e087eda599bad1de831d4b7321c0daa7a82f4e85a7d7737ff67e07cdda2"},
|
2971 |
{file = "graspologic-3.4.1.tar.gz", hash = "sha256:7561f0b852a2bccd351bff77e8db07d9892f9dfa35a420fdec01690e4fdc8075"},
|
@@ -3650,7 +3651,7 @@ name = "infinity-emb"
|
|
3650 |
version = "0.0.66"
|
3651 |
description = "Infinity is a high-throughput, low-latency REST API for serving text-embeddings, reranking models and clip."
|
3652 |
optional = false
|
3653 |
-
python-versions = "
|
3654 |
files = [
|
3655 |
{file = "infinity_emb-0.0.66-py3-none-any.whl", hash = "sha256:1dc6ed9fa48e6cbe83650a7583dbbb4bc393900c39c326bb0aff2ddc090ac018"},
|
3656 |
{file = "infinity_emb-0.0.66.tar.gz", hash = "sha256:9c9a361ccebf8e8f626c1f685286518d03d0c35e7d14179ae7c2500b4fc68b98"},
|
@@ -3677,12 +3678,12 @@ vision = ["colpali-engine (>=0.3.1,<0.4.0)", "pillow", "timm", "torchvision"]
|
|
3677 |
|
3678 |
[[package]]
|
3679 |
name = "infinity-sdk"
|
3680 |
-
version = "0.5.0.
|
3681 |
description = "infinity"
|
3682 |
optional = false
|
3683 |
python-versions = ">=3.10"
|
3684 |
files = [
|
3685 |
-
{file = "infinity_sdk-0.5.0.
|
3686 |
]
|
3687 |
|
3688 |
[package.dependencies]
|
@@ -4099,7 +4100,7 @@ name = "litellm"
|
|
4099 |
version = "1.48.0"
|
4100 |
description = "Library to easily interface with LLM API providers"
|
4101 |
optional = false
|
4102 |
-
python-versions = "!=2.7
|
4103 |
files = [
|
4104 |
{file = "litellm-1.48.0-py3-none-any.whl", hash = "sha256:7765e8a92069778f5fc66aacfabd0e2f8ec8d74fb117f5e475567d89b0d376b9"},
|
4105 |
{file = "litellm-1.48.0.tar.gz", hash = "sha256:31a9b8a25a9daf44c24ddc08bf74298da920f2c5cea44135e5061278d0aa6fc9"},
|
@@ -4157,7 +4158,7 @@ name = "loguru"
|
|
4157 |
version = "0.7.3"
|
4158 |
description = "Python logging made (stupidly) simple"
|
4159 |
optional = false
|
4160 |
-
python-versions = "
|
4161 |
files = [
|
4162 |
{file = "loguru-0.7.3-py3-none-any.whl", hash = "sha256:31a33c10c8e1e10422bfd431aeb5d351c7cf7fa671e3c4df004162264b28220c"},
|
4163 |
{file = "loguru-0.7.3.tar.gz", hash = "sha256:19480589e77d47b8d85b2c827ad95d49bf31b0dcde16593892eb51dd18706eb6"},
|
@@ -6298,7 +6299,7 @@ name = "psutil"
|
|
6298 |
version = "6.1.0"
|
6299 |
description = "Cross-platform lib for process and system monitoring in Python."
|
6300 |
optional = false
|
6301 |
-
python-versions = "!=3.0
|
6302 |
files = [
|
6303 |
{file = "psutil-6.1.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:ff34df86226c0227c52f38b919213157588a678d049688eded74c76c8ba4a5d0"},
|
6304 |
{file = "psutil-6.1.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:c0e0c00aa18ca2d3b2b991643b799a15fc8f0563d2ebb6040f64ce8dc027b942"},
|
@@ -6320,8 +6321,8 @@ files = [
|
|
6320 |
]
|
6321 |
|
6322 |
[package.extras]
|
6323 |
-
dev = ["black", "check-manifest", "coverage", "packaging", "pylint", "pyperf", "pypinfo", "pytest-cov", "requests", "rstcheck", "ruff", "sphinx", "
|
6324 |
-
test = ["pytest", "pytest-xdist", "setuptools"]
|
6325 |
|
6326 |
[[package]]
|
6327 |
name = "psycopg2-binary"
|
@@ -7851,45 +7852,30 @@ files = [
|
|
7851 |
{file = "ruamel.yaml.clib-0.2.12-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:a606ef75a60ecf3d924613892cc603b154178ee25abb3055db5062da811fd969"},
|
7852 |
{file = "ruamel.yaml.clib-0.2.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd5415dded15c3822597455bc02bcd66e81ef8b7a48cb71a33628fc9fdde39df"},
|
7853 |
{file = "ruamel.yaml.clib-0.2.12-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f66efbc1caa63c088dead1c4170d148eabc9b80d95fb75b6c92ac0aad2437d76"},
|
7854 |
-
{file = "ruamel.yaml.clib-0.2.12-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:22353049ba4181685023b25b5b51a574bce33e7f51c759371a7422dcae5402a6"},
|
7855 |
-
{file = "ruamel.yaml.clib-0.2.12-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:932205970b9f9991b34f55136be327501903f7c66830e9760a8ffb15b07f05cd"},
|
7856 |
-
{file = "ruamel.yaml.clib-0.2.12-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a52d48f4e7bf9005e8f0a89209bf9a73f7190ddf0489eee5eb51377385f59f2a"},
|
7857 |
{file = "ruamel.yaml.clib-0.2.12-cp310-cp310-win32.whl", hash = "sha256:3eac5a91891ceb88138c113f9db04f3cebdae277f5d44eaa3651a4f573e6a5da"},
|
7858 |
{file = "ruamel.yaml.clib-0.2.12-cp310-cp310-win_amd64.whl", hash = "sha256:ab007f2f5a87bd08ab1499bdf96f3d5c6ad4dcfa364884cb4549aa0154b13a28"},
|
7859 |
{file = "ruamel.yaml.clib-0.2.12-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:4a6679521a58256a90b0d89e03992c15144c5f3858f40d7c18886023d7943db6"},
|
7860 |
{file = "ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:d84318609196d6bd6da0edfa25cedfbabd8dbde5140a0a23af29ad4b8f91fb1e"},
|
7861 |
{file = "ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb43a269eb827806502c7c8efb7ae7e9e9d0573257a46e8e952f4d4caba4f31e"},
|
7862 |
{file = "ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:811ea1594b8a0fb466172c384267a4e5e367298af6b228931f273b111f17ef52"},
|
7863 |
-
{file = "ruamel.yaml.clib-0.2.12-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:cf12567a7b565cbf65d438dec6cfbe2917d3c1bdddfce84a9930b7d35ea59642"},
|
7864 |
-
{file = "ruamel.yaml.clib-0.2.12-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7dd5adc8b930b12c8fc5b99e2d535a09889941aa0d0bd06f4749e9a9397c71d2"},
|
7865 |
-
{file = "ruamel.yaml.clib-0.2.12-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1492a6051dab8d912fc2adeef0e8c72216b24d57bd896ea607cb90bb0c4981d3"},
|
7866 |
{file = "ruamel.yaml.clib-0.2.12-cp311-cp311-win32.whl", hash = "sha256:bd0a08f0bab19093c54e18a14a10b4322e1eacc5217056f3c063bd2f59853ce4"},
|
7867 |
{file = "ruamel.yaml.clib-0.2.12-cp311-cp311-win_amd64.whl", hash = "sha256:a274fb2cb086c7a3dea4322ec27f4cb5cc4b6298adb583ab0e211a4682f241eb"},
|
7868 |
{file = "ruamel.yaml.clib-0.2.12-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:20b0f8dc160ba83b6dcc0e256846e1a02d044e13f7ea74a3d1d56ede4e48c632"},
|
7869 |
{file = "ruamel.yaml.clib-0.2.12-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:943f32bc9dedb3abff9879edc134901df92cfce2c3d5c9348f172f62eb2d771d"},
|
7870 |
{file = "ruamel.yaml.clib-0.2.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95c3829bb364fdb8e0332c9931ecf57d9be3519241323c5274bd82f709cebc0c"},
|
7871 |
{file = "ruamel.yaml.clib-0.2.12-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:749c16fcc4a2b09f28843cda5a193e0283e47454b63ec4b81eaa2242f50e4ccd"},
|
7872 |
-
{file = "ruamel.yaml.clib-0.2.12-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bf165fef1f223beae7333275156ab2022cffe255dcc51c27f066b4370da81e31"},
|
7873 |
-
{file = "ruamel.yaml.clib-0.2.12-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:32621c177bbf782ca5a18ba4d7af0f1082a3f6e517ac2a18b3974d4edf349680"},
|
7874 |
-
{file = "ruamel.yaml.clib-0.2.12-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b82a7c94a498853aa0b272fd5bc67f29008da798d4f93a2f9f289feb8426a58d"},
|
7875 |
{file = "ruamel.yaml.clib-0.2.12-cp312-cp312-win32.whl", hash = "sha256:e8c4ebfcfd57177b572e2040777b8abc537cdef58a2120e830124946aa9b42c5"},
|
7876 |
{file = "ruamel.yaml.clib-0.2.12-cp312-cp312-win_amd64.whl", hash = "sha256:0467c5965282c62203273b838ae77c0d29d7638c8a4e3a1c8bdd3602c10904e4"},
|
7877 |
{file = "ruamel.yaml.clib-0.2.12-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:4c8c5d82f50bb53986a5e02d1b3092b03622c02c2eb78e29bec33fd9593bae1a"},
|
7878 |
{file = "ruamel.yaml.clib-0.2.12-cp313-cp313-manylinux2014_aarch64.whl", hash = "sha256:e7e3736715fbf53e9be2a79eb4db68e4ed857017344d697e8b9749444ae57475"},
|
7879 |
{file = "ruamel.yaml.clib-0.2.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b7e75b4965e1d4690e93021adfcecccbca7d61c7bddd8e22406ef2ff20d74ef"},
|
7880 |
{file = "ruamel.yaml.clib-0.2.12-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:96777d473c05ee3e5e3c3e999f5d23c6f4ec5b0c38c098b3a5229085f74236c6"},
|
7881 |
-
{file = "ruamel.yaml.clib-0.2.12-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:3bc2a80e6420ca8b7d3590791e2dfc709c88ab9152c00eeb511c9875ce5778bf"},
|
7882 |
-
{file = "ruamel.yaml.clib-0.2.12-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:e188d2699864c11c36cdfdada94d781fd5d6b0071cd9c427bceb08ad3d7c70e1"},
|
7883 |
-
{file = "ruamel.yaml.clib-0.2.12-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4f6f3eac23941b32afccc23081e1f50612bdbe4e982012ef4f5797986828cd01"},
|
7884 |
{file = "ruamel.yaml.clib-0.2.12-cp313-cp313-win32.whl", hash = "sha256:6442cb36270b3afb1b4951f060eccca1ce49f3d087ca1ca4563a6eb479cb3de6"},
|
7885 |
{file = "ruamel.yaml.clib-0.2.12-cp313-cp313-win_amd64.whl", hash = "sha256:e5b8daf27af0b90da7bb903a876477a9e6d7270be6146906b276605997c7e9a3"},
|
7886 |
{file = "ruamel.yaml.clib-0.2.12-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:fc4b630cd3fa2cf7fce38afa91d7cfe844a9f75d7f0f36393fa98815e911d987"},
|
7887 |
{file = "ruamel.yaml.clib-0.2.12-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:bc5f1e1c28e966d61d2519f2a3d451ba989f9ea0f2307de7bc45baa526de9e45"},
|
7888 |
{file = "ruamel.yaml.clib-0.2.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a0e060aace4c24dcaf71023bbd7d42674e3b230f7e7b97317baf1e953e5b519"},
|
7889 |
{file = "ruamel.yaml.clib-0.2.12-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e2f1c3765db32be59d18ab3953f43ab62a761327aafc1594a2a1fbe038b8b8a7"},
|
7890 |
-
{file = "ruamel.yaml.clib-0.2.12-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:d85252669dc32f98ebcd5d36768f5d4faeaeaa2d655ac0473be490ecdae3c285"},
|
7891 |
-
{file = "ruamel.yaml.clib-0.2.12-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:e143ada795c341b56de9418c58d028989093ee611aa27ffb9b7f609c00d813ed"},
|
7892 |
-
{file = "ruamel.yaml.clib-0.2.12-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2c59aa6170b990d8d2719323e628aaf36f3bfbc1c26279c0eeeb24d05d2d11c7"},
|
7893 |
{file = "ruamel.yaml.clib-0.2.12-cp39-cp39-win32.whl", hash = "sha256:beffaed67936fbbeffd10966a4eb53c402fafd3d6833770516bf7314bc6ffa12"},
|
7894 |
{file = "ruamel.yaml.clib-0.2.12-cp39-cp39-win_amd64.whl", hash = "sha256:040ae85536960525ea62868b642bdb0c2cc6021c9f9d507810c0c604e66f5a7b"},
|
7895 |
{file = "ruamel.yaml.clib-0.2.12.tar.gz", hash = "sha256:6c8fbb13ec503f99a91901ab46e0b07ae7941cd527393187039aec586fdfd36f"},
|
@@ -7900,7 +7886,7 @@ name = "s3transfer"
|
|
7900 |
version = "0.10.4"
|
7901 |
description = "An Amazon S3 Transfer Manager"
|
7902 |
optional = false
|
7903 |
-
python-versions = ">=3.8"
|
7904 |
files = [
|
7905 |
{file = "s3transfer-0.10.4-py3-none-any.whl", hash = "sha256:244a76a24355363a68164241438de1b72f8781664920260c48465896b712a41e"},
|
7906 |
{file = "s3transfer-0.10.4.tar.gz", hash = "sha256:29edc09801743c21eb5ecbc617a152df41d3c287f67b615f73e5f750583666a7"},
|
@@ -8362,7 +8348,7 @@ name = "smart-open"
|
|
8362 |
version = "7.0.5"
|
8363 |
description = "Utils for streaming large files (S3, HDFS, GCS, Azure Blob Storage, gzip, bz2...)"
|
8364 |
optional = false
|
8365 |
-
python-versions = "
|
8366 |
files = [
|
8367 |
{file = "smart_open-7.0.5-py3-none-any.whl", hash = "sha256:8523ed805c12dff3eaa50e9c903a6cb0ae78800626631c5fe7ea073439847b89"},
|
8368 |
{file = "smart_open-7.0.5.tar.gz", hash = "sha256:d3672003b1dbc85e2013e4983b88eb9a5ccfd389b0d4e5015f39a9ee5620ec18"},
|
@@ -10172,4 +10158,4 @@ cffi = ["cffi (>=1.11)"]
|
|
10172 |
[metadata]
|
10173 |
lock-version = "2.0"
|
10174 |
python-versions = ">=3.10,<3.13"
|
10175 |
-
content-hash = "
|
|
|
1 |
+
# This file is automatically @generated by Poetry 1.8.4 and should not be changed by hand.
|
2 |
|
3 |
[[package]]
|
4 |
name = "accelerate"
|
|
|
145 |
version = "1.2.1"
|
146 |
description = "asyncio rate limiter, a leaky bucket implementation"
|
147 |
optional = false
|
148 |
+
python-versions = ">=3.8,<4.0"
|
149 |
files = [
|
150 |
{file = "aiolimiter-1.2.1-py3-none-any.whl", hash = "sha256:d3f249e9059a20badcb56b61601a83556133655c11d1eb3dd3e04ff069e5f3c7"},
|
151 |
{file = "aiolimiter-1.2.1.tar.gz", hash = "sha256:e02a37ea1a855d9e832252a105420ad4d15011505512a1a1d814647451b5cca9"},
|
|
|
196 |
|
197 |
[[package]]
|
198 |
name = "akshare"
|
199 |
+
version = "1.15.45"
|
200 |
description = "AKShare is an elegant and simple financial data interface library for Python, built for human beings!"
|
201 |
optional = false
|
202 |
python-versions = ">=3.8"
|
203 |
files = [
|
204 |
+
{file = "akshare-1.15.45-py3-none-any.whl", hash = "sha256:678f5a5c958660552636ce5834886f2ed002498450cdf3182ec09d9b4acb344c"},
|
205 |
+
{file = "akshare-1.15.45.tar.gz", hash = "sha256:2f4b965d72ab264d01ceca56ac4fee29a8cef554eb84479496f64e1a1b6951f6"},
|
206 |
]
|
207 |
|
208 |
[package.dependencies]
|
|
|
416 |
version = "24.12.0"
|
417 |
description = "Aspose.Slides for Python via .NET is a presentation file formats processing library for working with Microsoft PowerPoint files without using Microsoft PowerPoint."
|
418 |
optional = false
|
419 |
+
python-versions = ">=3.5,<3.14"
|
420 |
files = [
|
421 |
{file = "Aspose.Slides-24.12.0-py3-none-macosx_10_14_x86_64.whl", hash = "sha256:ccfaa61a863ed28cd37b221e31a0edf4a83802599d76fb50861c25149ac5e5e3"},
|
422 |
{file = "Aspose.Slides-24.12.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:b050659129c5ca92e52fbcd7d5091caa244db731adb68fbea1fd0a8b9fd62a5a"},
|
|
|
568 |
version = "0.9.23"
|
569 |
description = "BCE SDK for python"
|
570 |
optional = false
|
571 |
+
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, <4"
|
572 |
files = [
|
573 |
{file = "bce_python_sdk-0.9.23-py3-none-any.whl", hash = "sha256:8debe21a040e00060f6044877d594765ed7b18bc765c6bf16b878bca864140a3"},
|
574 |
{file = "bce_python_sdk-0.9.23.tar.gz", hash = "sha256:19739fed5cd0725356fc5ffa2acbdd8fb23f2a81edb91db21a03174551d0cf41"},
|
|
|
1366 |
|
1367 |
[[package]]
|
1368 |
name = "cramjam"
|
1369 |
+
version = "2.9.1"
|
1370 |
description = "Thin Python bindings to de/compression algorithms in Rust"
|
1371 |
optional = false
|
1372 |
python-versions = ">=3.8"
|
1373 |
files = [
|
1374 |
+
{file = "cramjam-2.9.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:8e82464d1e00fbbb12958999b8471ba5e9f3d9711954505a0a7b378762332e6f"},
|
1375 |
+
{file = "cramjam-2.9.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6d2df8a6511cc08ef1fccd2e0c65e2ebc9f57574ec8376052a76851af5398810"},
|
1376 |
+
{file = "cramjam-2.9.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:21ea784e6c3f1843d3523ae0f03651dd06058b39eeb64beb82ee3b100fa83662"},
|
1377 |
+
{file = "cramjam-2.9.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e0c5d98a4e791f0bbd0ffcb7dae879baeb2dcc357348a8dc2be0a8c10403a2a"},
|
1378 |
+
{file = "cramjam-2.9.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e076fd87089197cb61117c63dbe7712ad5eccb93968860eb3bae09b767bac813"},
|
1379 |
+
{file = "cramjam-2.9.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6d86b44933aea0151e4a2e1e6935448499849045c38167d288ca4c59d5b8cd4e"},
|
1380 |
+
{file = "cramjam-2.9.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7eb032549dec897b942ddcf80c1cdccbcb40629f15fc902731dbe6362da49326"},
|
1381 |
+
{file = "cramjam-2.9.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf29b4def86ec503e329fe138842a9b79a997e3beb6c7809b05665a0d291edff"},
|
1382 |
+
{file = "cramjam-2.9.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a36adf7d13b7accfa206e1c917f08924eb905b45aa8e62176509afa7b14db71e"},
|
1383 |
+
{file = "cramjam-2.9.1-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:cf4ea758d98b6fad1b4b2d808d0de690d3162ac56c26968aea0af6524e3eb736"},
|
1384 |
+
{file = "cramjam-2.9.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:4826d6d81ea490fa7a3ae7a4b9729866a945ffac1f77fe57b71e49d6e1b21efd"},
|
1385 |
+
{file = "cramjam-2.9.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:335103317475bf992953c58838152a4761fc3c87354000edbfc4d7e57cf05909"},
|
1386 |
+
{file = "cramjam-2.9.1-cp310-cp310-win32.whl", hash = "sha256:258120cb1e3afc3443f756f9de161ed63eed56a2c31f6093e81c571c0f2dc9f6"},
|
1387 |
+
{file = "cramjam-2.9.1-cp310-cp310-win_amd64.whl", hash = "sha256:c60e5996aa02547d12bc2740d44e90e006b0f93100f53206f7abe6732ad56e69"},
|
1388 |
+
{file = "cramjam-2.9.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:b9db1debe48060e41a5b91af9193c524e473c57f6105462c5524a41f5aabdb88"},
|
1389 |
+
{file = "cramjam-2.9.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f6f18f0242212d3409d26ce3874937b5b979cebd61f08b633a6ea893c32fc7b6"},
|
1390 |
+
{file = "cramjam-2.9.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:b5b1cd7d39242b2b903cf09cd4696b3a6e04dc537ffa9f3ac8668edae76eecb6"},
|
1391 |
+
{file = "cramjam-2.9.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a47de0a68f5f4d9951250ef5af31f2a7228132caa9ed60994234f7eb98090d33"},
|
1392 |
+
{file = "cramjam-2.9.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e13c9a697881e5e38148958612dc6856967f5ff8cd7bba5ff751f2d6ac020aa4"},
|
1393 |
+
{file = "cramjam-2.9.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ba560244bc1335b420b74e91e35f9d4e7f307a3be3a4603ce0f0d7e15a0acdf0"},
|
1394 |
+
{file = "cramjam-2.9.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d47fd41ce260cf4f0ff0e788de961fab9e9c6844a05ce55d06ce31e06107bdc"},
|
1395 |
+
{file = "cramjam-2.9.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84d154fbadece82935396eb6bcb502085d944d2fd13b07a94348364344370c2c"},
|
1396 |
+
{file = "cramjam-2.9.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:038df668ffb94d64d67b6ecc59cbd206745a425ffc0402897dde12d89fa6a870"},
|
1397 |
+
{file = "cramjam-2.9.1-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:4125d8cd86fa08495d310e80926c2f0563f157b76862e7479f9b2cf94823ea0c"},
|
1398 |
+
{file = "cramjam-2.9.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4206ebdd1d1ef0f3f86c8c2f7c426aa4af6094f4f41e274601fd4c4569f37454"},
|
1399 |
+
{file = "cramjam-2.9.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:ab687bef5c493732b9a4ab870542ee43f5eae0025f9c684c7cb399c3a85cb380"},
|
1400 |
+
{file = "cramjam-2.9.1-cp311-cp311-win32.whl", hash = "sha256:dda7698b6d7caeae1047adafebc4b43b2a82478234f6c2b45bc3edad854e0600"},
|
1401 |
+
{file = "cramjam-2.9.1-cp311-cp311-win_amd64.whl", hash = "sha256:872b00ff83e84bcbdc7e951af291ebe65eed20b09c47e7c4af21c312f90b796f"},
|
1402 |
+
{file = "cramjam-2.9.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:79417957972553502b217a0093532e48893c8b4ca30ccc941cefe9c72379df7c"},
|
1403 |
+
{file = "cramjam-2.9.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce2b94117f373defc876f88e74e44049a9969223dbca3240415b71752d0422fb"},
|
1404 |
+
{file = "cramjam-2.9.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:67040e0fd84404885ec716a806bee6110f9960c3647e0ef1670aab3b7375a70a"},
|
1405 |
+
{file = "cramjam-2.9.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bedb84e068b53c944bd08dcb501fd00d67daa8a917922356dd559b484ce7eab"},
|
1406 |
+
{file = "cramjam-2.9.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:06e3f97a379386d97debf08638a78b3d3850fdf6124755eb270b54905a169930"},
|
1407 |
+
{file = "cramjam-2.9.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:11118675e9c7952ececabc62f023290ee4f8ecf0bee0d2c7eb8d1c402ee9769d"},
|
1408 |
+
{file = "cramjam-2.9.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6b7de6b61b11545570e4d6033713f3599525efc615ee353a822be8f6b0c65b77"},
|
1409 |
+
{file = "cramjam-2.9.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:57ca8f3775324a9de3ee6f05ca172687ba258c0dea79f7e3a6b4112834982f2a"},
|
1410 |
+
{file = "cramjam-2.9.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9847dd6f288f1c56359f52acb48ff2df848ff3e3bff34d23855bbcf7016427cc"},
|
1411 |
+
{file = "cramjam-2.9.1-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:8d1248dfa7f151e893ce819670f00879e4b7650b8d4c01279ce4f12140d68dd2"},
|
1412 |
+
{file = "cramjam-2.9.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:9da6d970281083bae91b914362de325414aa03c01fc806f6bb2cc006322ec834"},
|
1413 |
+
{file = "cramjam-2.9.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1c33bc095db5733c841a102b8693062be5db8cdac17b9782ebc00577c6a94480"},
|
1414 |
+
{file = "cramjam-2.9.1-cp312-cp312-win32.whl", hash = "sha256:9e9193cd4bb57e7acd3af24891526299244bfed88168945efdaa09af4e50720f"},
|
1415 |
+
{file = "cramjam-2.9.1-cp312-cp312-win_amd64.whl", hash = "sha256:15955dd75e80f66c1ea271167a5347661d9bdc365f894a57698c383c9b7d465c"},
|
1416 |
+
{file = "cramjam-2.9.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:5a7797a2fff994fc5e323f7a967a35a3e37e3006ed21d64dcded086502f482af"},
|
1417 |
+
{file = "cramjam-2.9.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d51b9b140b1df39a44bff7896d98a10da345b7d5f5ce92368d328c1c2c829167"},
|
1418 |
+
{file = "cramjam-2.9.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:07ac76b7f992556e7aa910244be11ece578cdf84f4d5d5297461f9a895e18312"},
|
1419 |
+
{file = "cramjam-2.9.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d90a72608c7550cd7eba914668f6277bfb0b24f074d1f1bd9d061fcb6f2adbd6"},
|
1420 |
+
{file = "cramjam-2.9.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:56495975401b1821dbe1f29cf222e23556232209a2fdb809fe8156d120ca9c7f"},
|
1421 |
+
{file = "cramjam-2.9.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b695259e71fde6d5be66b77a4474523ced9ffe9fe8a34cb9b520ec1241a14d3"},
|
1422 |
+
{file = "cramjam-2.9.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ab1e69dc4831bbb79b6d547077aae89074c83e8ad94eba1a3d80e94d2424fd02"},
|
1423 |
+
{file = "cramjam-2.9.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:440b489902bfb7a26d3fec1ca888007615336ff763d2a32a2fc40586548a0dbf"},
|
1424 |
+
{file = "cramjam-2.9.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:217fe22b41f8c3dce03852f828b059abfad11d1344a1df2f43d3eb8634b18d75"},
|
1425 |
+
{file = "cramjam-2.9.1-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:95f3646ddc98af25af25d5692ae65966488a283813336ea9cf41b22e542e7c0d"},
|
1426 |
+
{file = "cramjam-2.9.1-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:6b19fc60ead1cae9795a5b359599da3a1c95d38f869bdfb51c441fd76b04e926"},
|
1427 |
+
{file = "cramjam-2.9.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:8dc5207567459d049696f62a1fdfb220f3fe6aa0d722285d44753e12504dac6c"},
|
1428 |
+
{file = "cramjam-2.9.1-cp313-cp313-win32.whl", hash = "sha256:fbfe35929a61b914de9e5dbacde0cfbba86cbf5122f9285a24c14ed0b645490b"},
|
1429 |
+
{file = "cramjam-2.9.1-cp313-cp313-win_amd64.whl", hash = "sha256:06068bd191a82ad4fc1ac23d6f8627fb5e37ec4be0431711b9a2dbacaccfeddb"},
|
1430 |
+
{file = "cramjam-2.9.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:6a2ca4d3c683d28d3217821029eb08d3487d5043d7eb455df11ff3cacfd4c916"},
|
1431 |
+
{file = "cramjam-2.9.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:008b49b455b396acc5459dfb06fb9d56049c4097ee8e590892a4d3da9a711da3"},
|
1432 |
+
{file = "cramjam-2.9.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:45c18cc13156e8697a8d3f9e57e49a69b00e14a103196efab0893fae1a5257f8"},
|
1433 |
+
{file = "cramjam-2.9.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d14a0efb21e0fec0631bcd66040b06e6a0fe10825f3aacffded38c1c978bdff9"},
|
1434 |
+
{file = "cramjam-2.9.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3f815fb0eba625af45139af4f90f5fc2ddda61b171c2cc3ab63d44b40c5c7768"},
|
1435 |
+
{file = "cramjam-2.9.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:04828cbfad7384f06a4a7d0d927c3e85ef11dc5a40b9cf5f3e29ac4e23ecd678"},
|
1436 |
+
{file = "cramjam-2.9.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b0944a7c3a78f940c06d1b29bdce91a17798d80593dd01ebfeb842761e48a8b5"},
|
1437 |
+
{file = "cramjam-2.9.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec769e5b16251704502277a1163dcf2611551452d7590ff4cc422b7b0367fc96"},
|
1438 |
+
{file = "cramjam-2.9.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:3ba79c7d2cc5adb897b690c05dd9b67c4d401736d207314b99315f7be3cd94fd"},
|
1439 |
+
{file = "cramjam-2.9.1-cp38-cp38-musllinux_1_1_armv7l.whl", hash = "sha256:d35923fb5411bde30b53c0696dff8e24c8a38b010b89544834c53f4462fd71df"},
|
1440 |
+
{file = "cramjam-2.9.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:da0cc0efdbfb8ee2361f89f38ded03d11678f37e392afff7a97b09c55dadfc83"},
|
1441 |
+
{file = "cramjam-2.9.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f89924858712b8b936f04f3d690e72825a3e5127a140b434c79030c1c5a887ce"},
|
1442 |
+
{file = "cramjam-2.9.1-cp38-cp38-win32.whl", hash = "sha256:5925a738b8478f223ab9756fc794e3cabd5917fd7846f66adcf1d5fc2bf9864c"},
|
1443 |
+
{file = "cramjam-2.9.1-cp38-cp38-win_amd64.whl", hash = "sha256:b7ac273498a2c6772d67707e101b74014c0d9413bb4711c51d8ec311de59b4b1"},
|
1444 |
+
{file = "cramjam-2.9.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:af39006faddfc6253beb93ca821d544931cfee7f0177b99ff106dfd8fd6a2cd8"},
|
1445 |
+
{file = "cramjam-2.9.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b3291be0d3f73d5774d69013be4ab33978c777363b5312d14f62f77817c2f75a"},
|
1446 |
+
{file = "cramjam-2.9.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:1539fd758f0e57fad7913cebff8baaee871bb561ddf6fa710a427b74da6b6778"},
|
1447 |
+
{file = "cramjam-2.9.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ff362f68bd68ac0eccb445209238d589bba728fb6d7f2e9dc199e0ec3a61d6e0"},
|
1448 |
+
{file = "cramjam-2.9.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:23b9786d1d17686fb8d600ade2a19374c7188d4b8867efa9af0d8274a220aec7"},
|
1449 |
+
{file = "cramjam-2.9.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8bc9c2c748aaf91863d89c4583f529c1c709485c94f8dfeb3ee48662d88e3258"},
|
1450 |
+
{file = "cramjam-2.9.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fd0fa9a0e7f18224b6d2d1d69dbdc3aecec80ef1393c59244159b131604a4395"},
|
1451 |
+
{file = "cramjam-2.9.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ceef6e09ee22457997370882aa3c69de01e6dd0aaa2f953e1e87ad11641d042"},
|
1452 |
+
{file = "cramjam-2.9.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:1376f6fdbf0b30712413a0b4e51663a4938ae2f6b449f8e4635dbb3694db83cf"},
|
1453 |
+
{file = "cramjam-2.9.1-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:342fb946f8d3e9e35b837288b03ab23cfbe0bb5a30e582ed805ef79706823a96"},
|
1454 |
+
{file = "cramjam-2.9.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:a237064a6e2c2256c9a1cf2beb7c971382190c0f1eb2e810e02e971881756132"},
|
1455 |
+
{file = "cramjam-2.9.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:53145fc9f2319c1245d4329e1da8cfacd6e35e27090c07c0b9d453ae2bbdac3e"},
|
1456 |
+
{file = "cramjam-2.9.1-cp39-cp39-win32.whl", hash = "sha256:8a9f52c27292c21457f43c4ce124939302a9acfb62295e7cda8667310563a5a3"},
|
1457 |
+
{file = "cramjam-2.9.1-cp39-cp39-win_amd64.whl", hash = "sha256:8097ee39b61c86848a443c0b25b2df1de6b331fd512b20836a4f5cfde51ab255"},
|
1458 |
+
{file = "cramjam-2.9.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:86824c695688fcd06c5ac9bbd3fea9bdfb4cca194b1e706fbf11a629df48d2b4"},
|
1459 |
+
{file = "cramjam-2.9.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:27571bfa5a5d618604696747d0dc1d2a99b5906c967c8dee53c13a7107edfde6"},
|
1460 |
+
{file = "cramjam-2.9.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb01f6e38719818778144d3165a89ea1ad9dc58c6342b7f20aa194c70f34cbd1"},
|
1461 |
+
{file = "cramjam-2.9.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b5cef5cf40725fe64592af9ec163e7389855077700678a1d94bec549403a74d"},
|
1462 |
+
{file = "cramjam-2.9.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:ac48b978aa0675f62b642750e798c394a64d25ce852e4e541f69bef9a564c2f0"},
|
1463 |
+
{file = "cramjam-2.9.1.tar.gz", hash = "sha256:336cc591d86cbd225d256813779f46624f857bc9c779db126271eff9ddc524ae"},
|
1464 |
]
|
1465 |
|
1466 |
[package.extras]
|
|
|
1502 |
version = "44.0.0"
|
1503 |
description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers."
|
1504 |
optional = false
|
1505 |
+
python-versions = ">=3.7, !=3.9.0, !=3.9.1"
|
1506 |
files = [
|
1507 |
{file = "cryptography-44.0.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:84111ad4ff3f6253820e6d3e58be2cc2a00adb29335d4cacb5ab4d4d34f2a123"},
|
1508 |
{file = "cryptography-44.0.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b15492a11f9e1b62ba9d73c210e2416724633167de94607ec6069ef724fad092"},
|
|
|
1510 |
{file = "cryptography-44.0.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:761817a3377ef15ac23cd7834715081791d4ec77f9297ee694ca1ee9c2c7e5eb"},
|
1511 |
{file = "cryptography-44.0.0-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3c672a53c0fb4725a29c303be906d3c1fa99c32f58abe008a82705f9ee96f40b"},
|
1512 |
{file = "cryptography-44.0.0-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:4ac4c9f37eba52cb6fbeaf5b59c152ea976726b865bd4cf87883a7e7006cc543"},
|
1513 |
+
{file = "cryptography-44.0.0-cp37-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:60eb32934076fa07e4316b7b2742fa52cbb190b42c2df2863dbc4230a0a9b385"},
|
1514 |
{file = "cryptography-44.0.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:ed3534eb1090483c96178fcb0f8893719d96d5274dfde98aa6add34614e97c8e"},
|
1515 |
{file = "cryptography-44.0.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:f3f6fdfa89ee2d9d496e2c087cebef9d4fcbb0ad63c40e821b39f74bf48d9c5e"},
|
1516 |
{file = "cryptography-44.0.0-cp37-abi3-win32.whl", hash = "sha256:eb33480f1bad5b78233b0ad3e1b0be21e8ef1da745d8d2aecbb20671658b9053"},
|
|
|
1521 |
{file = "cryptography-44.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:c5eb858beed7835e5ad1faba59e865109f3e52b3783b9ac21e7e47dc5554e289"},
|
1522 |
{file = "cryptography-44.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f53c2c87e0fb4b0c00fa9571082a057e37690a8f12233306161c8f4b819960b7"},
|
1523 |
{file = "cryptography-44.0.0-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:9e6fc8a08e116fb7c7dd1f040074c9d7b51d74a8ea40d4df2fc7aa08b76b9e6c"},
|
1524 |
+
{file = "cryptography-44.0.0-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:9abcc2e083cbe8dde89124a47e5e53ec38751f0d7dfd36801008f316a127d7ba"},
|
1525 |
{file = "cryptography-44.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:d2436114e46b36d00f8b72ff57e598978b37399d2786fd39793c36c6d5cb1c64"},
|
1526 |
{file = "cryptography-44.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a01956ddfa0a6790d594f5b34fc1bfa6098aca434696a03cfdbe469b8ed79285"},
|
1527 |
{file = "cryptography-44.0.0-cp39-abi3-win32.whl", hash = "sha256:eca27345e1214d1b9f9490d200f9db5a874479be914199194e746c893788d417"},
|
|
|
1711 |
version = "1.2.15"
|
1712 |
description = "Python @deprecated decorator to deprecate old python classes, functions or methods."
|
1713 |
optional = false
|
1714 |
+
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
1715 |
files = [
|
1716 |
{file = "Deprecated-1.2.15-py2.py3-none-any.whl", hash = "sha256:353bc4a8ac4bfc96800ddab349d89c25dec1079f65fd53acdcc1e0b975b21320"},
|
1717 |
{file = "deprecated-1.2.15.tar.gz", hash = "sha256:683e561a90de76239796e6b6feac66b99030d2dd3fcf61ef996330f14bbb9b0d"},
|
|
|
2042 |
version = "0.3.6"
|
2043 |
description = "Fast, light, accurate library built for retrieval embedding generation"
|
2044 |
optional = false
|
2045 |
+
python-versions = ">=3.8.0,<3.13"
|
2046 |
files = [
|
2047 |
{file = "fastembed-0.3.6-py3-none-any.whl", hash = "sha256:2bf70edae28bb4ccd9e01617098c2075b0ba35b88025a3d22b0e1e85b2c488ce"},
|
2048 |
{file = "fastembed-0.3.6.tar.gz", hash = "sha256:c93c8ec99b8c008c2d192d6297866b8d70ec7ac8f5696b34eb5ea91f85efd15f"},
|
|
|
2095 |
{file = "fastparquet-2024.11.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0e2d7f02f57231e6c86d26e9ea71953737202f20e948790e5d4db6d6a1a150dc"},
|
2096 |
{file = "fastparquet-2024.11.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:fbe4468146b633d8f09d7b196fea0547f213cb5ce5f76e9d1beb29eaa9593a93"},
|
2097 |
{file = "fastparquet-2024.11.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:29d5c718817bcd765fc519b17f759cad4945974421ecc1931d3bdc3e05e57fa9"},
|
|
|
2098 |
{file = "fastparquet-2024.11.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:59e5c5b51083d5b82572cdb7aed0346e3181e3ac9d2e45759da2e804bdafa7ee"},
|
2099 |
{file = "fastparquet-2024.11.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bdadf7b6bad789125b823bfc5b0a719ba5c4a2ef965f973702d3ea89cff057f6"},
|
2100 |
{file = "fastparquet-2024.11.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:46b2db02fc2a1507939d35441c8ab211d53afd75d82eec9767d1c3656402859b"},
|
|
|
2797 |
|
2798 |
[[package]]
|
2799 |
name = "google-cloud-resource-manager"
|
2800 |
+
version = "1.14.0"
|
2801 |
description = "Google Cloud Resource Manager API client library"
|
2802 |
optional = false
|
2803 |
python-versions = ">=3.7"
|
2804 |
files = [
|
2805 |
+
{file = "google_cloud_resource_manager-1.14.0-py2.py3-none-any.whl", hash = "sha256:4860c3ea9ace760b317ea90d4e27f1b32e54ededdcc340a7cb70c8ef238d8f7c"},
|
2806 |
+
{file = "google_cloud_resource_manager-1.14.0.tar.gz", hash = "sha256:daa70a3a4704759d31f812ed221e3b6f7b660af30c7862e4a0060ea91291db30"},
|
2807 |
]
|
2808 |
|
2809 |
[package.dependencies]
|
|
|
2966 |
version = "3.4.1"
|
2967 |
description = "A set of Python modules for graph statistics"
|
2968 |
optional = false
|
2969 |
+
python-versions = ">=3.9,<3.13"
|
2970 |
files = [
|
2971 |
{file = "graspologic-3.4.1-py3-none-any.whl", hash = "sha256:c6563e087eda599bad1de831d4b7321c0daa7a82f4e85a7d7737ff67e07cdda2"},
|
2972 |
{file = "graspologic-3.4.1.tar.gz", hash = "sha256:7561f0b852a2bccd351bff77e8db07d9892f9dfa35a420fdec01690e4fdc8075"},
|
|
|
3651 |
version = "0.0.66"
|
3652 |
description = "Infinity is a high-throughput, low-latency REST API for serving text-embeddings, reranking models and clip."
|
3653 |
optional = false
|
3654 |
+
python-versions = ">=3.9,<4"
|
3655 |
files = [
|
3656 |
{file = "infinity_emb-0.0.66-py3-none-any.whl", hash = "sha256:1dc6ed9fa48e6cbe83650a7583dbbb4bc393900c39c326bb0aff2ddc090ac018"},
|
3657 |
{file = "infinity_emb-0.0.66.tar.gz", hash = "sha256:9c9a361ccebf8e8f626c1f685286518d03d0c35e7d14179ae7c2500b4fc68b98"},
|
|
|
3678 |
|
3679 |
[[package]]
|
3680 |
name = "infinity-sdk"
|
3681 |
+
version = "0.5.0.dev6"
|
3682 |
description = "infinity"
|
3683 |
optional = false
|
3684 |
python-versions = ">=3.10"
|
3685 |
files = [
|
3686 |
+
{file = "infinity_sdk-0.5.0.dev6-py3-none-any.whl", hash = "sha256:7b73303b6e27912f954bcfcedaec0b09aa2ce913c6c4816acec9e8f50dccc66a"},
|
3687 |
]
|
3688 |
|
3689 |
[package.dependencies]
|
|
|
4100 |
version = "1.48.0"
|
4101 |
description = "Library to easily interface with LLM API providers"
|
4102 |
optional = false
|
4103 |
+
python-versions = ">=3.8, !=2.7.*, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*, !=3.7.*"
|
4104 |
files = [
|
4105 |
{file = "litellm-1.48.0-py3-none-any.whl", hash = "sha256:7765e8a92069778f5fc66aacfabd0e2f8ec8d74fb117f5e475567d89b0d376b9"},
|
4106 |
{file = "litellm-1.48.0.tar.gz", hash = "sha256:31a9b8a25a9daf44c24ddc08bf74298da920f2c5cea44135e5061278d0aa6fc9"},
|
|
|
4158 |
version = "0.7.3"
|
4159 |
description = "Python logging made (stupidly) simple"
|
4160 |
optional = false
|
4161 |
+
python-versions = ">=3.5,<4.0"
|
4162 |
files = [
|
4163 |
{file = "loguru-0.7.3-py3-none-any.whl", hash = "sha256:31a33c10c8e1e10422bfd431aeb5d351c7cf7fa671e3c4df004162264b28220c"},
|
4164 |
{file = "loguru-0.7.3.tar.gz", hash = "sha256:19480589e77d47b8d85b2c827ad95d49bf31b0dcde16593892eb51dd18706eb6"},
|
|
|
6299 |
version = "6.1.0"
|
6300 |
description = "Cross-platform lib for process and system monitoring in Python."
|
6301 |
optional = false
|
6302 |
+
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*"
|
6303 |
files = [
|
6304 |
{file = "psutil-6.1.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:ff34df86226c0227c52f38b919213157588a678d049688eded74c76c8ba4a5d0"},
|
6305 |
{file = "psutil-6.1.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:c0e0c00aa18ca2d3b2b991643b799a15fc8f0563d2ebb6040f64ce8dc027b942"},
|
|
|
6321 |
]
|
6322 |
|
6323 |
[package.extras]
|
6324 |
+
dev = ["black", "check-manifest", "coverage", "packaging", "pylint", "pyperf", "pypinfo", "pytest-cov", "requests", "rstcheck", "ruff", "sphinx", "sphinx-rtd-theme", "toml-sort", "twine", "virtualenv", "wheel"]
|
6325 |
+
test = ["enum34", "futures", "ipaddress", "mock (==1.0.1)", "pytest (==4.6.11)", "pytest-xdist", "setuptools", "unittest2"]
|
6326 |
|
6327 |
[[package]]
|
6328 |
name = "psycopg2-binary"
|
|
|
7852 |
{file = "ruamel.yaml.clib-0.2.12-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:a606ef75a60ecf3d924613892cc603b154178ee25abb3055db5062da811fd969"},
|
7853 |
{file = "ruamel.yaml.clib-0.2.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd5415dded15c3822597455bc02bcd66e81ef8b7a48cb71a33628fc9fdde39df"},
|
7854 |
{file = "ruamel.yaml.clib-0.2.12-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f66efbc1caa63c088dead1c4170d148eabc9b80d95fb75b6c92ac0aad2437d76"},
|
|
|
|
|
|
|
7855 |
{file = "ruamel.yaml.clib-0.2.12-cp310-cp310-win32.whl", hash = "sha256:3eac5a91891ceb88138c113f9db04f3cebdae277f5d44eaa3651a4f573e6a5da"},
|
7856 |
{file = "ruamel.yaml.clib-0.2.12-cp310-cp310-win_amd64.whl", hash = "sha256:ab007f2f5a87bd08ab1499bdf96f3d5c6ad4dcfa364884cb4549aa0154b13a28"},
|
7857 |
{file = "ruamel.yaml.clib-0.2.12-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:4a6679521a58256a90b0d89e03992c15144c5f3858f40d7c18886023d7943db6"},
|
7858 |
{file = "ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:d84318609196d6bd6da0edfa25cedfbabd8dbde5140a0a23af29ad4b8f91fb1e"},
|
7859 |
{file = "ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb43a269eb827806502c7c8efb7ae7e9e9d0573257a46e8e952f4d4caba4f31e"},
|
7860 |
{file = "ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:811ea1594b8a0fb466172c384267a4e5e367298af6b228931f273b111f17ef52"},
|
|
|
|
|
|
|
7861 |
{file = "ruamel.yaml.clib-0.2.12-cp311-cp311-win32.whl", hash = "sha256:bd0a08f0bab19093c54e18a14a10b4322e1eacc5217056f3c063bd2f59853ce4"},
|
7862 |
{file = "ruamel.yaml.clib-0.2.12-cp311-cp311-win_amd64.whl", hash = "sha256:a274fb2cb086c7a3dea4322ec27f4cb5cc4b6298adb583ab0e211a4682f241eb"},
|
7863 |
{file = "ruamel.yaml.clib-0.2.12-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:20b0f8dc160ba83b6dcc0e256846e1a02d044e13f7ea74a3d1d56ede4e48c632"},
|
7864 |
{file = "ruamel.yaml.clib-0.2.12-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:943f32bc9dedb3abff9879edc134901df92cfce2c3d5c9348f172f62eb2d771d"},
|
7865 |
{file = "ruamel.yaml.clib-0.2.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95c3829bb364fdb8e0332c9931ecf57d9be3519241323c5274bd82f709cebc0c"},
|
7866 |
{file = "ruamel.yaml.clib-0.2.12-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:749c16fcc4a2b09f28843cda5a193e0283e47454b63ec4b81eaa2242f50e4ccd"},
|
|
|
|
|
|
|
7867 |
{file = "ruamel.yaml.clib-0.2.12-cp312-cp312-win32.whl", hash = "sha256:e8c4ebfcfd57177b572e2040777b8abc537cdef58a2120e830124946aa9b42c5"},
|
7868 |
{file = "ruamel.yaml.clib-0.2.12-cp312-cp312-win_amd64.whl", hash = "sha256:0467c5965282c62203273b838ae77c0d29d7638c8a4e3a1c8bdd3602c10904e4"},
|
7869 |
{file = "ruamel.yaml.clib-0.2.12-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:4c8c5d82f50bb53986a5e02d1b3092b03622c02c2eb78e29bec33fd9593bae1a"},
|
7870 |
{file = "ruamel.yaml.clib-0.2.12-cp313-cp313-manylinux2014_aarch64.whl", hash = "sha256:e7e3736715fbf53e9be2a79eb4db68e4ed857017344d697e8b9749444ae57475"},
|
7871 |
{file = "ruamel.yaml.clib-0.2.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b7e75b4965e1d4690e93021adfcecccbca7d61c7bddd8e22406ef2ff20d74ef"},
|
7872 |
{file = "ruamel.yaml.clib-0.2.12-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:96777d473c05ee3e5e3c3e999f5d23c6f4ec5b0c38c098b3a5229085f74236c6"},
|
|
|
|
|
|
|
7873 |
{file = "ruamel.yaml.clib-0.2.12-cp313-cp313-win32.whl", hash = "sha256:6442cb36270b3afb1b4951f060eccca1ce49f3d087ca1ca4563a6eb479cb3de6"},
|
7874 |
{file = "ruamel.yaml.clib-0.2.12-cp313-cp313-win_amd64.whl", hash = "sha256:e5b8daf27af0b90da7bb903a876477a9e6d7270be6146906b276605997c7e9a3"},
|
7875 |
{file = "ruamel.yaml.clib-0.2.12-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:fc4b630cd3fa2cf7fce38afa91d7cfe844a9f75d7f0f36393fa98815e911d987"},
|
7876 |
{file = "ruamel.yaml.clib-0.2.12-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:bc5f1e1c28e966d61d2519f2a3d451ba989f9ea0f2307de7bc45baa526de9e45"},
|
7877 |
{file = "ruamel.yaml.clib-0.2.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a0e060aace4c24dcaf71023bbd7d42674e3b230f7e7b97317baf1e953e5b519"},
|
7878 |
{file = "ruamel.yaml.clib-0.2.12-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e2f1c3765db32be59d18ab3953f43ab62a761327aafc1594a2a1fbe038b8b8a7"},
|
|
|
|
|
|
|
7879 |
{file = "ruamel.yaml.clib-0.2.12-cp39-cp39-win32.whl", hash = "sha256:beffaed67936fbbeffd10966a4eb53c402fafd3d6833770516bf7314bc6ffa12"},
|
7880 |
{file = "ruamel.yaml.clib-0.2.12-cp39-cp39-win_amd64.whl", hash = "sha256:040ae85536960525ea62868b642bdb0c2cc6021c9f9d507810c0c604e66f5a7b"},
|
7881 |
{file = "ruamel.yaml.clib-0.2.12.tar.gz", hash = "sha256:6c8fbb13ec503f99a91901ab46e0b07ae7941cd527393187039aec586fdfd36f"},
|
|
|
7886 |
version = "0.10.4"
|
7887 |
description = "An Amazon S3 Transfer Manager"
|
7888 |
optional = false
|
7889 |
+
python-versions = ">= 3.8"
|
7890 |
files = [
|
7891 |
{file = "s3transfer-0.10.4-py3-none-any.whl", hash = "sha256:244a76a24355363a68164241438de1b72f8781664920260c48465896b712a41e"},
|
7892 |
{file = "s3transfer-0.10.4.tar.gz", hash = "sha256:29edc09801743c21eb5ecbc617a152df41d3c287f67b615f73e5f750583666a7"},
|
|
|
8348 |
version = "7.0.5"
|
8349 |
description = "Utils for streaming large files (S3, HDFS, GCS, Azure Blob Storage, gzip, bz2...)"
|
8350 |
optional = false
|
8351 |
+
python-versions = ">=3.7,<4.0"
|
8352 |
files = [
|
8353 |
{file = "smart_open-7.0.5-py3-none-any.whl", hash = "sha256:8523ed805c12dff3eaa50e9c903a6cb0ae78800626631c5fe7ea073439847b89"},
|
8354 |
{file = "smart_open-7.0.5.tar.gz", hash = "sha256:d3672003b1dbc85e2013e4983b88eb9a5ccfd389b0d4e5015f39a9ee5620ec18"},
|
|
|
10158 |
[metadata]
|
10159 |
lock-version = "2.0"
|
10160 |
python-versions = ">=3.10,<3.13"
|
10161 |
+
content-hash = "30749c224b19478036cd0540ca2d0927ea4436574c84733959af127e9917bb19"
|
pyproject.toml
CHANGED
@@ -48,7 +48,7 @@ hanziconv = "0.3.2"
|
|
48 |
html-text = "0.6.2"
|
49 |
httpx = "0.27.0"
|
50 |
huggingface-hub = "^0.25.0"
|
51 |
-
infinity-sdk = "0.5.0.
|
52 |
infinity-emb = "^0.0.66"
|
53 |
itsdangerous = "2.1.2"
|
54 |
markdown = "3.6"
|
|
|
48 |
html-text = "0.6.2"
|
49 |
httpx = "0.27.0"
|
50 |
huggingface-hub = "^0.25.0"
|
51 |
+
infinity-sdk = "0.5.0.dev6"
|
52 |
infinity-emb = "^0.0.66"
|
53 |
itsdangerous = "2.1.2"
|
54 |
markdown = "3.6"
|
rag/utils/infinity_conn.py
CHANGED
@@ -25,11 +25,11 @@ from rag.utils.doc_store_conn import (
|
|
25 |
|
26 |
logger = logging.getLogger('ragflow.infinity_conn')
|
27 |
|
28 |
-
def equivalent_condition_to_str(condition: dict) -> str:
|
29 |
assert "_id" not in condition
|
30 |
cond = list()
|
31 |
for k, v in condition.items():
|
32 |
-
if not isinstance(k, str) or not v:
|
33 |
continue
|
34 |
if isinstance(v, list):
|
35 |
inCond = list()
|
@@ -46,7 +46,7 @@ def equivalent_condition_to_str(condition: dict) -> str:
|
|
46 |
cond.append(f"{k}='{v}'")
|
47 |
else:
|
48 |
cond.append(f"{k}={str(v)}")
|
49 |
-
return " AND ".join(cond)
|
50 |
|
51 |
|
52 |
def concat_dataframes(df_list: list[pl.DataFrame], selectFields: list[str]) -> pl.DataFrame:
|
@@ -75,10 +75,12 @@ class InfinityConnection(DocStoreConnection):
|
|
75 |
connPool = ConnectionPool(infinity_uri)
|
76 |
inf_conn = connPool.get_conn()
|
77 |
res = inf_conn.show_current_node()
|
78 |
-
connPool.release_conn(inf_conn)
|
79 |
-
self.connPool = connPool
|
80 |
if res.error_code == ErrorCode.OK and res.server_status=="started":
|
|
|
|
|
|
|
81 |
break
|
|
|
82 |
logger.warn(f"Infinity status: {res.server_status}. Waiting Infinity {infinity_uri} to be healthy.")
|
83 |
time.sleep(5)
|
84 |
except Exception as e:
|
@@ -90,6 +92,41 @@ class InfinityConnection(DocStoreConnection):
|
|
90 |
raise Exception(msg)
|
91 |
logger.info(f"Infinity {infinity_uri} is healthy.")
|
92 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
93 |
"""
|
94 |
Database operations
|
95 |
"""
|
@@ -148,20 +185,16 @@ class InfinityConnection(DocStoreConnection):
|
|
148 |
),
|
149 |
ConflictType.Ignore,
|
150 |
)
|
151 |
-
text_suffix = ["_tks", "_ltks", "_kwd"]
|
152 |
for field_name, field_info in schema.items():
|
153 |
-
if field_info["type"] != "varchar":
|
154 |
continue
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
ConflictType.Ignore,
|
163 |
-
)
|
164 |
-
break
|
165 |
self.connPool.release_conn(inf_conn)
|
166 |
logger.info(
|
167 |
f"INFINITY created table {table_name}, vector size {vectorSize}"
|
@@ -202,7 +235,7 @@ class InfinityConnection(DocStoreConnection):
|
|
202 |
limit: int,
|
203 |
indexNames: str | list[str],
|
204 |
knowledgebaseIds: list[str],
|
205 |
-
) ->
|
206 |
"""
|
207 |
TODO: Infinity doesn't provide highlight
|
208 |
"""
|
@@ -217,21 +250,18 @@ class InfinityConnection(DocStoreConnection):
|
|
217 |
selectFields.append("id")
|
218 |
|
219 |
# Prepare expressions common to all tables
|
220 |
-
filter_cond =
|
221 |
filter_fulltext = ""
|
222 |
if condition:
|
223 |
filter_cond = equivalent_condition_to_str(condition)
|
224 |
for matchExpr in matchExprs:
|
225 |
if isinstance(matchExpr, MatchTextExpr):
|
226 |
-
if
|
227 |
matchExpr.extra_options.update({"filter": filter_cond})
|
228 |
fields = ",".join(matchExpr.fields)
|
229 |
-
filter_fulltext = (
|
230 |
-
|
231 |
-
)
|
232 |
-
if len(filter_cond) != 0:
|
233 |
filter_fulltext = f"({filter_cond}) AND {filter_fulltext}"
|
234 |
-
logger.debug(f"filter_fulltext: {filter_fulltext}")
|
235 |
minimum_should_match = matchExpr.extra_options.get("minimum_should_match", 0.0)
|
236 |
if isinstance(minimum_should_match, float):
|
237 |
str_minimum_should_match = str(int(minimum_should_match * 100)) + "%"
|
@@ -239,12 +269,16 @@ class InfinityConnection(DocStoreConnection):
|
|
239 |
for k, v in matchExpr.extra_options.items():
|
240 |
if not isinstance(v, str):
|
241 |
matchExpr.extra_options[k] = str(v)
|
|
|
242 |
elif isinstance(matchExpr, MatchDenseExpr):
|
243 |
-
if
|
244 |
matchExpr.extra_options.update({"filter": filter_fulltext})
|
245 |
for k, v in matchExpr.extra_options.items():
|
246 |
if not isinstance(v, str):
|
247 |
matchExpr.extra_options[k] = str(v)
|
|
|
|
|
|
|
248 |
|
249 |
order_by_expr_list = list()
|
250 |
if orderBy.fields:
|
@@ -254,6 +288,7 @@ class InfinityConnection(DocStoreConnection):
|
|
254 |
else:
|
255 |
order_by_expr_list.append((order_field[0], SortType.Desc))
|
256 |
|
|
|
257 |
# Scatter search tables and gather the results
|
258 |
for indexName in indexNames:
|
259 |
for knowledgebaseId in knowledgebaseIds:
|
@@ -293,12 +328,14 @@ class InfinityConnection(DocStoreConnection):
|
|
293 |
if orderBy.fields:
|
294 |
builder.sort(order_by_expr_list)
|
295 |
builder.offset(offset).limit(limit)
|
296 |
-
kb_res = builder.to_pl()
|
|
|
|
|
297 |
df_list.append(kb_res)
|
298 |
self.connPool.release_conn(inf_conn)
|
299 |
res = concat_dataframes(df_list, selectFields)
|
300 |
logger.debug(f"INFINITY search tables: {str(table_list)}, result: {str(res)}")
|
301 |
-
return res
|
302 |
|
303 |
def get(
|
304 |
self, chunkId: str, indexName: str, knowledgebaseIds: list[str]
|
@@ -312,7 +349,7 @@ class InfinityConnection(DocStoreConnection):
|
|
312 |
table_name = f"{indexName}_{knowledgebaseId}"
|
313 |
table_list.append(table_name)
|
314 |
table_instance = db_instance.get_table(table_name)
|
315 |
-
kb_res = table_instance.output(["*"]).filter(f"id = '{chunkId}'").to_pl()
|
316 |
if len(kb_res) != 0 and kb_res.shape[0] > 0:
|
317 |
df_list.append(kb_res)
|
318 |
|
@@ -372,7 +409,7 @@ class InfinityConnection(DocStoreConnection):
|
|
372 |
# logger.info(f"InfinityConnection.insert {json.dumps(documents)}")
|
373 |
table_instance.insert(documents)
|
374 |
self.connPool.release_conn(inf_conn)
|
375 |
-
logger.debug(f"inserted into {table_name} {str_ids}.")
|
376 |
return []
|
377 |
|
378 |
def update(
|
@@ -398,6 +435,7 @@ class InfinityConnection(DocStoreConnection):
|
|
398 |
elif k in ["page_num_int", "top_int"]:
|
399 |
assert isinstance(v, list)
|
400 |
newValue[k] = "_".join(f"{num:08x}" for num in v)
|
|
|
401 |
table_instance.update(filter, newValue)
|
402 |
self.connPool.release_conn(inf_conn)
|
403 |
return True
|
@@ -414,6 +452,7 @@ class InfinityConnection(DocStoreConnection):
|
|
414 |
f"Skipped deleting `{filter}` from table {table_name} since the table doesn't exist."
|
415 |
)
|
416 |
return 0
|
|
|
417 |
res = table_instance.delete(filter)
|
418 |
self.connPool.release_conn(inf_conn)
|
419 |
return res.deleted_rows
|
@@ -422,13 +461,19 @@ class InfinityConnection(DocStoreConnection):
|
|
422 |
Helper functions for search result
|
423 |
"""
|
424 |
|
425 |
-
def getTotal(self, res):
|
|
|
|
|
426 |
return len(res)
|
427 |
|
428 |
-
def getChunkIds(self, res):
|
|
|
|
|
429 |
return list(res["id"])
|
430 |
|
431 |
-
def getFields(self, res, fields: list[str]) -> list[str, dict]:
|
|
|
|
|
432 |
res_fields = {}
|
433 |
if not fields:
|
434 |
return {}
|
@@ -469,7 +514,9 @@ class InfinityConnection(DocStoreConnection):
|
|
469 |
res_fields[id] = m
|
470 |
return res_fields
|
471 |
|
472 |
-
def getHighlight(self, res, keywords: list[str], fieldnm: str):
|
|
|
|
|
473 |
ans = {}
|
474 |
num_rows = len(res)
|
475 |
column_id = res["id"]
|
@@ -495,7 +542,7 @@ class InfinityConnection(DocStoreConnection):
|
|
495 |
ans[id] = "...".join(txts)
|
496 |
return ans
|
497 |
|
498 |
-
def getAggregation(self, res, fieldnm: str):
|
499 |
"""
|
500 |
TODO: Infinity doesn't provide aggregation
|
501 |
"""
|
|
|
25 |
|
26 |
logger = logging.getLogger('ragflow.infinity_conn')
|
27 |
|
28 |
+
def equivalent_condition_to_str(condition: dict) -> str|None:
|
29 |
assert "_id" not in condition
|
30 |
cond = list()
|
31 |
for k, v in condition.items():
|
32 |
+
if not isinstance(k, str) or k in ["kb_id"] or not v:
|
33 |
continue
|
34 |
if isinstance(v, list):
|
35 |
inCond = list()
|
|
|
46 |
cond.append(f"{k}='{v}'")
|
47 |
else:
|
48 |
cond.append(f"{k}={str(v)}")
|
49 |
+
return " AND ".join(cond) if cond else None
|
50 |
|
51 |
|
52 |
def concat_dataframes(df_list: list[pl.DataFrame], selectFields: list[str]) -> pl.DataFrame:
|
|
|
75 |
connPool = ConnectionPool(infinity_uri)
|
76 |
inf_conn = connPool.get_conn()
|
77 |
res = inf_conn.show_current_node()
|
|
|
|
|
78 |
if res.error_code == ErrorCode.OK and res.server_status=="started":
|
79 |
+
self._migrate_db(inf_conn)
|
80 |
+
self.connPool = connPool
|
81 |
+
connPool.release_conn(inf_conn)
|
82 |
break
|
83 |
+
connPool.release_conn(inf_conn)
|
84 |
logger.warn(f"Infinity status: {res.server_status}. Waiting Infinity {infinity_uri} to be healthy.")
|
85 |
time.sleep(5)
|
86 |
except Exception as e:
|
|
|
92 |
raise Exception(msg)
|
93 |
logger.info(f"Infinity {infinity_uri} is healthy.")
|
94 |
|
95 |
+
def _migrate_db(self, inf_conn):
|
96 |
+
inf_db = inf_conn.create_database(self.dbName, ConflictType.Ignore)
|
97 |
+
fp_mapping = os.path.join(
|
98 |
+
get_project_base_directory(), "conf", "infinity_mapping.json"
|
99 |
+
)
|
100 |
+
if not os.path.exists(fp_mapping):
|
101 |
+
raise Exception(f"Mapping file not found at {fp_mapping}")
|
102 |
+
schema = json.load(open(fp_mapping))
|
103 |
+
table_names = inf_db.list_tables().table_names
|
104 |
+
for table_name in table_names:
|
105 |
+
inf_table = inf_db.get_table(table_name)
|
106 |
+
index_names = inf_table.list_indexes().index_names
|
107 |
+
if "q_vec_idx" not in index_names:
|
108 |
+
# Skip tables not created by me
|
109 |
+
continue
|
110 |
+
column_names = inf_table.show_columns()["name"]
|
111 |
+
column_names = set(column_names)
|
112 |
+
for field_name, field_info in schema.items():
|
113 |
+
if field_name in column_names:
|
114 |
+
continue
|
115 |
+
res = inf_table.add_columns({field_name: field_info})
|
116 |
+
assert res.error_code == infinity.ErrorCode.OK
|
117 |
+
logger.info(
|
118 |
+
f"INFINITY added following column to table {table_name}: {field_name} {field_info}"
|
119 |
+
)
|
120 |
+
if field_info["type"] != "varchar" or "analyzer" not in field_info:
|
121 |
+
continue
|
122 |
+
inf_table.create_index(
|
123 |
+
f"text_idx_{field_name}",
|
124 |
+
IndexInfo(
|
125 |
+
field_name, IndexType.FullText, {"ANALYZER": field_info["analyzer"]}
|
126 |
+
),
|
127 |
+
ConflictType.Ignore,
|
128 |
+
)
|
129 |
+
|
130 |
"""
|
131 |
Database operations
|
132 |
"""
|
|
|
185 |
),
|
186 |
ConflictType.Ignore,
|
187 |
)
|
|
|
188 |
for field_name, field_info in schema.items():
|
189 |
+
if field_info["type"] != "varchar" or "analyzer" not in field_info:
|
190 |
continue
|
191 |
+
inf_table.create_index(
|
192 |
+
f"text_idx_{field_name}",
|
193 |
+
IndexInfo(
|
194 |
+
field_name, IndexType.FullText, {"ANALYZER": field_info["analyzer"]}
|
195 |
+
),
|
196 |
+
ConflictType.Ignore,
|
197 |
+
)
|
|
|
|
|
|
|
198 |
self.connPool.release_conn(inf_conn)
|
199 |
logger.info(
|
200 |
f"INFINITY created table {table_name}, vector size {vectorSize}"
|
|
|
235 |
limit: int,
|
236 |
indexNames: str | list[str],
|
237 |
knowledgebaseIds: list[str],
|
238 |
+
) -> tuple[pl.DataFrame, int]:
|
239 |
"""
|
240 |
TODO: Infinity doesn't provide highlight
|
241 |
"""
|
|
|
250 |
selectFields.append("id")
|
251 |
|
252 |
# Prepare expressions common to all tables
|
253 |
+
filter_cond = None
|
254 |
filter_fulltext = ""
|
255 |
if condition:
|
256 |
filter_cond = equivalent_condition_to_str(condition)
|
257 |
for matchExpr in matchExprs:
|
258 |
if isinstance(matchExpr, MatchTextExpr):
|
259 |
+
if filter_cond and "filter" not in matchExpr.extra_options:
|
260 |
matchExpr.extra_options.update({"filter": filter_cond})
|
261 |
fields = ",".join(matchExpr.fields)
|
262 |
+
filter_fulltext = f"filter_fulltext('{fields}', '{matchExpr.matching_text}')"
|
263 |
+
if filter_cond:
|
|
|
|
|
264 |
filter_fulltext = f"({filter_cond}) AND {filter_fulltext}"
|
|
|
265 |
minimum_should_match = matchExpr.extra_options.get("minimum_should_match", 0.0)
|
266 |
if isinstance(minimum_should_match, float):
|
267 |
str_minimum_should_match = str(int(minimum_should_match * 100)) + "%"
|
|
|
269 |
for k, v in matchExpr.extra_options.items():
|
270 |
if not isinstance(v, str):
|
271 |
matchExpr.extra_options[k] = str(v)
|
272 |
+
logger.debug(f"INFINITY search MatchTextExpr: {json.dumps(matchExpr.__dict__)}")
|
273 |
elif isinstance(matchExpr, MatchDenseExpr):
|
274 |
+
if filter_cond and "filter" not in matchExpr.extra_options:
|
275 |
matchExpr.extra_options.update({"filter": filter_fulltext})
|
276 |
for k, v in matchExpr.extra_options.items():
|
277 |
if not isinstance(v, str):
|
278 |
matchExpr.extra_options[k] = str(v)
|
279 |
+
logger.debug(f"INFINITY search MatchDenseExpr: {json.dumps(matchExpr.__dict__)}")
|
280 |
+
elif isinstance(matchExpr, FusionExpr):
|
281 |
+
logger.debug(f"INFINITY search FusionExpr: {json.dumps(matchExpr.__dict__)}")
|
282 |
|
283 |
order_by_expr_list = list()
|
284 |
if orderBy.fields:
|
|
|
288 |
else:
|
289 |
order_by_expr_list.append((order_field[0], SortType.Desc))
|
290 |
|
291 |
+
total_hits_count = 0
|
292 |
# Scatter search tables and gather the results
|
293 |
for indexName in indexNames:
|
294 |
for knowledgebaseId in knowledgebaseIds:
|
|
|
328 |
if orderBy.fields:
|
329 |
builder.sort(order_by_expr_list)
|
330 |
builder.offset(offset).limit(limit)
|
331 |
+
kb_res, extra_result = builder.option({"total_hits_count": True}).to_pl()
|
332 |
+
if extra_result:
|
333 |
+
total_hits_count += int(extra_result["total_hits_count"])
|
334 |
df_list.append(kb_res)
|
335 |
self.connPool.release_conn(inf_conn)
|
336 |
res = concat_dataframes(df_list, selectFields)
|
337 |
logger.debug(f"INFINITY search tables: {str(table_list)}, result: {str(res)}")
|
338 |
+
return res, total_hits_count
|
339 |
|
340 |
def get(
|
341 |
self, chunkId: str, indexName: str, knowledgebaseIds: list[str]
|
|
|
349 |
table_name = f"{indexName}_{knowledgebaseId}"
|
350 |
table_list.append(table_name)
|
351 |
table_instance = db_instance.get_table(table_name)
|
352 |
+
kb_res, _ = table_instance.output(["*"]).filter(f"id = '{chunkId}'").to_pl()
|
353 |
if len(kb_res) != 0 and kb_res.shape[0] > 0:
|
354 |
df_list.append(kb_res)
|
355 |
|
|
|
409 |
# logger.info(f"InfinityConnection.insert {json.dumps(documents)}")
|
410 |
table_instance.insert(documents)
|
411 |
self.connPool.release_conn(inf_conn)
|
412 |
+
logger.debug(f"INFINITY inserted into {table_name} {str_ids}.")
|
413 |
return []
|
414 |
|
415 |
def update(
|
|
|
435 |
elif k in ["page_num_int", "top_int"]:
|
436 |
assert isinstance(v, list)
|
437 |
newValue[k] = "_".join(f"{num:08x}" for num in v)
|
438 |
+
logger.debug(f"INFINITY update table {table_name}, filter {filter}, newValue {newValue}.")
|
439 |
table_instance.update(filter, newValue)
|
440 |
self.connPool.release_conn(inf_conn)
|
441 |
return True
|
|
|
452 |
f"Skipped deleting `{filter}` from table {table_name} since the table doesn't exist."
|
453 |
)
|
454 |
return 0
|
455 |
+
logger.debug(f"INFINITY delete table {table_name}, filter {filter}.")
|
456 |
res = table_instance.delete(filter)
|
457 |
self.connPool.release_conn(inf_conn)
|
458 |
return res.deleted_rows
|
|
|
461 |
Helper functions for search result
|
462 |
"""
|
463 |
|
464 |
+
def getTotal(self, res: tuple[pl.DataFrame, int] | pl.DataFrame) -> int:
|
465 |
+
if isinstance(res, tuple):
|
466 |
+
return res[1]
|
467 |
return len(res)
|
468 |
|
469 |
+
def getChunkIds(self, res: tuple[pl.DataFrame, int] | pl.DataFrame) -> list[str]:
|
470 |
+
if isinstance(res, tuple):
|
471 |
+
res = res[0]
|
472 |
return list(res["id"])
|
473 |
|
474 |
+
def getFields(self, res: tuple[pl.DataFrame, int] | pl.DataFrame, fields: list[str]) -> list[str, dict]:
|
475 |
+
if isinstance(res, tuple):
|
476 |
+
res = res[0]
|
477 |
res_fields = {}
|
478 |
if not fields:
|
479 |
return {}
|
|
|
514 |
res_fields[id] = m
|
515 |
return res_fields
|
516 |
|
517 |
+
def getHighlight(self, res: tuple[pl.DataFrame, int] | pl.DataFrame, keywords: list[str], fieldnm: str):
|
518 |
+
if isinstance(res, tuple):
|
519 |
+
res = res[0]
|
520 |
ans = {}
|
521 |
num_rows = len(res)
|
522 |
column_id = res["id"]
|
|
|
542 |
ans[id] = "...".join(txts)
|
543 |
return ans
|
544 |
|
545 |
+
def getAggregation(self, res: tuple[pl.DataFrame, int] | pl.DataFrame, fieldnm: str):
|
546 |
"""
|
547 |
TODO: Infinity doesn't provide aggregation
|
548 |
"""
|
sdk/python/ragflow_sdk/modules/agent.py
CHANGED
@@ -1,7 +1,6 @@
|
|
1 |
from .base import Base
|
2 |
from .session import Session,Message
|
3 |
import requests
|
4 |
-
from typing import List
|
5 |
import json
|
6 |
|
7 |
|
@@ -62,7 +61,7 @@ class Agent(Base):
|
|
62 |
|
63 |
@staticmethod
|
64 |
def list_sessions(agent_id,rag,page: int = 1, page_size: int = 30, orderby: str = "create_time", desc: bool = True,
|
65 |
-
id: str = None) ->
|
66 |
url = f"{rag.api_url}/agents/{agent_id}/sessions"
|
67 |
headers = {"Authorization": f"Bearer {rag.user_key}"}
|
68 |
params = {"page": page, "page_size": page_size, "orderby": orderby, "desc": desc, "id": id}
|
|
|
1 |
from .base import Base
|
2 |
from .session import Session,Message
|
3 |
import requests
|
|
|
4 |
import json
|
5 |
|
6 |
|
|
|
61 |
|
62 |
@staticmethod
|
63 |
def list_sessions(agent_id,rag,page: int = 1, page_size: int = 30, orderby: str = "create_time", desc: bool = True,
|
64 |
+
id: str = None) -> list[Session]:
|
65 |
url = f"{rag.api_url}/agents/{agent_id}/sessions"
|
66 |
headers = {"Authorization": f"Bearer {rag.user_key}"}
|
67 |
params = {"page": page, "page_size": page_size, "orderby": orderby, "desc": desc, "id": id}
|