dingo-python 2.2.2__py3-none-any.whl → 2.3.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. dingo/config/input_args.py +11 -1
  2. dingo/exec/local.py +2 -1
  3. dingo/io/output/__init__.py +1 -0
  4. dingo/io/output/result_info.py +16 -0
  5. dingo/model/llm/compare/llm_html_extract_compare.py +17 -2
  6. dingo/model/llm/compare/llm_html_extract_compare_v2.py +1 -1
  7. dingo/model/llm/compare/llm_html_extract_compare_v3.py +221 -0
  8. dingo/model/llm/hhh/llm_text_3h.py +1 -1
  9. dingo/model/llm/llm_classify_qr.py +4 -2
  10. dingo/model/llm/llm_custom_metric.py +211 -0
  11. dingo/model/llm/llm_document_parsing_ocr.py +6 -2
  12. dingo/model/llm/llm_factcheck_public.py +1 -1
  13. dingo/model/llm/llm_keyword_matcher.py +1 -1
  14. dingo/model/llm/llm_scout.py +1 -1
  15. dingo/model/llm/mineru/vlm_document_parsing.py +4 -8
  16. dingo/model/llm/mineru/vlm_document_parsing_ocr_train.py +4 -8
  17. dingo/model/llm/rag/llm_rag_answer_relevancy.py +1 -1
  18. dingo/model/llm/rag/llm_rag_chunk_quality.py +99 -0
  19. dingo/model/llm/rag/llm_rag_context_precision.py +1 -1
  20. dingo/model/llm/rag/llm_rag_context_recall.py +1 -1
  21. dingo/model/llm/rag/llm_rag_faithfulness.py +1 -1
  22. dingo/model/llm/vlm_image_relevant.py +9 -52
  23. dingo/model/llm/vlm_layout_quality.py +3 -54
  24. dingo/model/model.py +37 -24
  25. dingo/model/rule/rule_common.py +76 -0
  26. dingo/model/rule/rule_image.py +41 -32
  27. dingo/model/rule/scibase/__init__.py +1 -0
  28. dingo/model/rule/scibase/rule_quanliang.py +655 -0
  29. dingo/run/cli.py +22 -1
  30. dingo/utils/image_loader.py +141 -0
  31. {dingo_python-2.2.2.dist-info → dingo_python-2.3.0.dist-info}/METADATA +22 -1
  32. {dingo_python-2.2.2.dist-info → dingo_python-2.3.0.dist-info}/RECORD +36 -30
  33. {dingo_python-2.2.2.dist-info → dingo_python-2.3.0.dist-info}/WHEEL +0 -0
  34. {dingo_python-2.2.2.dist-info → dingo_python-2.3.0.dist-info}/entry_points.txt +0 -0
  35. {dingo_python-2.2.2.dist-info → dingo_python-2.3.0.dist-info}/licenses/LICENSE +0 -0
  36. {dingo_python-2.2.2.dist-info → dingo_python-2.3.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,141 @@
1
+ import base64
2
+ import io
3
+ import os
4
+ from typing import List, Union
5
+
6
+ from PIL import Image
7
+
8
+
9
+ def _unwrap(source):
10
+ """If source is a list/tuple, return the first element."""
11
+ if isinstance(source, (list, tuple)):
12
+ if not source:
13
+ raise ValueError("Empty image list provided")
14
+ return source[0]
15
+ return source
16
+
17
+
18
+ _MIME_MAP = {
19
+ ".jpg": "image/jpeg",
20
+ ".jpeg": "image/jpeg",
21
+ ".png": "image/png",
22
+ ".gif": "image/gif",
23
+ ".bmp": "image/bmp",
24
+ ".webp": "image/webp",
25
+ ".tiff": "image/tiff",
26
+ ".tif": "image/tiff",
27
+ ".svg": "image/svg+xml",
28
+ }
29
+
30
+
31
+ def _mime_from_ext(path: str) -> str:
32
+ ext = os.path.splitext(path)[1].lower()
33
+ return _MIME_MAP.get(ext, "image/png")
34
+
35
+
36
+ def _download_url(url: str, timeout: int = 30) -> bytes:
37
+ import requests
38
+
39
+ headers = {"User-Agent": "Dingo(https://github.com/MigoXLab/dingo)"}
40
+ resp = requests.get(url, timeout=timeout, stream=True, headers=headers)
41
+ resp.raise_for_status()
42
+ return resp.content
43
+
44
+
45
+ class ImageLoader:
46
+ """Unified image loading for all Dingo evaluators.
47
+
48
+ Supports four input types:
49
+ - PIL.Image.Image object
50
+ - Local file path (absolute or relative to CWD)
51
+ - HTTP/HTTPS URL
52
+ - Base64 data URL (``data:image/...;base64,...``)
53
+
54
+ If a list is passed, the first element is used automatically.
55
+ """
56
+
57
+ @staticmethod
58
+ def load_pil(source: Union[str, List[str], Image.Image]) -> Image.Image:
59
+ """Load an image as a PIL Image (for Rule evaluators).
60
+
61
+ Args:
62
+ source: Local path, HTTP URL, base64 data URL, PIL Image,
63
+ or a list containing any of the above.
64
+
65
+ Returns:
66
+ PIL.Image.Image
67
+ """
68
+ source = _unwrap(source)
69
+
70
+ if isinstance(source, Image.Image):
71
+ return source
72
+
73
+ if not isinstance(source, str):
74
+ raise TypeError(
75
+ f"Expected str or PIL.Image, got {type(source).__name__}"
76
+ )
77
+
78
+ if source.startswith("data:"):
79
+ header, data = source.split(",", 1)
80
+ image_bytes = base64.b64decode(data)
81
+ return Image.open(io.BytesIO(image_bytes))
82
+
83
+ if source.startswith(("http://", "https://")):
84
+ image_bytes = _download_url(source)
85
+ return Image.open(io.BytesIO(image_bytes))
86
+
87
+ # Local file path
88
+ if not os.path.isfile(source):
89
+ raise FileNotFoundError(
90
+ f"Image file not found: '{source}'\n"
91
+ f"Current working directory: {os.getcwd()}\n"
92
+ f"Absolute path would be: {os.path.abspath(source)}\n"
93
+ f"Ensure the path is correct relative to your working directory."
94
+ )
95
+ return Image.open(source)
96
+
97
+ @staticmethod
98
+ def encode_for_api(source: Union[str, List[str], Image.Image]) -> str:
99
+ """Encode an image for OpenAI-compatible vision APIs.
100
+
101
+ Returns a string suitable for ``{"type": "image_url", "image_url": {"url": ...}}``.
102
+
103
+ Args:
104
+ source: Local path, HTTP URL, base64 data URL, PIL Image,
105
+ or a list containing any of the above.
106
+
107
+ Returns:
108
+ URL string or ``data:image/...;base64,...`` data URL.
109
+ """
110
+ source = _unwrap(source)
111
+
112
+ if isinstance(source, Image.Image):
113
+ buf = io.BytesIO()
114
+ fmt = source.format or "PNG"
115
+ mime = _MIME_MAP.get(f".{fmt.lower()}", "image/png")
116
+ source.save(buf, format=fmt)
117
+ b64 = base64.b64encode(buf.getvalue()).decode("utf-8")
118
+ return f"data:{mime};base64,{b64}"
119
+
120
+ if not isinstance(source, str):
121
+ raise TypeError(
122
+ f"Expected str or PIL.Image, got {type(source).__name__}"
123
+ )
124
+
125
+ # Already a data URL or remote URL — pass through
126
+ if source.startswith(("data:", "http://", "https://")):
127
+ return source
128
+
129
+ # Local file path
130
+ if not os.path.isfile(source):
131
+ raise FileNotFoundError(
132
+ f"Image file not found: '{source}'\n"
133
+ f"Current working directory: {os.getcwd()}\n"
134
+ f"Absolute path would be: {os.path.abspath(source)}\n"
135
+ f"Ensure the path is correct relative to your working directory."
136
+ )
137
+
138
+ mime = _mime_from_ext(source)
139
+ with open(source, "rb") as f:
140
+ b64 = base64.b64encode(f.read()).decode("utf-8")
141
+ return f"data:{mime};base64,{b64}"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dingo-python
3
- Version: 2.2.2
3
+ Version: 2.3.0
4
4
  Summary: A Comprehensive AI Data Quality Evaluation Tool for Large Models
5
5
  Home-page: https://github.com/MigoXLab/dingo
6
6
  Author: Dingo
@@ -142,6 +142,27 @@ Need a **production-grade data quality platform**? Try [Dingo SaaS](https://ding
142
142
  - 📊 **Visual Reports** - Interactive charts, trend analysis, export features
143
143
  - 🔌 **RESTful API** - Seamless integration with existing systems
144
144
 
145
+ <details>
146
+ <summary><strong>SaaS — Dashboard</strong></summary>
147
+
148
+ <img src="docs/assets/saas_dashboard.png" alt="Dingo SaaS dashboard" />
149
+
150
+ </details>
151
+
152
+ <details>
153
+ <summary><strong>SaaS — Playground</strong></summary>
154
+
155
+ <img src="docs/assets/saas_playground.png" alt="Dingo SaaS playground" />
156
+
157
+ </details>
158
+
159
+ <details>
160
+ <summary><strong>SaaS — Evaluation output</strong></summary>
161
+
162
+ <img src="docs/assets/saas_output.png" alt="Dingo SaaS evaluation output" />
163
+
164
+ </details>
165
+
145
166
  ### 📝 How to Get Free SaaS Code
146
167
 
147
168
  👉 **[Apply for Dingo SaaS Repository Access](https://aicarrier.feishu.cn/share/base/form/shrcnr19E0upfiA92Wm5i2eic7g)**
@@ -1,6 +1,6 @@
1
1
  dingo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  dingo/config/__init__.py,sha256=SaeOmGEUG0Hp5lqHxnHUTE_9ysN5KzA_Icilb9xY2mQ,349
3
- dingo/config/input_args.py,sha256=48LEVcj7qIwIIVcPM7I29Mpl2YWbCGwv-nRdtVeTYcc,4147
3
+ dingo/config/input_args.py,sha256=ngOJcAyq_LdLqNszMTljfOUp_utXN6FX-nBsD_ADyeg,4388
4
4
  dingo/data/__init__.py,sha256=reCw4XQoInUTtvRW6c1wY_LH1EWJ7XpZDQcBCW61Lf8,214
5
5
  dingo/data/converter/__init__.py,sha256=1MiG4H8Sg2sYHQmYdg0F9_1okP_YoMNHyQorPEAf6zw,91
6
6
  dingo/data/converter/base.py,sha256=_WXa_plKj83iFgQyHABchGbX-dv3d17QuODua-bd83w,12820
@@ -23,39 +23,40 @@ dingo/data/utils/digit.py,sha256=V_Cy8o0t0JdBHOJZmi0A6nSczSfi2AbdE23fcWbTN_s,241
23
23
  dingo/data/utils/insecure_hash.py,sha256=1FnevDyjeOrtsBQVlckJDEbk6mItMvfj07_Ut7oBioo,447
24
24
  dingo/exec/__init__.py,sha256=EXoSQo4cPE32zAH0qRVi1ZmKX1WCDvBCO-bdhVGpDOA,340
25
25
  dingo/exec/base.py,sha256=sZ-KHTK-NrrB5N06QV021SBnUAGLfzl_kSvTGyucvRo,720
26
- dingo/exec/local.py,sha256=ArS-dEaw3amSCGKr4Fyf5DHw2a6e-rI-k92pdpdasWs,16297
26
+ dingo/exec/local.py,sha256=KchRnnGr3uvTBlkxnA_PQBMhsC6FX9Ca2Meu5Cmf9Os,16304
27
27
  dingo/exec/spark.py,sha256=D0WKmLWKlhWhR64gMy_Wf6EZLbyKnefQ8Q0QOQ-lQeo,13765
28
28
  dingo/io/__init__.py,sha256=UrZs_MwgefoqkdeNfJ0PvIEQu6hx-Qcp9l9soje9m8M,185
29
29
  dingo/io/input/__init__.py,sha256=OCRNdvnpclzVsey0NHVAnp46-MRZWkhbthCOW6U7KgQ,121
30
30
  dingo/io/input/data.py,sha256=RI9l7LD9-Ifrl5ESzGLtei8_lQqatjPqTg46ck7A2ZE,451
31
31
  dingo/io/input/required_field.py,sha256=wc46XlEOqQ-KUs2XZdtyJak_If7b8NwHak3Crspllao,167
32
- dingo/io/output/__init__.py,sha256=GAJff17ysyXOutS9P64nGmvlNprLRBXMMbmaa79NqWQ,134
32
+ dingo/io/output/__init__.py,sha256=uNwR6lybPUioJNmWdcW_kpo_vBMXbHt-dRyFLFkHsIo,211
33
33
  dingo/io/output/eval_detail.py,sha256=MbVzTXhBCbGBMMk7Rm6NW2Xab2e-VSEwbrD3ZFtzX18,467
34
- dingo/io/output/result_info.py,sha256=SYbXIINY5G2mkSdrGqMmxZWBlvPhnqHn5ZHgduLv560,1258
34
+ dingo/io/output/result_info.py,sha256=QpH1Kg31K0DXOOQbrKc8KtBaMtt2_qx5NOtUckIPJto,1855
35
35
  dingo/io/output/summary_model.py,sha256=t58wG948pZDvDx0d-kPXcOVzXgNUyOqq9PzvSVedEbU,4689
36
36
  dingo/model/__init__.py,sha256=CULKDg2nazgoRvg8j2Ue8GBzZnTXwztX-t0REyAs8SQ,56
37
- dingo/model/model.py,sha256=4Y73hETATJVzwb9p62D0NV7STpDUIJo4Sx0_NYak68w,6106
37
+ dingo/model/model.py,sha256=TXn1GEcLj1yhTG084JAc4zbGDUN7K1jpov5ZhyEGmy0,6266
38
38
  dingo/model/llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
39
  dingo/model/llm/base.py,sha256=n5ZHJNoJ0XSeG2i6ydN3W6pUYSAJaQgirjT_CiaJUlU,384
40
40
  dingo/model/llm/base_lmdeploy_apiclient.py,sha256=fTfSyqynGH-C29IijIU0euIWpc3BxoYXEEj-UEJWtCA,3457
41
41
  dingo/model/llm/base_openai.py,sha256=_qu96G0nVQcJdyashrbXGbTCTEuz6WkL1Uh4TjXNS28,7894
42
- dingo/model/llm/llm_classify_qr.py,sha256=CpaXg1jaRRxBHJEpznV8qr4thVrK93vd5K65ubKp1QI,2568
42
+ dingo/model/llm/llm_classify_qr.py,sha256=5iRSx7O7DfshkbJa4nDPBiQY6yy0dXDoo3NlBMN9yVM,2671
43
43
  dingo/model/llm/llm_classify_topic.py,sha256=AjSXi6KR5sVrkuxPfTYF-HoQlIMa-OshlJjFgdIE48w,5185
44
+ dingo/model/llm/llm_custom_metric.py,sha256=mmsNEMry3-FewEf4EnoxsvUmp5bDn0m-Av50sbOLjyk,8275
44
45
  dingo/model/llm/llm_dataman_assessment.py,sha256=yxHn3wc106XqKKyAaslJ-ZQhMinFYnEPmaHLOcGsqss,5574
45
- dingo/model/llm/llm_document_parsing_ocr.py,sha256=F2_ekpbyd5bYXUHx1QqNP02fnms2S64n9Fcipthl0tQ,6148
46
- dingo/model/llm/llm_factcheck_public.py,sha256=OqqYjV_lMzMIKoH1ixB25BBZO_Vuy7mG3XlE4zYfycs,14498
46
+ dingo/model/llm/llm_document_parsing_ocr.py,sha256=Xnf6BkzXg4dl7v9Pzko8klQKxB2_b4Xsa2By3892kwc,6315
47
+ dingo/model/llm/llm_factcheck_public.py,sha256=tsnKa65lJsi3EnqcG38qbOjTiLkxOWfBxyp6GzDesxg,14498
47
48
  dingo/model/llm/llm_hallucination.py,sha256=fXg1max3ADPlwbM6L_vGFS2CRNWPqYEg2f5QzjxvPUc,9374
48
- dingo/model/llm/llm_keyword_matcher.py,sha256=_NFh3d-I-ZGyhAugU7uGbwbJRXqDJ-zJQF_e0Czb2ws,12355
49
+ dingo/model/llm/llm_keyword_matcher.py,sha256=lnM5AU4S_HhzzAUU1e8GLOA6fLVDPPVX7xLyOhj5bdk,12355
49
50
  dingo/model/llm/llm_long_video_qa.py,sha256=Rq0xJQ-D8vnX558ilykp27_O1De6_XiC9hIVqueSaaI,7782
50
51
  dingo/model/llm/llm_perspective.py,sha256=ZM4nW9640Suo2YXW5k0pPjuRdhd5qC-SE15OlPkrJmc,3264
51
52
  dingo/model/llm/llm_resume_optimizer.py,sha256=MlxicvM9udZUCFaNbHnEqRumB5AtYGPPb7jbWJqBONs,19724
52
53
  dingo/model/llm/llm_resume_quality.py,sha256=Dw_sV7RTh6RjUWCAYl7NO6LR0jQ98CjXuk1tF4p36vc,7010
53
- dingo/model/llm/llm_scout.py,sha256=KM7OJV3o1OBSK5l7WtD71VPLw-y9yntOzWWU98xOQMk,17800
54
+ dingo/model/llm/llm_scout.py,sha256=nddmUF7i6sQ7sLmqWW6fUU6KTlO4MAhBPKtjTR8ZkoA,17800
54
55
  dingo/model/llm/llm_text_chaos.py,sha256=tuvhSyatcImj8ZRB6-Ah2F7lmfe41sEHVxHMEdrHE0o,1791
55
56
  dingo/model/llm/llm_text_code_list_issue.py,sha256=hEa6L-_uc-lp_0cTMl3KmlHjKxJiChcC4acGg9bQGCY,3392
56
57
  dingo/model/llm/llm_text_kaoti.py,sha256=8-MAALqF-iBNSE3Qukh5Tt9LhM8BF4ywR7KhjbllItk,8047
57
- dingo/model/llm/vlm_image_relevant.py,sha256=nuOqMSxfqHPdYzCXy-le3baX9-RIKnSdCoy1IFwK1Bk,4209
58
- dingo/model/llm/vlm_layout_quality.py,sha256=hILcPWmxls0dr9XF1idSxmE4KjSfamJ-CJGp4sBfIVU,14160
58
+ dingo/model/llm/vlm_image_relevant.py,sha256=-P5S-vlYZ05zyCDNPI9C6Gp8kbaehUxUr7x4DtT-lRE,2507
59
+ dingo/model/llm/vlm_layout_quality.py,sha256=2YLsLrAe1tweziomlMYWSXjc6FdgMVDYE8qJncTE0Ig,12130
59
60
  dingo/model/llm/vlm_ocr_understanding.py,sha256=_fmcYWeoh4rNx7WrkVx8PhxJ8JEw-nNm-nxFunuiMt4,7810
60
61
  dingo/model/llm/agent/__init__.py,sha256=gPo09JDUrctXbiqruFlR_rs1et0Nz1_Au3N_xAOTLTg,718
61
62
  dingo/model/llm/agent/agent_article_fact_checker.py,sha256=oS5O-LOYjc3CsTzqL6ui7jTxB0_amNHYVrFTV6NFvq8,80030
@@ -74,13 +75,14 @@ dingo/model/llm/agent/tools/tavily_search.py,sha256=lTN-IPeFqhC6loyOaSXGQWffch6A
74
75
  dingo/model/llm/agent/tools/tool_registry.py,sha256=l8IkjXfq8a-9DLcxeR0M56YFoNaudR3T-4mjmhTokq0,3022
75
76
  dingo/model/llm/compare/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
77
  dingo/model/llm/compare/llm_code_compare.py,sha256=ihWgJQ22Ycsa3kcY6K2_vN0dZzCR2HTyXv2LJnwPpiI,7077
77
- dingo/model/llm/compare/llm_html_extract_compare.py,sha256=23sK61QbEe3ap6LQh9NmxmjrVpl_0G5qfQH2oYQuYr8,6443
78
+ dingo/model/llm/compare/llm_html_extract_compare.py,sha256=9pbcNWLMUfLDhU82Lsm_UM6NyqIRjRM3WP5_Zr2XaiU,7285
78
79
  dingo/model/llm/compare/llm_html_extract_compare_en.py,sha256=siPbaCcCWqvHNyHduul3wCI9lfSWC08f81JMZH-Ebh4,5427
79
- dingo/model/llm/compare/llm_html_extract_compare_v2.py,sha256=-HWm4NLBTaQmF9fcjEs2V8IOHPo4f_hegdPxjZckpzA,11940
80
+ dingo/model/llm/compare/llm_html_extract_compare_v2.py,sha256=yMMuYC6QOxWWBCPktiKtYF16C2cMilhZ0ZdLUN-kHz4,11940
81
+ dingo/model/llm/compare/llm_html_extract_compare_v3.py,sha256=LNItD1HiTlCaqVNh--YCXtyx0lx-hDfHz6gX_YcB6tU,10972
80
82
  dingo/model/llm/compare/llm_math_compare.py,sha256=Jseu9i6cCQ0uXxEp7SovraKDxDZkRdsGwI0hfadbdoQ,7662
81
83
  dingo/model/llm/compare/llm_table_compare.py,sha256=zw7JhFK1v-NZitOIRmTdbw-GdWkUGMyah5N1gFsdMF4,7564
82
84
  dingo/model/llm/hhh/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
- dingo/model/llm/hhh/llm_text_3h.py,sha256=XgsM2_4cmEPjOKDp3i91ECyneQEc-DLRrtaDi7WCW7c,2185
85
+ dingo/model/llm/hhh/llm_text_3h.py,sha256=g7HoEkoU7yrIYcHF8ufVVKkC4pd2FLzy7733pHmC6yU,2185
84
86
  dingo/model/llm/hhh/llm_text_3h_harmless.py,sha256=BEllrmFzBfGJvC_gN4TOeit9FXAATFsZ62OZ4htXJCY,2425
85
87
  dingo/model/llm/hhh/llm_text_3h_helpful.py,sha256=OrK3chIL6KOTnIHDZciICQNM5pURhv3KhtzuXlcjCWE,2397
86
88
  dingo/model/llm/hhh/llm_text_3h_honest.py,sha256=4xgHwzbqfuK_HNB8qqwYI-YVXfaGy2c6U5i-wltnVdY,2151
@@ -93,8 +95,8 @@ dingo/model/llm/meta_rater/llm_meta_rater_professionalism.py,sha256=o_J9KpFzYujM
93
95
  dingo/model/llm/meta_rater/llm_meta_rater_readability.py,sha256=npnWJZANs8pwyqND4SBOEDbXZ0dbnPmALIVAAaOYeqk,6365
94
96
  dingo/model/llm/meta_rater/llm_meta_rater_reasoning.py,sha256=yGzOzUnJbdNYDwpBceLKEvAtwjQe6nnSM7BXPng-NLw,7046
95
97
  dingo/model/llm/mineru/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
96
- dingo/model/llm/mineru/vlm_document_parsing.py,sha256=5gUM7QixmXpT-i9VZY6uQz0Udl00-guzXRLmFO9jZvo,21410
97
- dingo/model/llm/mineru/vlm_document_parsing_ocr_train.py,sha256=SSQuv56FCneasG8W9w8Hu66PbSJIAIHz8JgfPNWNW9Y,6612
98
+ dingo/model/llm/mineru/vlm_document_parsing.py,sha256=tOg_5gEwCfhXZBdP_88xYhwc6lc-aukLNezJ_jneC08,21250
99
+ dingo/model/llm/mineru/vlm_document_parsing_ocr_train.py,sha256=nq2qnslunLMV2sGHubtsdTh_vUHCeTwAF9OgzVQG3Os,6452
98
100
  dingo/model/llm/minor_lan/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
99
101
  dingo/model/llm/minor_lan/llm_text_language_ar.py,sha256=SN2ODD12mw-BGDKSRK2eOQBDNXUaEauYlslP5gxxTrU,1236
100
102
  dingo/model/llm/minor_lan/llm_text_language_cs.py,sha256=uFms0IGkwonZQGHPFihs99qCdvlSvRKeCxck1Gmp4BY,1234
@@ -105,11 +107,12 @@ dingo/model/llm/minor_lan/llm_text_language_sr.py,sha256=ff-cV1XJHTy7UI27LbWN7b2
105
107
  dingo/model/llm/minor_lan/llm_text_language_th.py,sha256=4t5yqwGysGFmqwYOvfNydsqAvJ4ZLe__iFyqYfPib6k,1232
106
108
  dingo/model/llm/minor_lan/llm_text_language_vi.py,sha256=IihiHbONc1dCumJb1FI4c79sSP1kkcImbdSgopd-oBU,1244
107
109
  dingo/model/llm/rag/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
108
- dingo/model/llm/rag/llm_rag_answer_relevancy.py,sha256=GAs0-vUURALZL825RHc8d6agrD08C5nO289KB1iJ7sE,11554
109
- dingo/model/llm/rag/llm_rag_context_precision.py,sha256=7oX1hMDLlp4oD4aobATYl4TPCcJd6IVAR8RZO_3psmI,11294
110
- dingo/model/llm/rag/llm_rag_context_recall.py,sha256=SkZx1UByl35y50d5Ckwk-6LPTOSCehgmlgVOycFhXPE,10485
110
+ dingo/model/llm/rag/llm_rag_answer_relevancy.py,sha256=M7PHPe1ZquyY_R_kXdazrVAmfhd25N-_36-1kmxgFBQ,11554
111
+ dingo/model/llm/rag/llm_rag_chunk_quality.py,sha256=1Rw8uI_4Hums9q5ulQnyzWRCNcKhUXWKo9GCl8CGPlM,4761
112
+ dingo/model/llm/rag/llm_rag_context_precision.py,sha256=FHXoOt3uKhQX26aUV9n1kipSbtkdmRVjjHQcxPsdgXE,11294
113
+ dingo/model/llm/rag/llm_rag_context_recall.py,sha256=zPEl4JeznuNdOYA85jYDP0Y3PAwLFdp0jFJqYSGbdM0,10485
111
114
  dingo/model/llm/rag/llm_rag_context_relevancy.py,sha256=OjtFKufsbgDL2aIHKzuM3hHdCrYpdXKy9tsQbuBhbwU,7638
112
- dingo/model/llm/rag/llm_rag_faithfulness.py,sha256=x2BkMu5SKybjUh0b3yiC6ZhHNXf_LM3JdK8gprf-R8U,9411
115
+ dingo/model/llm/rag/llm_rag_faithfulness.py,sha256=Nzws0XOJntCEwTJ_heG55l1RkmbK0XVYl0H047hJeAI,9411
113
116
  dingo/model/llm/security/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
114
117
  dingo/model/llm/security/llm_security.py,sha256=f2PvPUGfm3hhvI4FFlnz_0G5a2pGZeA7-3mk8FLe0i8,1194
115
118
  dingo/model/llm/security/llm_security_politics.py,sha256=dYMQagmIGJqnAPXY_LCHLH6R7JcJxDSnzxNtFzWbEF0,1314
@@ -131,26 +134,29 @@ dingo/model/response/response_hallucination.py,sha256=BPVlhCWnR-wFAUZnYZNn9tFVJH
131
134
  dingo/model/rule/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
132
135
  dingo/model/rule/base.py,sha256=vwNXPn2VNOlIt8UoKMy-zHus85FkE-OhG0igNw3rjp8,516
133
136
  dingo/model/rule/rule_audio.py,sha256=m9pIp8A0CRWwh4d_ZNBJt-sNLTFlzIcK_DSdDvErMMY,3807
134
- dingo/model/rule/rule_common.py,sha256=M9v392kSswaev8E_lrzKfwnWe7jm7u3MUTwOE2z9UyY,102543
137
+ dingo/model/rule/rule_common.py,sha256=NXeBtxl6gzUl_Xgl58L6JH4ZhbZ1AgCwcF--LAJglgQ,105589
135
138
  dingo/model/rule/rule_hallucination_hhem.py,sha256=h77boAeK5VpxpH-3QW3a0lEPvoU7RjTKS5TyXWUo9MM,10837
136
- dingo/model/rule/rule_image.py,sha256=Vu5sFZpjimRln9jQ9vq9rPhfeEaMggBmZ3_lPfgHQZc,30786
139
+ dingo/model/rule/rule_image.py,sha256=cVPA4d7t7zyaKXyvkRXnHD3if64zm8eylz2jYYF_LOI,31305
137
140
  dingo/model/rule/rule_resume.py,sha256=fY1tps5qKiYWcePoGaI0DI9Z-yrOYtXQ-j5m3DHbrn0,18215
138
141
  dingo/model/rule/rule_sciencemetabench.py,sha256=wZU_JaRpPfBpcmlexmisXTXf2R55GWlcC3ab10r32us,4621
139
142
  dingo/model/rule/rule_xinghe.py,sha256=xb7ZIrvDkUCmCEEX-OPFG-648SXsGcIzFBaPdVjrYP8,3677
143
+ dingo/model/rule/scibase/__init__.py,sha256=wXSf0J31ksRgf9JCKVr6RHBOXijfxRzzwDUckAi5nUQ,46
144
+ dingo/model/rule/scibase/rule_quanliang.py,sha256=ynAgH6p3HjE8_zekq5w6TrxvwJyM9EcmPCi3ygmEQJE,22356
140
145
  dingo/model/rule/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
141
146
  dingo/model/rule/utils/detect_lang.py,sha256=UnFAnRNe6pNpvgcjCD74-mi5uBWtU8frCYssI1DEjxA,8251
142
147
  dingo/model/rule/utils/image_util.py,sha256=fliGQgta2cQx5TJWOpkoXSaMT7XHFg6JszNAUJZrrIg,188
143
148
  dingo/model/rule/utils/multi_lan_util.py,sha256=J_P193zvzyDnIz5-6WI33oFZQpovWQ6BvhqgI00Pvzw,2839
144
149
  dingo/model/rule/utils/util.py,sha256=jw0vwFVTS1PSMN26Xo6ENWl4Oqh8UwY0LSzwE9Y-f2o,17379
145
150
  dingo/run/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
146
- dingo/run/cli.py,sha256=GIzzqygwMEkM10_6y1g0fC4Cp5LYYyPbfJ2MJua8H-I,8585
151
+ dingo/run/cli.py,sha256=ltuVb2IN7BztaWWJ4wAqUSFaN3vJDP_XCB1zObkwXyw,9383
147
152
  dingo/utils/__init__.py,sha256=d8nJluje6i4z_Bb1rcXJSmEoAhyn1mkqEXJEOEdaMy4,51
148
153
  dingo/utils/exception.py,sha256=fh58dSLSmYSnwW4MQXg-Jfai2QcZfDruTaYGbaWk7Wc,446
154
+ dingo/utils/image_loader.py,sha256=RqnziJhqDB6zWf1s7S4zKgFqLA9e9CHkf5aU1R4fqnM,4479
149
155
  dingo/utils/log_util/__init__.py,sha256=VfzAAHUV8RuN-QaySahfAPfhM__-myigUlKx7ywVerA,717
150
156
  dingo/utils/log_util/logger.py,sha256=spGK0w22UgXsCcArd1rpt2teLPy7QPlIuvBaKYioHdY,1414
151
- dingo_python-2.2.2.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
152
- dingo_python-2.2.2.dist-info/METADATA,sha256=tBPvDUcDxzjjBcM170bnA7fYVeWvWuW7M4IbIMK054Y,27086
153
- dingo_python-2.2.2.dist-info/WHEEL,sha256=SmOxYU7pzNKBqASvQJ7DjX3XGUF92lrGhMb3R6_iiqI,91
154
- dingo_python-2.2.2.dist-info/entry_points.txt,sha256=Vo_p8qSVnOENdy1uubqxJRppZIpiQ753JG3WPAUeYps,45
155
- dingo_python-2.2.2.dist-info/top_level.txt,sha256=gSXQSLowu_WOQRi75wK3qyjbHxeN5PqsaA4ChGmJdek,6
156
- dingo_python-2.2.2.dist-info/RECORD,,
157
+ dingo_python-2.3.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
158
+ dingo_python-2.3.0.dist-info/METADATA,sha256=F6glwcTym-X-iH-k5LDOT2bu5lmZdzdDWgwH4_n2Eg4,27555
159
+ dingo_python-2.3.0.dist-info/WHEEL,sha256=SmOxYU7pzNKBqASvQJ7DjX3XGUF92lrGhMb3R6_iiqI,91
160
+ dingo_python-2.3.0.dist-info/entry_points.txt,sha256=Vo_p8qSVnOENdy1uubqxJRppZIpiQ753JG3WPAUeYps,45
161
+ dingo_python-2.3.0.dist-info/top_level.txt,sha256=gSXQSLowu_WOQRi75wK3qyjbHxeN5PqsaA4ChGmJdek,6
162
+ dingo_python-2.3.0.dist-info/RECORD,,