indoxJudge 0.0.0__tar.gz

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 (184) hide show
  1. indoxjudge-0.0.0/LICENSE +21 -0
  2. indoxjudge-0.0.0/MANIFEST.in +2 -0
  3. indoxjudge-0.0.0/PKG-INFO +228 -0
  4. indoxjudge-0.0.0/README.md +188 -0
  5. indoxjudge-0.0.0/indoxJudge/__init__.py +0 -0
  6. indoxjudge-0.0.0/indoxJudge/__pycache__/__init__.cpython-312.pyc +0 -0
  7. indoxjudge-0.0.0/indoxJudge/graph/__init__.py +2 -0
  8. indoxjudge-0.0.0/indoxJudge/graph/__pycache__/__init__.cpython-312.pyc +0 -0
  9. indoxjudge-0.0.0/indoxJudge/graph/__pycache__/visualization.cpython-312.pyc +0 -0
  10. indoxjudge-0.0.0/indoxJudge/graph/assets/style.css +188 -0
  11. indoxjudge-0.0.0/indoxJudge/graph/visualization.py +466 -0
  12. indoxjudge-0.0.0/indoxJudge/metrics/__init__.py +20 -0
  13. indoxjudge-0.0.0/indoxJudge/metrics/__pycache__/__init__.cpython-312.pyc +0 -0
  14. indoxjudge-0.0.0/indoxJudge/metrics/answer_relevancy/__init__.py +1 -0
  15. indoxjudge-0.0.0/indoxJudge/metrics/answer_relevancy/__pycache__/__init__.cpython-312.pyc +0 -0
  16. indoxjudge-0.0.0/indoxJudge/metrics/answer_relevancy/__pycache__/answerRelevancy.cpython-312.pyc +0 -0
  17. indoxjudge-0.0.0/indoxJudge/metrics/answer_relevancy/__pycache__/template.cpython-312.pyc +0 -0
  18. indoxjudge-0.0.0/indoxJudge/metrics/answer_relevancy/answerRelevancy.py +155 -0
  19. indoxjudge-0.0.0/indoxJudge/metrics/answer_relevancy/template.py +96 -0
  20. indoxjudge-0.0.0/indoxJudge/metrics/bertscore/__init__.py +1 -0
  21. indoxjudge-0.0.0/indoxJudge/metrics/bertscore/__pycache__/__init__.cpython-312.pyc +0 -0
  22. indoxjudge-0.0.0/indoxJudge/metrics/bertscore/__pycache__/bertscore.cpython-312.pyc +0 -0
  23. indoxjudge-0.0.0/indoxJudge/metrics/bertscore/bertscore.py +135 -0
  24. indoxjudge-0.0.0/indoxJudge/metrics/bias/__init__.py +1 -0
  25. indoxjudge-0.0.0/indoxJudge/metrics/bias/__pycache__/__init__.cpython-312.pyc +0 -0
  26. indoxjudge-0.0.0/indoxJudge/metrics/bias/__pycache__/bias.cpython-312.pyc +0 -0
  27. indoxjudge-0.0.0/indoxJudge/metrics/bias/__pycache__/template.cpython-312.pyc +0 -0
  28. indoxjudge-0.0.0/indoxJudge/metrics/bias/bias.py +115 -0
  29. indoxjudge-0.0.0/indoxJudge/metrics/bias/template.py +99 -0
  30. indoxjudge-0.0.0/indoxJudge/metrics/bleu/__init__.py +1 -0
  31. indoxjudge-0.0.0/indoxJudge/metrics/bleu/__pycache__/__init__.cpython-312.pyc +0 -0
  32. indoxjudge-0.0.0/indoxJudge/metrics/bleu/__pycache__/bleu.cpython-312.pyc +0 -0
  33. indoxjudge-0.0.0/indoxJudge/metrics/bleu/bleu.py +190 -0
  34. indoxjudge-0.0.0/indoxJudge/metrics/bleu/t.ipynb +0 -0
  35. indoxjudge-0.0.0/indoxJudge/metrics/contextual_relevancy/__init__.py +1 -0
  36. indoxjudge-0.0.0/indoxJudge/metrics/contextual_relevancy/__pycache__/__init__.cpython-312.pyc +0 -0
  37. indoxjudge-0.0.0/indoxJudge/metrics/contextual_relevancy/__pycache__/contextualRelevancy.cpython-312.pyc +0 -0
  38. indoxjudge-0.0.0/indoxJudge/metrics/contextual_relevancy/__pycache__/template.cpython-312.pyc +0 -0
  39. indoxjudge-0.0.0/indoxJudge/metrics/contextual_relevancy/contextualRelevancy.py +90 -0
  40. indoxjudge-0.0.0/indoxJudge/metrics/contextual_relevancy/template.py +67 -0
  41. indoxjudge-0.0.0/indoxJudge/metrics/fairness/__init__.py +1 -0
  42. indoxjudge-0.0.0/indoxJudge/metrics/fairness/__pycache__/__init__.cpython-312.pyc +0 -0
  43. indoxjudge-0.0.0/indoxJudge/metrics/fairness/__pycache__/fairness.cpython-312.pyc +0 -0
  44. indoxjudge-0.0.0/indoxJudge/metrics/fairness/__pycache__/template.cpython-312.pyc +0 -0
  45. indoxjudge-0.0.0/indoxJudge/metrics/fairness/fairness.py +76 -0
  46. indoxjudge-0.0.0/indoxJudge/metrics/fairness/template.py +50 -0
  47. indoxjudge-0.0.0/indoxJudge/metrics/faithfulness/__init__.py +1 -0
  48. indoxjudge-0.0.0/indoxJudge/metrics/faithfulness/__pycache__/__init__.cpython-312.pyc +0 -0
  49. indoxjudge-0.0.0/indoxJudge/metrics/faithfulness/__pycache__/faithfulness.cpython-312.pyc +0 -0
  50. indoxjudge-0.0.0/indoxJudge/metrics/faithfulness/__pycache__/template.cpython-312.pyc +0 -0
  51. indoxjudge-0.0.0/indoxJudge/metrics/faithfulness/faithfulness.py +141 -0
  52. indoxjudge-0.0.0/indoxJudge/metrics/faithfulness/template.py +145 -0
  53. indoxjudge-0.0.0/indoxJudge/metrics/g_eval/__init__.py +1 -0
  54. indoxjudge-0.0.0/indoxJudge/metrics/g_eval/__pycache__/__init__.cpython-312.pyc +0 -0
  55. indoxjudge-0.0.0/indoxJudge/metrics/g_eval/__pycache__/geval.cpython-312.pyc +0 -0
  56. indoxjudge-0.0.0/indoxJudge/metrics/g_eval/__pycache__/template.cpython-312.pyc +0 -0
  57. indoxjudge-0.0.0/indoxJudge/metrics/g_eval/geval.py +110 -0
  58. indoxjudge-0.0.0/indoxJudge/metrics/g_eval/template.py +48 -0
  59. indoxjudge-0.0.0/indoxJudge/metrics/gruen/__init__.py +1 -0
  60. indoxjudge-0.0.0/indoxJudge/metrics/gruen/__pycache__/__init__.cpython-312.pyc +0 -0
  61. indoxjudge-0.0.0/indoxJudge/metrics/gruen/__pycache__/gruen.cpython-312.pyc +0 -0
  62. indoxjudge-0.0.0/indoxJudge/metrics/gruen/gruen.py +415 -0
  63. indoxjudge-0.0.0/indoxJudge/metrics/hallucination/__init__.py +1 -0
  64. indoxjudge-0.0.0/indoxJudge/metrics/hallucination/__pycache__/__init__.cpython-312.pyc +0 -0
  65. indoxjudge-0.0.0/indoxJudge/metrics/hallucination/__pycache__/hallucination.cpython-312.pyc +0 -0
  66. indoxjudge-0.0.0/indoxJudge/metrics/hallucination/__pycache__/template.cpython-312.pyc +0 -0
  67. indoxjudge-0.0.0/indoxJudge/metrics/hallucination/hallucination.py +83 -0
  68. indoxjudge-0.0.0/indoxJudge/metrics/hallucination/template.py +62 -0
  69. indoxjudge-0.0.0/indoxJudge/metrics/harmfulness/__init__.py +1 -0
  70. indoxjudge-0.0.0/indoxJudge/metrics/harmfulness/__pycache__/__init__.cpython-312.pyc +0 -0
  71. indoxjudge-0.0.0/indoxJudge/metrics/harmfulness/__pycache__/harmfulness.cpython-312.pyc +0 -0
  72. indoxjudge-0.0.0/indoxJudge/metrics/harmfulness/__pycache__/template.cpython-312.pyc +0 -0
  73. indoxjudge-0.0.0/indoxJudge/metrics/harmfulness/harmfulness.py +74 -0
  74. indoxjudge-0.0.0/indoxJudge/metrics/harmfulness/template.py +56 -0
  75. indoxjudge-0.0.0/indoxJudge/metrics/knowledge_retention/KnowledgeRetention.py +173 -0
  76. indoxjudge-0.0.0/indoxJudge/metrics/knowledge_retention/__init__.py +1 -0
  77. indoxjudge-0.0.0/indoxJudge/metrics/knowledge_retention/__pycache__/KnowledgeRetention.cpython-312.pyc +0 -0
  78. indoxjudge-0.0.0/indoxJudge/metrics/knowledge_retention/__pycache__/__init__.cpython-312.pyc +0 -0
  79. indoxjudge-0.0.0/indoxJudge/metrics/knowledge_retention/__pycache__/template.cpython-312.pyc +0 -0
  80. indoxjudge-0.0.0/indoxJudge/metrics/knowledge_retention/template.py +173 -0
  81. indoxjudge-0.0.0/indoxJudge/metrics/machine_ethics/__init__.py +1 -0
  82. indoxjudge-0.0.0/indoxJudge/metrics/machine_ethics/__pycache__/__init__.cpython-312.pyc +0 -0
  83. indoxjudge-0.0.0/indoxJudge/metrics/machine_ethics/__pycache__/machineEthics.cpython-312.pyc +0 -0
  84. indoxjudge-0.0.0/indoxJudge/metrics/machine_ethics/__pycache__/template.cpython-312.pyc +0 -0
  85. indoxjudge-0.0.0/indoxJudge/metrics/machine_ethics/machineEthics.py +70 -0
  86. indoxjudge-0.0.0/indoxJudge/metrics/machine_ethics/template.py +55 -0
  87. indoxjudge-0.0.0/indoxJudge/metrics/meteor/__init__.py +1 -0
  88. indoxjudge-0.0.0/indoxJudge/metrics/meteor/__pycache__/__init__.cpython-312.pyc +0 -0
  89. indoxjudge-0.0.0/indoxJudge/metrics/meteor/__pycache__/meteor.cpython-312.pyc +0 -0
  90. indoxjudge-0.0.0/indoxJudge/metrics/meteor/meteor.py +160 -0
  91. indoxjudge-0.0.0/indoxJudge/metrics/misinformation/__init__.py +1 -0
  92. indoxjudge-0.0.0/indoxJudge/metrics/misinformation/__pycache__/__init__.cpython-312.pyc +0 -0
  93. indoxjudge-0.0.0/indoxJudge/metrics/misinformation/__pycache__/misinformation.cpython-312.pyc +0 -0
  94. indoxjudge-0.0.0/indoxJudge/metrics/misinformation/__pycache__/template.cpython-312.pyc +0 -0
  95. indoxjudge-0.0.0/indoxJudge/metrics/misinformation/misinformation.py +74 -0
  96. indoxjudge-0.0.0/indoxJudge/metrics/misinformation/template.py +55 -0
  97. indoxjudge-0.0.0/indoxJudge/metrics/privacy/__init__.py +1 -0
  98. indoxjudge-0.0.0/indoxJudge/metrics/privacy/__pycache__/__init__.cpython-312.pyc +0 -0
  99. indoxjudge-0.0.0/indoxJudge/metrics/privacy/__pycache__/privacy.cpython-312.pyc +0 -0
  100. indoxjudge-0.0.0/indoxJudge/metrics/privacy/__pycache__/template.cpython-312.pyc +0 -0
  101. indoxjudge-0.0.0/indoxJudge/metrics/privacy/privacy.py +74 -0
  102. indoxjudge-0.0.0/indoxJudge/metrics/privacy/template.py +55 -0
  103. indoxjudge-0.0.0/indoxJudge/metrics/rouge/__init__.py +1 -0
  104. indoxjudge-0.0.0/indoxJudge/metrics/rouge/__pycache__/__init__.cpython-312.pyc +0 -0
  105. indoxjudge-0.0.0/indoxJudge/metrics/rouge/__pycache__/rouge.cpython-312.pyc +0 -0
  106. indoxjudge-0.0.0/indoxJudge/metrics/rouge/rouge.py +219 -0
  107. indoxjudge-0.0.0/indoxJudge/metrics/stereotype_bias/__init__.py +1 -0
  108. indoxjudge-0.0.0/indoxJudge/metrics/stereotype_bias/__pycache__/__init__.cpython-312.pyc +0 -0
  109. indoxjudge-0.0.0/indoxJudge/metrics/stereotype_bias/__pycache__/stereotypeBias.cpython-312.pyc +0 -0
  110. indoxjudge-0.0.0/indoxJudge/metrics/stereotype_bias/__pycache__/template.cpython-312.pyc +0 -0
  111. indoxjudge-0.0.0/indoxJudge/metrics/stereotype_bias/stereotypeBias.py +71 -0
  112. indoxjudge-0.0.0/indoxJudge/metrics/stereotype_bias/template.py +56 -0
  113. indoxjudge-0.0.0/indoxJudge/metrics/toxicity/__init__.py +1 -0
  114. indoxjudge-0.0.0/indoxJudge/metrics/toxicity/__pycache__/__init__.cpython-312.pyc +0 -0
  115. indoxjudge-0.0.0/indoxJudge/metrics/toxicity/__pycache__/template.cpython-312.pyc +0 -0
  116. indoxjudge-0.0.0/indoxJudge/metrics/toxicity/__pycache__/toxicity.cpython-312.pyc +0 -0
  117. indoxjudge-0.0.0/indoxJudge/metrics/toxicity/template.py +92 -0
  118. indoxjudge-0.0.0/indoxJudge/metrics/toxicity/toxicity.py +113 -0
  119. indoxjudge-0.0.0/indoxJudge/models/__init__.py +6 -0
  120. indoxjudge-0.0.0/indoxJudge/models/__pycache__/__init__.cpython-312.pyc +0 -0
  121. indoxjudge-0.0.0/indoxJudge/models/__pycache__/googleai.cpython-312.pyc +0 -0
  122. indoxjudge-0.0.0/indoxJudge/models/__pycache__/huggingface.cpython-312.pyc +0 -0
  123. indoxjudge-0.0.0/indoxJudge/models/__pycache__/indox_api.cpython-312.pyc +0 -0
  124. indoxjudge-0.0.0/indoxJudge/models/__pycache__/mistral.cpython-312.pyc +0 -0
  125. indoxjudge-0.0.0/indoxJudge/models/__pycache__/openai.cpython-312.pyc +0 -0
  126. indoxjudge-0.0.0/indoxJudge/models/googleai.py +79 -0
  127. indoxjudge-0.0.0/indoxJudge/models/huggingface.py +111 -0
  128. indoxjudge-0.0.0/indoxJudge/models/indox_api.py +106 -0
  129. indoxjudge-0.0.0/indoxJudge/models/mistral.py +86 -0
  130. indoxjudge-0.0.0/indoxJudge/models/ollama.py +80 -0
  131. indoxjudge-0.0.0/indoxJudge/models/openai.py +88 -0
  132. indoxjudge-0.0.0/indoxJudge/piplines/__init__.py +7 -0
  133. indoxjudge-0.0.0/indoxJudge/piplines/__pycache__/__init__.cpython-312.pyc +0 -0
  134. indoxjudge-0.0.0/indoxJudge/piplines/customEvaluator/__init__.py +0 -0
  135. indoxjudge-0.0.0/indoxJudge/piplines/customEvaluator/__pycache__/__init__.cpython-312.pyc +0 -0
  136. indoxjudge-0.0.0/indoxJudge/piplines/customEvaluator/__pycache__/custom_evaluator.cpython-312.pyc +0 -0
  137. indoxjudge-0.0.0/indoxJudge/piplines/customEvaluator/custom_evaluator.py +311 -0
  138. indoxjudge-0.0.0/indoxJudge/piplines/llmComparison/__init__.py +0 -0
  139. indoxjudge-0.0.0/indoxJudge/piplines/llmComparison/__pycache__/__init__.cpython-312.pyc +0 -0
  140. indoxjudge-0.0.0/indoxJudge/piplines/llmComparison/__pycache__/llm_comparison.cpython-312.pyc +0 -0
  141. indoxjudge-0.0.0/indoxJudge/piplines/llmComparison/llm_comparison.py +8 -0
  142. indoxjudge-0.0.0/indoxJudge/piplines/llmEvaluator/__init__.py +0 -0
  143. indoxjudge-0.0.0/indoxJudge/piplines/llmEvaluator/__pycache__/__init__.cpython-312.pyc +0 -0
  144. indoxjudge-0.0.0/indoxJudge/piplines/llmEvaluator/__pycache__/llm_evaluator.cpython-312.pyc +0 -0
  145. indoxjudge-0.0.0/indoxJudge/piplines/llmEvaluator/graph/__init__.py +0 -0
  146. indoxjudge-0.0.0/indoxJudge/piplines/llmEvaluator/graph/__pycache__/__init__.cpython-312.pyc +0 -0
  147. indoxjudge-0.0.0/indoxJudge/piplines/llmEvaluator/graph/__pycache__/llm_comparison.cpython-312.pyc +0 -0
  148. indoxjudge-0.0.0/indoxJudge/piplines/llmEvaluator/graph/__pycache__/metrics_visualizer.cpython-312.pyc +0 -0
  149. indoxjudge-0.0.0/indoxJudge/piplines/llmEvaluator/graph/assets/style.css +121 -0
  150. indoxjudge-0.0.0/indoxJudge/piplines/llmEvaluator/graph/llm_comparison.py +474 -0
  151. indoxjudge-0.0.0/indoxJudge/piplines/llmEvaluator/graph/metrics_visualizer.py +367 -0
  152. indoxjudge-0.0.0/indoxJudge/piplines/llmEvaluator/llm_evaluator.py +224 -0
  153. indoxjudge-0.0.0/indoxJudge/piplines/ragEvaluator/__init__.py +0 -0
  154. indoxjudge-0.0.0/indoxJudge/piplines/ragEvaluator/__pycache__/__init__.cpython-312.pyc +0 -0
  155. indoxjudge-0.0.0/indoxJudge/piplines/ragEvaluator/__pycache__/rag_evaluator.cpython-312.pyc +0 -0
  156. indoxjudge-0.0.0/indoxJudge/piplines/ragEvaluator/graph/__init__.py +0 -0
  157. indoxjudge-0.0.0/indoxJudge/piplines/ragEvaluator/graph/__pycache__/__init__.cpython-312.pyc +0 -0
  158. indoxjudge-0.0.0/indoxJudge/piplines/ragEvaluator/graph/__pycache__/ragplot.cpython-312.pyc +0 -0
  159. indoxjudge-0.0.0/indoxJudge/piplines/ragEvaluator/graph/ragplot.py +188 -0
  160. indoxjudge-0.0.0/indoxJudge/piplines/ragEvaluator/rag_evaluator.py +176 -0
  161. indoxjudge-0.0.0/indoxJudge/piplines/safetyEvaluator/__init__.py +0 -0
  162. indoxjudge-0.0.0/indoxJudge/piplines/safetyEvaluator/__pycache__/__init__.cpython-312.pyc +0 -0
  163. indoxjudge-0.0.0/indoxJudge/piplines/safetyEvaluator/__pycache__/safety_evaluator.cpython-312.pyc +0 -0
  164. indoxjudge-0.0.0/indoxJudge/piplines/safetyEvaluator/graph/SafetyVisual.py +395 -0
  165. indoxjudge-0.0.0/indoxJudge/piplines/safetyEvaluator/graph/__init__.py +0 -0
  166. indoxjudge-0.0.0/indoxJudge/piplines/safetyEvaluator/graph/__pycache__/__init__.cpython-312.pyc +0 -0
  167. indoxjudge-0.0.0/indoxJudge/piplines/safetyEvaluator/graph/__pycache__/metrics_visualizer.cpython-312.pyc +0 -0
  168. indoxjudge-0.0.0/indoxJudge/piplines/safetyEvaluator/graph/assets/style.css +121 -0
  169. indoxjudge-0.0.0/indoxJudge/piplines/safetyEvaluator/graph/llm_comparison.py +395 -0
  170. indoxjudge-0.0.0/indoxJudge/piplines/safetyEvaluator/graph/metrics_visualizer.py +150 -0
  171. indoxjudge-0.0.0/indoxJudge/piplines/safetyEvaluator/safety_evaluator.py +112 -0
  172. indoxjudge-0.0.0/indoxJudge/utils/__init__.py +2 -0
  173. indoxjudge-0.0.0/indoxJudge/utils/__pycache__/__init__.cpython-312.pyc +0 -0
  174. indoxjudge-0.0.0/indoxJudge/utils/__pycache__/preprocessing.cpython-312.pyc +0 -0
  175. indoxjudge-0.0.0/indoxJudge/utils/__pycache__/utils.cpython-312.pyc +0 -0
  176. indoxjudge-0.0.0/indoxJudge/utils/preprocessing.py +118 -0
  177. indoxjudge-0.0.0/indoxJudge/utils/utils.py +17 -0
  178. indoxjudge-0.0.0/indoxJudge.egg-info/PKG-INFO +228 -0
  179. indoxjudge-0.0.0/indoxJudge.egg-info/SOURCES.txt +182 -0
  180. indoxjudge-0.0.0/indoxJudge.egg-info/dependency_links.txt +1 -0
  181. indoxjudge-0.0.0/indoxJudge.egg-info/requires.txt +19 -0
  182. indoxjudge-0.0.0/indoxJudge.egg-info/top_level.txt +1 -0
  183. indoxjudge-0.0.0/setup.cfg +4 -0
  184. indoxjudge-0.0.0/setup.py +42 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 osllm.ai
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,2 @@
1
+ include README.md
2
+ recursive-include indoxJudge *
@@ -0,0 +1,228 @@
1
+ Metadata-Version: 2.1
2
+ Name: indoxJudge
3
+ Version: 0.0.0
4
+ Summary: Indox Judge
5
+ Home-page: https://github.com/osllmai/inDoxJudge
6
+ Author: osllm
7
+ Author-email: ashkan@nematifamilyfundation.onmicrosoft.com
8
+ License: MIT
9
+ Keywords: RAG,LLM
10
+ Classifier: Development Status :: 3 - Alpha
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Topic :: Software Development :: Build Tools
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Programming Language :: Python :: 3.9
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Requires-Python: >=3.9
19
+ Description-Content-Type: text/markdown
20
+ License-File: LICENSE
21
+ Requires-Dist: dash
22
+ Requires-Dist: dash_bootstrap_components
23
+ Requires-Dist: dash_daq
24
+ Requires-Dist: ipython
25
+ Requires-Dist: ipython
26
+ Requires-Dist: loguru
27
+ Requires-Dist: mistralai
28
+ Requires-Dist: nltk
29
+ Requires-Dist: numpy
30
+ Requires-Dist: pandas
31
+ Requires-Dist: plotly
32
+ Requires-Dist: plotly
33
+ Requires-Dist: protobuf
34
+ Requires-Dist: pydantic
35
+ Requires-Dist: Requests
36
+ Requires-Dist: tenacity
37
+ Requires-Dist: torch
38
+ Requires-Dist: tqdm
39
+ Requires-Dist: transformers
40
+
41
+ # IndoxJudge
42
+
43
+ Welcome to IndoxJudge! This repository provides a comprehensive suite of evaluation metrics for assessing the performance and quality of large language models (LLMs). Whether you're a researcher, developer, or enthusiast, this toolkit offers essential tools to measure various aspects of LLMs, including knowledge retention, bias, toxicity, and more.
44
+
45
+ ## Overview
46
+
47
+ IndoxJudge is designed to provide a standardized and extensible framework for evaluating LLMs. With a focus on accuracy, fairness, and relevancy, this toolkit supports a wide range of evaluation metrics and is continuously updated to include the latest advancements in the field.
48
+
49
+ ## Features
50
+
51
+ - **Comprehensive Metrics**: Evaluate LLMs across multiple dimensions, including accuracy, bias, toxicity, and contextual relevancy.
52
+ - **Extensible Framework**: Easily integrate new metrics or customize existing ones to suit specific needs.
53
+ - **User-Friendly Interface**: Intuitive and easy-to-use interface for seamless evaluation.
54
+ - **Continuous Updates**: Regular updates to incorporate new metrics and improvements.
55
+
56
+ ## Supported Models
57
+
58
+ IndoxJudge currently supports the following LLM models:
59
+
60
+ - **OpenAi**
61
+ - **GoogleAi**
62
+ - **IndoxApi**
63
+ - **HuggingFaceModel**
64
+ - **Mistral**
65
+ - **Ollama**
66
+
67
+ ## Metrics
68
+
69
+ IndoxJudge includes the following metrics, with more being added:
70
+
71
+ - **GEval**: General evaluation metric for LLMs.
72
+ - **KnowledgeRetention**: Assesses the ability of LLMs to retain factual information.
73
+ - **BertScore**: Measures the similarity between generated and reference sentences.
74
+ - **Toxicity**: Evaluates the presence of toxic content in model outputs.
75
+ - **Bias**: Analyzes the potential biases in LLM outputs.
76
+ - **Hallucination**: Identifies instances where the model generates false or misleading information.
77
+ - **Faithfulness**: Checks the alignment of generated content with source material.
78
+ - **ContextualRelevancy**: Assesses the relevance of responses in context.
79
+ - **Rouge**: Measures the overlap of n-grams between generated and reference texts.
80
+ - **BLEU**: Evaluates the quality of text generation based on precision.
81
+ - **AnswerRelevancy**: Assesses the relevance of answers to questions.
82
+ - **METEOR**: Evaluates machine translation quality.
83
+ - **Gruen**: Measures the quality of generated text by assessing grammaticality, redundancy, and focus.
84
+
85
+ ## Installation
86
+
87
+ To install IndoxJudge, follow these steps:
88
+
89
+ ```bash
90
+ git clone https://github.com/yourusername/indoxjudge.git
91
+ cd indoxjudge
92
+ ```
93
+ ## Setting Up the Python Environment
94
+
95
+ If you are running this project in your local IDE, please create a Python environment to ensure all dependencies are correctly managed. You can follow the steps below to set up a virtual environment named `indox_judge`:
96
+
97
+ ### Windows
98
+
99
+ 1. **Create the virtual environment:**
100
+ ```bash
101
+ python -m venv indox_judge
102
+ ```
103
+ 2. **Activate the virtual environment:**
104
+ ```bash
105
+ indox_judge\Scripts\activate
106
+ ```
107
+
108
+ ### macOS/Linux
109
+
110
+ 1. **Create the virtual environment:**
111
+ ```bash
112
+ python3 -m venv indox_judge
113
+ ```
114
+
115
+ 2. **Activate the virtual environment:**
116
+ ```bash
117
+ source indox_judge/bin/activate
118
+ ```
119
+ ### Install Dependencies
120
+
121
+ Once the virtual environment is activated, install the required dependencies by running:
122
+
123
+ ```bash
124
+ pip install -r requirements.txt
125
+ ```
126
+
127
+
128
+
129
+
130
+ ## Usage
131
+
132
+ To use IndoxJudge, load your API key, select the model, and choose the evaluation metrics. Here's an example demonstrating how to evaluate a model's response for faithfulness:
133
+
134
+ ```python
135
+ import os
136
+ from dotenv import load_dotenv
137
+
138
+ # Load environment variables
139
+ load_dotenv()
140
+ INDOX_API_KEY = os.getenv("INDOX_API_KEY")
141
+
142
+ # Import IndoxJudge and supported models
143
+ from indoxJudge.piplines import CustomEvaluator
144
+ from indoxJudge.models import IndoxApi
145
+ from indoxJudge.metrics import Faithfulness
146
+
147
+ # Initialize the model with your API key
148
+ model = IndoxApi(api_key=INDOX_API_KEY)
149
+
150
+ # Define your query and retrieval context
151
+ query = "What are the benefits of a Mediterranean diet?"
152
+ retrieval_context = [
153
+ "The Mediterranean diet emphasizes eating primarily plant-based foods, such as fruits and vegetables, whole grains, legumes, and nuts. It also includes moderate amounts of fish and poultry, and low consumption of red meat. Olive oil is the main source of fat, providing monounsaturated fats which are beneficial for heart health.",
154
+ "Research has shown that the Mediterranean diet can reduce the risk of heart disease, stroke, and type 2 diabetes. It is also associated with improved cognitive function and a lower risk of Alzheimer's disease. The diet's high content of fiber, antioxidants, and healthy fats contributes to its numerous health benefits.",
155
+ "A Mediterranean diet has been linked to a longer lifespan and a reduced risk of chronic diseases. It promotes healthy aging and weight management due to its emphasis on whole, unprocessed foods and balanced nutrition."
156
+ ]
157
+
158
+ # Obtain the model's response
159
+ response = "The Mediterranean diet is known for its health benefits, including reducing the risk of heart disease, stroke, and diabetes. It encourages the consumption of fruits, vegetables, whole grains, nuts, and olive oil, while limiting red meat. Additionally, this diet has been associated with better cognitive function and a reduced risk of Alzheimer's disease, promoting longevity and overall well-being."
160
+
161
+ # Initialize the Faithfulness metric
162
+ faithfulness_metrics = Faithfulness(llm_response=response, retrieval_context=retrieval_context)
163
+
164
+ # Create an evaluator with the selected metrics
165
+ evaluator = CustomEvaluator(metrics=[faithfulness_metrics], model=model)
166
+
167
+ # Evaluate the response
168
+ faithfulness_result = evaluator.evaluate()
169
+
170
+ # Output the evaluation result
171
+ print(faithfulness_result)
172
+ ```
173
+ ## Example Output
174
+
175
+ ```json
176
+ {
177
+ "faithfulness": {
178
+ "claims": [
179
+ "The Mediterranean diet is known for its health benefits.",
180
+ "The Mediterranean diet reduces the risk of heart disease.",
181
+ "The Mediterranean diet reduces the risk of stroke.",
182
+ "The Mediterranean diet reduces the risk of diabetes.",
183
+ "The Mediterranean diet encourages the consumption of fruits.",
184
+ "The Mediterranean diet encourages the consumption of vegetables.",
185
+ "The Mediterranean diet encourages the consumption of whole grains.",
186
+ "The Mediterranean diet encourages the consumption of nuts.",
187
+ "The Mediterranean diet encourages the consumption of olive oil.",
188
+ "The Mediterranean diet limits red meat consumption.",
189
+ "The Mediterranean diet is associated with better cognitive function.",
190
+ "The Mediterranean diet is associated with a reduced risk of Alzheimer's disease.",
191
+ "The Mediterranean diet promotes longevity.",
192
+ "The Mediterranean diet promotes overall well-being."
193
+ ],
194
+ "truths": [
195
+ "The Mediterranean diet is known for its health benefits.",
196
+ "The Mediterranean diet reduces the risk of heart disease, stroke, and diabetes.",
197
+ "The Mediterranean diet encourages the consumption of fruits, vegetables, whole grains, nuts, and olive oil.",
198
+ "The Mediterranean diet limits red meat consumption.",
199
+ "The Mediterranean diet has been associated with better cognitive function.",
200
+ "The Mediterranean diet has been associated with a reduced risk of Alzheimer's disease.",
201
+ "The Mediterranean diet promotes longevity and overall well-being."
202
+ ],
203
+ "reason": "The score is 1.0 because the 'actual output' aligns perfectly with the information presented in the 'retrieval context', showcasing the health benefits, disease risk reduction, cognitive function improvement, and overall well-being promotion of the Mediterranean diet."
204
+ }
205
+ }
206
+ ```
207
+ ## Roadmap
208
+
209
+ We have an exciting roadmap planned for IndoxJudge:
210
+
211
+ | Plan |
212
+ | -------------------------------------------------------------------- |
213
+ | Integration of additional metrics such as Diversity and Coherence. |
214
+ | Introduction of a graphical user interface (GUI) for easier evaluation. |
215
+ | Expansion of the toolkit to support evaluation in multiple languages. |
216
+ | Release of a benchmarking suite for standardizing LLM evaluations. |
217
+
218
+ ## Contributing
219
+
220
+ We welcome contributions from the community! If you'd like to contribute, please fork the repository and create a pull request. For major changes, please open an issue first to discuss what you would like to change.
221
+
222
+ 1. Fork the repository
223
+ 2. Create a new branch (`git checkout -b feature-branch`)
224
+ 3. Commit your changes (`git commit -am 'Add new feature'`)
225
+ 4. Push to the branch (`git push origin feature-branch`)
226
+ 5. Create a pull request
227
+
228
+
@@ -0,0 +1,188 @@
1
+ # IndoxJudge
2
+
3
+ Welcome to IndoxJudge! This repository provides a comprehensive suite of evaluation metrics for assessing the performance and quality of large language models (LLMs). Whether you're a researcher, developer, or enthusiast, this toolkit offers essential tools to measure various aspects of LLMs, including knowledge retention, bias, toxicity, and more.
4
+
5
+ ## Overview
6
+
7
+ IndoxJudge is designed to provide a standardized and extensible framework for evaluating LLMs. With a focus on accuracy, fairness, and relevancy, this toolkit supports a wide range of evaluation metrics and is continuously updated to include the latest advancements in the field.
8
+
9
+ ## Features
10
+
11
+ - **Comprehensive Metrics**: Evaluate LLMs across multiple dimensions, including accuracy, bias, toxicity, and contextual relevancy.
12
+ - **Extensible Framework**: Easily integrate new metrics or customize existing ones to suit specific needs.
13
+ - **User-Friendly Interface**: Intuitive and easy-to-use interface for seamless evaluation.
14
+ - **Continuous Updates**: Regular updates to incorporate new metrics and improvements.
15
+
16
+ ## Supported Models
17
+
18
+ IndoxJudge currently supports the following LLM models:
19
+
20
+ - **OpenAi**
21
+ - **GoogleAi**
22
+ - **IndoxApi**
23
+ - **HuggingFaceModel**
24
+ - **Mistral**
25
+ - **Ollama**
26
+
27
+ ## Metrics
28
+
29
+ IndoxJudge includes the following metrics, with more being added:
30
+
31
+ - **GEval**: General evaluation metric for LLMs.
32
+ - **KnowledgeRetention**: Assesses the ability of LLMs to retain factual information.
33
+ - **BertScore**: Measures the similarity between generated and reference sentences.
34
+ - **Toxicity**: Evaluates the presence of toxic content in model outputs.
35
+ - **Bias**: Analyzes the potential biases in LLM outputs.
36
+ - **Hallucination**: Identifies instances where the model generates false or misleading information.
37
+ - **Faithfulness**: Checks the alignment of generated content with source material.
38
+ - **ContextualRelevancy**: Assesses the relevance of responses in context.
39
+ - **Rouge**: Measures the overlap of n-grams between generated and reference texts.
40
+ - **BLEU**: Evaluates the quality of text generation based on precision.
41
+ - **AnswerRelevancy**: Assesses the relevance of answers to questions.
42
+ - **METEOR**: Evaluates machine translation quality.
43
+ - **Gruen**: Measures the quality of generated text by assessing grammaticality, redundancy, and focus.
44
+
45
+ ## Installation
46
+
47
+ To install IndoxJudge, follow these steps:
48
+
49
+ ```bash
50
+ git clone https://github.com/yourusername/indoxjudge.git
51
+ cd indoxjudge
52
+ ```
53
+ ## Setting Up the Python Environment
54
+
55
+ If you are running this project in your local IDE, please create a Python environment to ensure all dependencies are correctly managed. You can follow the steps below to set up a virtual environment named `indox_judge`:
56
+
57
+ ### Windows
58
+
59
+ 1. **Create the virtual environment:**
60
+ ```bash
61
+ python -m venv indox_judge
62
+ ```
63
+ 2. **Activate the virtual environment:**
64
+ ```bash
65
+ indox_judge\Scripts\activate
66
+ ```
67
+
68
+ ### macOS/Linux
69
+
70
+ 1. **Create the virtual environment:**
71
+ ```bash
72
+ python3 -m venv indox_judge
73
+ ```
74
+
75
+ 2. **Activate the virtual environment:**
76
+ ```bash
77
+ source indox_judge/bin/activate
78
+ ```
79
+ ### Install Dependencies
80
+
81
+ Once the virtual environment is activated, install the required dependencies by running:
82
+
83
+ ```bash
84
+ pip install -r requirements.txt
85
+ ```
86
+
87
+
88
+
89
+
90
+ ## Usage
91
+
92
+ To use IndoxJudge, load your API key, select the model, and choose the evaluation metrics. Here's an example demonstrating how to evaluate a model's response for faithfulness:
93
+
94
+ ```python
95
+ import os
96
+ from dotenv import load_dotenv
97
+
98
+ # Load environment variables
99
+ load_dotenv()
100
+ INDOX_API_KEY = os.getenv("INDOX_API_KEY")
101
+
102
+ # Import IndoxJudge and supported models
103
+ from indoxJudge.piplines import CustomEvaluator
104
+ from indoxJudge.models import IndoxApi
105
+ from indoxJudge.metrics import Faithfulness
106
+
107
+ # Initialize the model with your API key
108
+ model = IndoxApi(api_key=INDOX_API_KEY)
109
+
110
+ # Define your query and retrieval context
111
+ query = "What are the benefits of a Mediterranean diet?"
112
+ retrieval_context = [
113
+ "The Mediterranean diet emphasizes eating primarily plant-based foods, such as fruits and vegetables, whole grains, legumes, and nuts. It also includes moderate amounts of fish and poultry, and low consumption of red meat. Olive oil is the main source of fat, providing monounsaturated fats which are beneficial for heart health.",
114
+ "Research has shown that the Mediterranean diet can reduce the risk of heart disease, stroke, and type 2 diabetes. It is also associated with improved cognitive function and a lower risk of Alzheimer's disease. The diet's high content of fiber, antioxidants, and healthy fats contributes to its numerous health benefits.",
115
+ "A Mediterranean diet has been linked to a longer lifespan and a reduced risk of chronic diseases. It promotes healthy aging and weight management due to its emphasis on whole, unprocessed foods and balanced nutrition."
116
+ ]
117
+
118
+ # Obtain the model's response
119
+ response = "The Mediterranean diet is known for its health benefits, including reducing the risk of heart disease, stroke, and diabetes. It encourages the consumption of fruits, vegetables, whole grains, nuts, and olive oil, while limiting red meat. Additionally, this diet has been associated with better cognitive function and a reduced risk of Alzheimer's disease, promoting longevity and overall well-being."
120
+
121
+ # Initialize the Faithfulness metric
122
+ faithfulness_metrics = Faithfulness(llm_response=response, retrieval_context=retrieval_context)
123
+
124
+ # Create an evaluator with the selected metrics
125
+ evaluator = CustomEvaluator(metrics=[faithfulness_metrics], model=model)
126
+
127
+ # Evaluate the response
128
+ faithfulness_result = evaluator.evaluate()
129
+
130
+ # Output the evaluation result
131
+ print(faithfulness_result)
132
+ ```
133
+ ## Example Output
134
+
135
+ ```json
136
+ {
137
+ "faithfulness": {
138
+ "claims": [
139
+ "The Mediterranean diet is known for its health benefits.",
140
+ "The Mediterranean diet reduces the risk of heart disease.",
141
+ "The Mediterranean diet reduces the risk of stroke.",
142
+ "The Mediterranean diet reduces the risk of diabetes.",
143
+ "The Mediterranean diet encourages the consumption of fruits.",
144
+ "The Mediterranean diet encourages the consumption of vegetables.",
145
+ "The Mediterranean diet encourages the consumption of whole grains.",
146
+ "The Mediterranean diet encourages the consumption of nuts.",
147
+ "The Mediterranean diet encourages the consumption of olive oil.",
148
+ "The Mediterranean diet limits red meat consumption.",
149
+ "The Mediterranean diet is associated with better cognitive function.",
150
+ "The Mediterranean diet is associated with a reduced risk of Alzheimer's disease.",
151
+ "The Mediterranean diet promotes longevity.",
152
+ "The Mediterranean diet promotes overall well-being."
153
+ ],
154
+ "truths": [
155
+ "The Mediterranean diet is known for its health benefits.",
156
+ "The Mediterranean diet reduces the risk of heart disease, stroke, and diabetes.",
157
+ "The Mediterranean diet encourages the consumption of fruits, vegetables, whole grains, nuts, and olive oil.",
158
+ "The Mediterranean diet limits red meat consumption.",
159
+ "The Mediterranean diet has been associated with better cognitive function.",
160
+ "The Mediterranean diet has been associated with a reduced risk of Alzheimer's disease.",
161
+ "The Mediterranean diet promotes longevity and overall well-being."
162
+ ],
163
+ "reason": "The score is 1.0 because the 'actual output' aligns perfectly with the information presented in the 'retrieval context', showcasing the health benefits, disease risk reduction, cognitive function improvement, and overall well-being promotion of the Mediterranean diet."
164
+ }
165
+ }
166
+ ```
167
+ ## Roadmap
168
+
169
+ We have an exciting roadmap planned for IndoxJudge:
170
+
171
+ | Plan |
172
+ | -------------------------------------------------------------------- |
173
+ | Integration of additional metrics such as Diversity and Coherence. |
174
+ | Introduction of a graphical user interface (GUI) for easier evaluation. |
175
+ | Expansion of the toolkit to support evaluation in multiple languages. |
176
+ | Release of a benchmarking suite for standardizing LLM evaluations. |
177
+
178
+ ## Contributing
179
+
180
+ We welcome contributions from the community! If you'd like to contribute, please fork the repository and create a pull request. For major changes, please open an issue first to discuss what you would like to change.
181
+
182
+ 1. Fork the repository
183
+ 2. Create a new branch (`git checkout -b feature-branch`)
184
+ 3. Commit your changes (`git commit -am 'Add new feature'`)
185
+ 4. Push to the branch (`git push origin feature-branch`)
186
+ 5. Create a pull request
187
+
188
+
File without changes
@@ -0,0 +1,2 @@
1
+ from .visualization import Visualization
2
+
@@ -0,0 +1,188 @@
1
+ /* Light Theme */
2
+ .bg-light-custom {
3
+ background: rgb(246, 246, 246) !important;
4
+ color: black !important;
5
+ transition: all 0.2s;
6
+ }
7
+
8
+ .header {
9
+ position: relative;
10
+ top: 10px;
11
+ padding: 15px 63px;
12
+ }
13
+
14
+ .navbar-custom {
15
+ justify-content: center;
16
+ margin: 20px 0 50px 0;
17
+ background-color: rgb(255, 255, 255);
18
+ color: black;
19
+ padding: 20px;
20
+ border-radius: 8px;
21
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
22
+ }
23
+
24
+ .nav-link {
25
+ color: black !important;
26
+ }
27
+
28
+ .nav-link:hover {
29
+ color: rgb(255, 255, 255) !important;
30
+ background-color: rgb(53, 92, 125);
31
+ }
32
+
33
+ .col-12 {
34
+ padding: 0;
35
+ }
36
+
37
+ .card-header {
38
+ background-color: transparent;
39
+ border: none;
40
+ padding: 0 20px;
41
+ margin-bottom: 10px;
42
+ }
43
+
44
+ .cart-title {
45
+ font-size: 26px;
46
+ font-family: 'Roboto', sans-serif;
47
+ color: rgb(53, 92, 125);
48
+ text-align: center;
49
+ margin-bottom: 10px;
50
+ padding-bottom: 10px;
51
+ border-bottom: 2px solid rgba(53, 92, 125, 0.3);
52
+ }
53
+
54
+ .card-text {
55
+ height: 100%;
56
+ color: black;
57
+ backdrop-filter: blur(80px);
58
+ }
59
+
60
+ .card-body {
61
+ border: none;
62
+ box-shadow: 0 1px 3px 2px rgba(0, 0, 0, 0.1);
63
+ margin-bottom: 20px;
64
+ border-radius: 8px;
65
+ padding: 40px;
66
+ background-color: aliceblue;
67
+ }
68
+
69
+ .btn-gtt {
70
+ background-color: rgba(215, 215, 215, 0.891);
71
+ border: none;
72
+ outline: none;
73
+ }
74
+
75
+ .btn-gtt:hover {
76
+ background-color: rgb(181, 181, 181);
77
+ }
78
+
79
+ .change-bg {
80
+ display: flex;
81
+ align-items: center;
82
+ }
83
+
84
+ .modebtn {
85
+ margin: 0 14px;
86
+ }
87
+
88
+ /* sun icon */
89
+ .bi-brightness-high-fill {
90
+ font-size: 24px;
91
+ color: rgb(255, 165, 0); /* Orange color */
92
+ }
93
+
94
+ /* moon icon */
95
+ .bi-moon-fill {
96
+ font-size: 24px;
97
+ color: rgb(72, 61, 139); /* Dark Slate Blue color */
98
+ }
99
+
100
+ .form-check-input {
101
+ background-color: rgb(233, 233, 233);
102
+ }
103
+
104
+ /* toggle body */
105
+ .sc-bxivhb {
106
+ background-color: rgb(233, 233, 233);
107
+ margin: 0 5px;
108
+ border: 1px solid rgb(218, 218, 218);
109
+ width: 52px;
110
+ }
111
+
112
+ /* toggle circle */
113
+ .sc-ifAKCX {
114
+ background-color: rgb(133, 133, 133);
115
+ }
116
+
117
+ /* toggle body */
118
+ .daq-toggleswitch--light__indicator--off {
119
+ background-color: rgb(217, 217, 217);
120
+ }
121
+
122
+ .daq-toggleswitch--light__indicator--on {
123
+ background-color: rgb(33, 33, 33);
124
+ }
125
+
126
+ /* Dark Theme */
127
+ .bg-dark-custom {
128
+ background-color: rgb(48, 48, 48);
129
+ color: white;
130
+ }
131
+
132
+ .navbar-custom-dark {
133
+ justify-content: center;
134
+ margin: 20px 0 50px 0;
135
+ background-color: rgb(64, 64, 64);
136
+ color: rgb(217, 217, 217);
137
+ padding: 20px;
138
+ border-radius: 8px;
139
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
140
+ transition: all 0.2s;
141
+ }
142
+
143
+ .nav-link-dark {
144
+ color: white !important;
145
+ }
146
+
147
+ .card-header-dark {
148
+ border: none;
149
+ margin-bottom: 20px;
150
+ border-radius: 8px;
151
+ padding: 0 20px;
152
+ }
153
+
154
+ .cart-title-dark {
155
+ font-size: 26px;
156
+ font-family: 'Roboto', sans-serif;
157
+ color: rgb(255, 215, 0); /* Gold color */
158
+ text-align: center;
159
+ margin-bottom: 10px;
160
+ padding-bottom: 10px;
161
+ border-bottom: 2px solid rgba(255, 215, 0, 0.3);
162
+ }
163
+
164
+ .card-text-dark {
165
+ height: 100%;
166
+ color: white;
167
+ backdrop-filter: blur(80px);
168
+ }
169
+
170
+ .card-body-dark {
171
+ border: none;
172
+ box-shadow: 0 1px 3px 2px rgba(0, 0, 0, 0.2);
173
+ margin-bottom: 20px;
174
+ border-radius: 8px;
175
+ padding: 40px;
176
+ background-color: rgb(64, 64, 64);
177
+ }
178
+
179
+ /* button */
180
+ .btn-gtt-dark {
181
+ background-color: rgba(105, 105, 105, 0.891);
182
+ border: none;
183
+ outline: none;
184
+ }
185
+
186
+ .btn-gtt-dark:hover {
187
+ background-color: rgb(85, 85, 85);
188
+ }