validmind 2.4.7__tar.gz → 2.4.10__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 (314) hide show
  1. {validmind-2.4.7 → validmind-2.4.10}/PKG-INFO +2 -1
  2. {validmind-2.4.7 → validmind-2.4.10}/pyproject.toml +3 -2
  3. validmind-2.4.10/validmind/__version__.py +1 -0
  4. {validmind-2.4.7 → validmind-2.4.10}/validmind/api_client.py +9 -1
  5. {validmind-2.4.7 → validmind-2.4.10}/validmind/client.py +2 -1
  6. {validmind-2.4.7 → validmind-2.4.10}/validmind/html_templates/content_blocks.py +2 -1
  7. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/DatasetDescription.py +1 -1
  8. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/ragas/AnswerCorrectness.py +6 -2
  9. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/ragas/AnswerRelevance.py +6 -2
  10. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/ragas/AnswerSimilarity.py +6 -2
  11. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/ragas/AspectCritique.py +21 -17
  12. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/ragas/ContextEntityRecall.py +6 -2
  13. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/ragas/ContextPrecision.py +6 -2
  14. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/ragas/ContextRecall.py +6 -2
  15. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/ragas/ContextRelevancy.py +6 -2
  16. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/ragas/Faithfulness.py +6 -2
  17. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/ragas/utils.py +6 -2
  18. {validmind-2.4.7 → validmind-2.4.10}/validmind/vm_models/dataset/dataset.py +47 -20
  19. {validmind-2.4.7 → validmind-2.4.10}/validmind/vm_models/dataset/utils.py +2 -0
  20. validmind-2.4.7/validmind/__version__.py +0 -1
  21. {validmind-2.4.7 → validmind-2.4.10}/LICENSE +0 -0
  22. {validmind-2.4.7 → validmind-2.4.10}/README.pypi.md +0 -0
  23. {validmind-2.4.7 → validmind-2.4.10}/validmind/__init__.py +0 -0
  24. {validmind-2.4.7 → validmind-2.4.10}/validmind/ai/test_descriptions.py +0 -0
  25. {validmind-2.4.7 → validmind-2.4.10}/validmind/ai/utils.py +0 -0
  26. {validmind-2.4.7 → validmind-2.4.10}/validmind/client_config.py +0 -0
  27. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/__init__.py +0 -0
  28. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/classification/__init__.py +0 -0
  29. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/classification/customer_churn.py +0 -0
  30. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/classification/datasets/bank_customer_churn.csv +0 -0
  31. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/classification/datasets/taiwan_credit.csv +0 -0
  32. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/classification/taiwan_credit.py +0 -0
  33. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/cluster/digits.py +0 -0
  34. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/credit_risk/__init__.py +0 -0
  35. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/credit_risk/datasets/lending_club_loan_data_2007_2014_clean.csv.gz +0 -0
  36. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/credit_risk/lending_club.py +0 -0
  37. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/llm/rag/__init__.py +0 -0
  38. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_1.csv +0 -0
  39. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_2.csv +0 -0
  40. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_3.csv +0 -0
  41. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_4.csv +0 -0
  42. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_5.csv +0 -0
  43. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/llm/rag/rfp.py +0 -0
  44. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/nlp/__init__.py +0 -0
  45. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/nlp/cnn_dailymail.py +0 -0
  46. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/nlp/datasets/Covid_19.csv +0 -0
  47. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/nlp/datasets/cnn_dailymail_100_with_predictions.csv +0 -0
  48. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/nlp/datasets/cnn_dailymail_500_with_predictions.csv +0 -0
  49. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/nlp/datasets/sentiments_with_predictions.csv +0 -0
  50. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/nlp/twitter_covid_19.py +0 -0
  51. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/regression/__init__.py +0 -0
  52. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/regression/california_housing.py +0 -0
  53. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/regression/datasets/fred/CPIAUCSL.csv +0 -0
  54. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/regression/datasets/fred/CSUSHPISA.csv +0 -0
  55. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/regression/datasets/fred/DRSFRMACBS.csv +0 -0
  56. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/regression/datasets/fred/FEDFUNDS.csv +0 -0
  57. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/regression/datasets/fred/GDP.csv +0 -0
  58. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/regression/datasets/fred/GDPC1.csv +0 -0
  59. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/regression/datasets/fred/GS10.csv +0 -0
  60. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/regression/datasets/fred/GS3.csv +0 -0
  61. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/regression/datasets/fred/GS5.csv +0 -0
  62. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/regression/datasets/fred/MORTGAGE30US.csv +0 -0
  63. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/regression/datasets/fred/UNRATE.csv +0 -0
  64. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/regression/datasets/fred_loan_rates.csv +0 -0
  65. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/regression/datasets/fred_loan_rates_test_1.csv +0 -0
  66. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/regression/datasets/fred_loan_rates_test_2.csv +0 -0
  67. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/regression/datasets/fred_loan_rates_test_3.csv +0 -0
  68. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/regression/datasets/fred_loan_rates_test_4.csv +0 -0
  69. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/regression/datasets/fred_loan_rates_test_5.csv +0 -0
  70. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/regression/datasets/leanding_club_loan_rates.csv +0 -0
  71. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/regression/fred.py +0 -0
  72. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/regression/fred_timeseries.py +0 -0
  73. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/regression/lending_club.py +0 -0
  74. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/regression/models/fred_loan_rates_model_1.pkl +0 -0
  75. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/regression/models/fred_loan_rates_model_2.pkl +0 -0
  76. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/regression/models/fred_loan_rates_model_3.pkl +0 -0
  77. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/regression/models/fred_loan_rates_model_4.pkl +0 -0
  78. {validmind-2.4.7 → validmind-2.4.10}/validmind/datasets/regression/models/fred_loan_rates_model_5.pkl +0 -0
  79. {validmind-2.4.7 → validmind-2.4.10}/validmind/errors.py +0 -0
  80. {validmind-2.4.7 → validmind-2.4.10}/validmind/html_templates/__init__.py +0 -0
  81. {validmind-2.4.7 → validmind-2.4.10}/validmind/input_registry.py +0 -0
  82. {validmind-2.4.7 → validmind-2.4.10}/validmind/logging.py +0 -0
  83. {validmind-2.4.7 → validmind-2.4.10}/validmind/models/__init__.py +0 -0
  84. {validmind-2.4.7 → validmind-2.4.10}/validmind/models/foundation.py +0 -0
  85. {validmind-2.4.7 → validmind-2.4.10}/validmind/models/function.py +0 -0
  86. {validmind-2.4.7 → validmind-2.4.10}/validmind/models/huggingface.py +0 -0
  87. {validmind-2.4.7 → validmind-2.4.10}/validmind/models/metadata.py +0 -0
  88. {validmind-2.4.7 → validmind-2.4.10}/validmind/models/pipeline.py +0 -0
  89. {validmind-2.4.7 → validmind-2.4.10}/validmind/models/pytorch.py +0 -0
  90. {validmind-2.4.7 → validmind-2.4.10}/validmind/models/r_model.py +0 -0
  91. {validmind-2.4.7 → validmind-2.4.10}/validmind/models/sklearn.py +0 -0
  92. {validmind-2.4.7 → validmind-2.4.10}/validmind/template.py +0 -0
  93. {validmind-2.4.7 → validmind-2.4.10}/validmind/test_suites/__init__.py +0 -0
  94. {validmind-2.4.7 → validmind-2.4.10}/validmind/test_suites/classifier.py +0 -0
  95. {validmind-2.4.7 → validmind-2.4.10}/validmind/test_suites/cluster.py +0 -0
  96. {validmind-2.4.7 → validmind-2.4.10}/validmind/test_suites/embeddings.py +0 -0
  97. {validmind-2.4.7 → validmind-2.4.10}/validmind/test_suites/llm.py +0 -0
  98. {validmind-2.4.7 → validmind-2.4.10}/validmind/test_suites/nlp.py +0 -0
  99. {validmind-2.4.7 → validmind-2.4.10}/validmind/test_suites/parameters_optimization.py +0 -0
  100. {validmind-2.4.7 → validmind-2.4.10}/validmind/test_suites/regression.py +0 -0
  101. {validmind-2.4.7 → validmind-2.4.10}/validmind/test_suites/statsmodels_timeseries.py +0 -0
  102. {validmind-2.4.7 → validmind-2.4.10}/validmind/test_suites/summarization.py +0 -0
  103. {validmind-2.4.7 → validmind-2.4.10}/validmind/test_suites/tabular_datasets.py +0 -0
  104. {validmind-2.4.7 → validmind-2.4.10}/validmind/test_suites/text_data.py +0 -0
  105. {validmind-2.4.7 → validmind-2.4.10}/validmind/test_suites/time_series.py +0 -0
  106. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/__init__.py +0 -0
  107. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/__types__.py +0 -0
  108. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/_store.py +0 -0
  109. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/ACFandPACFPlot.py +0 -0
  110. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/ADF.py +0 -0
  111. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/ANOVAOneWayTable.py +0 -0
  112. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/AutoAR.py +0 -0
  113. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/AutoMA.py +0 -0
  114. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/AutoSeasonality.py +0 -0
  115. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/AutoStationarity.py +0 -0
  116. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/BivariateFeaturesBarPlots.py +0 -0
  117. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/BivariateHistograms.py +0 -0
  118. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/BivariateScatterPlots.py +0 -0
  119. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/ChiSquaredFeaturesTable.py +0 -0
  120. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/ClassImbalance.py +0 -0
  121. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/DFGLSArch.py +0 -0
  122. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/DatasetSplit.py +0 -0
  123. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/DescriptiveStatistics.py +0 -0
  124. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/Duplicates.py +0 -0
  125. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/EngleGrangerCoint.py +0 -0
  126. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/FeatureTargetCorrelationPlot.py +0 -0
  127. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/HeatmapFeatureCorrelations.py +0 -0
  128. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/HighCardinality.py +0 -0
  129. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/HighPearsonCorrelation.py +0 -0
  130. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/IQROutliersBarPlot.py +0 -0
  131. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/IQROutliersTable.py +0 -0
  132. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/IsolationForestOutliers.py +0 -0
  133. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/KPSS.py +0 -0
  134. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/LaggedCorrelationHeatmap.py +0 -0
  135. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/MissingValues.py +0 -0
  136. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/MissingValuesBarPlot.py +0 -0
  137. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/MissingValuesRisk.py +0 -0
  138. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/PearsonCorrelationMatrix.py +0 -0
  139. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/PhillipsPerronArch.py +0 -0
  140. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/RollingStatsPlot.py +0 -0
  141. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/ScatterPlot.py +0 -0
  142. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/SeasonalDecompose.py +0 -0
  143. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/Skewness.py +0 -0
  144. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/SpreadPlot.py +0 -0
  145. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/TabularCategoricalBarPlots.py +0 -0
  146. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/TabularDateTimeHistograms.py +0 -0
  147. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/TabularDescriptionTables.py +0 -0
  148. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/TabularNumericalHistograms.py +0 -0
  149. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/TargetRateBarPlots.py +0 -0
  150. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/TimeSeriesDescription.py +0 -0
  151. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/TimeSeriesDescriptiveStatistics.py +0 -0
  152. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/TimeSeriesFrequency.py +0 -0
  153. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/TimeSeriesHistogram.py +0 -0
  154. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/TimeSeriesLinePlot.py +0 -0
  155. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/TimeSeriesMissingValues.py +0 -0
  156. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/TimeSeriesOutliers.py +0 -0
  157. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/TooManyZeroValues.py +0 -0
  158. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/UniqueRows.py +0 -0
  159. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/WOEBinPlots.py +0 -0
  160. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/WOEBinTable.py +0 -0
  161. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/ZivotAndrewsArch.py +0 -0
  162. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/__init__.py +0 -0
  163. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/nlp/CommonWords.py +0 -0
  164. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/nlp/Hashtags.py +0 -0
  165. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/nlp/LanguageDetection.py +0 -0
  166. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/nlp/Mentions.py +0 -0
  167. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/nlp/PolarityAndSubjectivity.py +0 -0
  168. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/nlp/Punctuations.py +0 -0
  169. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/nlp/Sentiment.py +0 -0
  170. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/nlp/StopWords.py +0 -0
  171. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/nlp/TextDescription.py +0 -0
  172. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/nlp/Toxicity.py +0 -0
  173. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/data_validation/nlp/__init__.py +0 -0
  174. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/decorator.py +0 -0
  175. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/load.py +0 -0
  176. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/metadata.py +0 -0
  177. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/BertScore.py +0 -0
  178. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/BleuScore.py +0 -0
  179. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/ClusterSizeDistribution.py +0 -0
  180. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/ContextualRecall.py +0 -0
  181. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/FeaturesAUC.py +0 -0
  182. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/MeteorScore.py +0 -0
  183. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/ModelMetadata.py +0 -0
  184. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/ModelMetadataComparison.py +0 -0
  185. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/ModelPredictionResiduals.py +0 -0
  186. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/RegardScore.py +0 -0
  187. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/RegressionResidualsPlot.py +0 -0
  188. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/RougeScore.py +0 -0
  189. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/TimeSeriesPredictionWithCI.py +0 -0
  190. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/TimeSeriesPredictionsPlot.py +0 -0
  191. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/TimeSeriesR2SquareBySegments.py +0 -0
  192. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/TokenDisparity.py +0 -0
  193. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/ToxicityScore.py +0 -0
  194. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/__init__.py +0 -0
  195. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/embeddings/ClusterDistribution.py +0 -0
  196. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/embeddings/CosineSimilarityComparison.py +0 -0
  197. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/embeddings/CosineSimilarityDistribution.py +0 -0
  198. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/embeddings/CosineSimilarityHeatmap.py +0 -0
  199. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/embeddings/DescriptiveAnalytics.py +0 -0
  200. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/embeddings/EmbeddingsVisualization2D.py +0 -0
  201. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/embeddings/EuclideanDistanceComparison.py +0 -0
  202. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/embeddings/EuclideanDistanceHeatmap.py +0 -0
  203. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/embeddings/PCAComponentsPairwisePlots.py +0 -0
  204. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/embeddings/StabilityAnalysis.py +0 -0
  205. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/embeddings/StabilityAnalysisKeyword.py +0 -0
  206. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/embeddings/StabilityAnalysisRandomNoise.py +0 -0
  207. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/embeddings/StabilityAnalysisSynonyms.py +0 -0
  208. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/embeddings/StabilityAnalysisTranslation.py +0 -0
  209. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/embeddings/TSNEComponentsPairwisePlots.py +0 -0
  210. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/sklearn/AdjustedMutualInformation.py +0 -0
  211. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/sklearn/AdjustedRandIndex.py +0 -0
  212. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/sklearn/ClassifierPerformance.py +0 -0
  213. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/sklearn/ClusterCosineSimilarity.py +0 -0
  214. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/sklearn/ClusterPerformance.py +0 -0
  215. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/sklearn/ClusterPerformanceMetrics.py +0 -0
  216. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/sklearn/CompletenessScore.py +0 -0
  217. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/sklearn/ConfusionMatrix.py +0 -0
  218. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/sklearn/FeatureImportanceComparison.py +0 -0
  219. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/sklearn/FowlkesMallowsScore.py +0 -0
  220. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/sklearn/HomogeneityScore.py +0 -0
  221. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/sklearn/HyperParametersTuning.py +0 -0
  222. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/sklearn/KMeansClustersOptimization.py +0 -0
  223. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/sklearn/MinimumAccuracy.py +0 -0
  224. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/sklearn/MinimumF1Score.py +0 -0
  225. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/sklearn/MinimumROCAUCScore.py +0 -0
  226. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/sklearn/ModelsPerformanceComparison.py +0 -0
  227. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/sklearn/OverfitDiagnosis.py +0 -0
  228. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/sklearn/PermutationFeatureImportance.py +0 -0
  229. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/sklearn/PopulationStabilityIndex.py +0 -0
  230. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/sklearn/PrecisionRecallCurve.py +0 -0
  231. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/sklearn/ROCCurve.py +0 -0
  232. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/sklearn/RegressionErrors.py +0 -0
  233. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/sklearn/RegressionErrorsComparison.py +0 -0
  234. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/sklearn/RegressionModelsPerformanceComparison.py +0 -0
  235. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/sklearn/RegressionR2Square.py +0 -0
  236. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/sklearn/RegressionR2SquareComparison.py +0 -0
  237. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/sklearn/RobustnessDiagnosis.py +0 -0
  238. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/sklearn/SHAPGlobalImportance.py +0 -0
  239. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/sklearn/SilhouettePlot.py +0 -0
  240. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/sklearn/TrainingTestDegradation.py +0 -0
  241. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/sklearn/VMeasure.py +0 -0
  242. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/sklearn/WeakspotsDiagnosis.py +0 -0
  243. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/sklearn/__init__.py +0 -0
  244. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/statsmodels/AutoARIMA.py +0 -0
  245. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/statsmodels/BoxPierce.py +0 -0
  246. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/statsmodels/CumulativePredictionProbabilities.py +0 -0
  247. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/statsmodels/DurbinWatsonTest.py +0 -0
  248. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/statsmodels/GINITable.py +0 -0
  249. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/statsmodels/JarqueBera.py +0 -0
  250. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/statsmodels/KolmogorovSmirnov.py +0 -0
  251. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/statsmodels/LJungBox.py +0 -0
  252. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/statsmodels/Lilliefors.py +0 -0
  253. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/statsmodels/PredictionProbabilitiesHistogram.py +0 -0
  254. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/statsmodels/RegressionCoeffsPlot.py +0 -0
  255. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/statsmodels/RegressionFeatureSignificance.py +0 -0
  256. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/statsmodels/RegressionModelForecastPlot.py +0 -0
  257. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/statsmodels/RegressionModelForecastPlotLevels.py +0 -0
  258. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/statsmodels/RegressionModelSensitivityPlot.py +0 -0
  259. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/statsmodels/RegressionModelSummary.py +0 -0
  260. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/statsmodels/RegressionModelsCoeffs.py +0 -0
  261. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/statsmodels/RegressionPermutationFeatureImportance.py +0 -0
  262. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/statsmodels/RunsTest.py +0 -0
  263. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/statsmodels/ScorecardHistogram.py +0 -0
  264. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/statsmodels/ShapiroWilk.py +0 -0
  265. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/statsmodels/__init__.py +0 -0
  266. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/model_validation/statsmodels/statsutils.py +0 -0
  267. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/prompt_validation/Bias.py +0 -0
  268. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/prompt_validation/Clarity.py +0 -0
  269. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/prompt_validation/Conciseness.py +0 -0
  270. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/prompt_validation/Delimitation.py +0 -0
  271. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/prompt_validation/NegativeInstruction.py +0 -0
  272. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/prompt_validation/Robustness.py +0 -0
  273. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/prompt_validation/Specificity.py +0 -0
  274. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/prompt_validation/__init__.py +0 -0
  275. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/prompt_validation/ai_powered_test.py +0 -0
  276. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/run.py +0 -0
  277. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/test_providers.py +0 -0
  278. {validmind-2.4.7 → validmind-2.4.10}/validmind/tests/utils.py +0 -0
  279. {validmind-2.4.7 → validmind-2.4.10}/validmind/unit_metrics/__init__.py +0 -0
  280. {validmind-2.4.7 → validmind-2.4.10}/validmind/unit_metrics/classification/sklearn/Accuracy.py +0 -0
  281. {validmind-2.4.7 → validmind-2.4.10}/validmind/unit_metrics/classification/sklearn/F1.py +0 -0
  282. {validmind-2.4.7 → validmind-2.4.10}/validmind/unit_metrics/classification/sklearn/Precision.py +0 -0
  283. {validmind-2.4.7 → validmind-2.4.10}/validmind/unit_metrics/classification/sklearn/ROC_AUC.py +0 -0
  284. {validmind-2.4.7 → validmind-2.4.10}/validmind/unit_metrics/classification/sklearn/Recall.py +0 -0
  285. {validmind-2.4.7 → validmind-2.4.10}/validmind/unit_metrics/composite.py +0 -0
  286. {validmind-2.4.7 → validmind-2.4.10}/validmind/unit_metrics/regression/GiniCoefficient.py +0 -0
  287. {validmind-2.4.7 → validmind-2.4.10}/validmind/unit_metrics/regression/HuberLoss.py +0 -0
  288. {validmind-2.4.7 → validmind-2.4.10}/validmind/unit_metrics/regression/KolmogorovSmirnovStatistic.py +0 -0
  289. {validmind-2.4.7 → validmind-2.4.10}/validmind/unit_metrics/regression/MeanAbsolutePercentageError.py +0 -0
  290. {validmind-2.4.7 → validmind-2.4.10}/validmind/unit_metrics/regression/MeanBiasDeviation.py +0 -0
  291. {validmind-2.4.7 → validmind-2.4.10}/validmind/unit_metrics/regression/QuantileLoss.py +0 -0
  292. {validmind-2.4.7 → validmind-2.4.10}/validmind/unit_metrics/regression/sklearn/AdjustedRSquaredScore.py +0 -0
  293. {validmind-2.4.7 → validmind-2.4.10}/validmind/unit_metrics/regression/sklearn/MeanAbsoluteError.py +0 -0
  294. {validmind-2.4.7 → validmind-2.4.10}/validmind/unit_metrics/regression/sklearn/MeanSquaredError.py +0 -0
  295. {validmind-2.4.7 → validmind-2.4.10}/validmind/unit_metrics/regression/sklearn/RSquaredScore.py +0 -0
  296. {validmind-2.4.7 → validmind-2.4.10}/validmind/unit_metrics/regression/sklearn/RootMeanSquaredError.py +0 -0
  297. {validmind-2.4.7 → validmind-2.4.10}/validmind/utils.py +0 -0
  298. {validmind-2.4.7 → validmind-2.4.10}/validmind/vm_models/__init__.py +0 -0
  299. {validmind-2.4.7 → validmind-2.4.10}/validmind/vm_models/dataset/__init__.py +0 -0
  300. {validmind-2.4.7 → validmind-2.4.10}/validmind/vm_models/figure.py +0 -0
  301. {validmind-2.4.7 → validmind-2.4.10}/validmind/vm_models/model.py +0 -0
  302. {validmind-2.4.7 → validmind-2.4.10}/validmind/vm_models/test/metric.py +0 -0
  303. {validmind-2.4.7 → validmind-2.4.10}/validmind/vm_models/test/metric_result.py +0 -0
  304. {validmind-2.4.7 → validmind-2.4.10}/validmind/vm_models/test/output_template.py +0 -0
  305. {validmind-2.4.7 → validmind-2.4.10}/validmind/vm_models/test/result_summary.py +0 -0
  306. {validmind-2.4.7 → validmind-2.4.10}/validmind/vm_models/test/result_wrapper.py +0 -0
  307. {validmind-2.4.7 → validmind-2.4.10}/validmind/vm_models/test/test.py +0 -0
  308. {validmind-2.4.7 → validmind-2.4.10}/validmind/vm_models/test/threshold_test.py +0 -0
  309. {validmind-2.4.7 → validmind-2.4.10}/validmind/vm_models/test/threshold_test_result.py +0 -0
  310. {validmind-2.4.7 → validmind-2.4.10}/validmind/vm_models/test_context.py +0 -0
  311. {validmind-2.4.7 → validmind-2.4.10}/validmind/vm_models/test_suite/runner.py +0 -0
  312. {validmind-2.4.7 → validmind-2.4.10}/validmind/vm_models/test_suite/summary.py +0 -0
  313. {validmind-2.4.7 → validmind-2.4.10}/validmind/vm_models/test_suite/test.py +0 -0
  314. {validmind-2.4.7 → validmind-2.4.10}/validmind/vm_models/test_suite/test_suite.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: validmind
3
- Version: 2.4.7
3
+ Version: 2.4.10
4
4
  Summary: ValidMind Developer Framework
5
5
  License: Commercial License
6
6
  Author: Andres Rodriguez
@@ -29,6 +29,7 @@ Requires-Dist: latex2mathml (>=3.77.0)
29
29
  Requires-Dist: llvmlite ; python_version >= "3.8" and python_full_version <= "3.11.0"
30
30
  Requires-Dist: matplotlib
31
31
  Requires-Dist: mistune (>=3.0.2,<4.0.0)
32
+ Requires-Dist: nest-asyncio (>=1.6.0,<2.0.0)
32
33
  Requires-Dist: nltk (>=3.8.1,<4.0.0)
33
34
  Requires-Dist: numba (<0.59.0)
34
35
  Requires-Dist: numpy
@@ -10,9 +10,10 @@ description = "ValidMind Developer Framework"
10
10
  license = "Commercial License"
11
11
  name = "validmind"
12
12
  readme = "README.pypi.md"
13
- version = "2.4.7"
13
+ version = "2.4.10"
14
14
 
15
15
  [tool.poetry.dependencies]
16
+ python = ">=3.8.1,<3.12"
16
17
  aiohttp = {extras = ["speedups"], version = "*"}
17
18
  arch = "*"
18
19
  bert-score = ">=0.3.13"
@@ -26,6 +27,7 @@ latex2mathml = ">=3.77.0"
26
27
  llvmlite = {version = "*", python = ">=3.8,<=3.11"}
27
28
  matplotlib = "*"
28
29
  mistune = "^3.0.2"
30
+ nest-asyncio = "^1.6.0"
29
31
  nltk = "^3.8.1"
30
32
  numba = "<0.59.0" # TODO: https://github.com/validmind/developer-framework/pull/28
31
33
  numpy = "*"
@@ -35,7 +37,6 @@ plotly = "*"
35
37
  plotly-express = "*"
36
38
  polars = "*"
37
39
  pycocoevalcap = {version = "^1.2", optional = true}
38
- python = ">=3.8.1,<3.12"
39
40
  python-dotenv = "*"
40
41
  ragas = {version = ">=0.1.7", optional = true}
41
42
  rouge = ">=1"
@@ -0,0 +1 @@
1
+ __version__ = "2.4.10"
@@ -34,6 +34,7 @@ _api_secret = os.getenv("VM_API_SECRET")
34
34
  _api_host = os.getenv("VM_API_HOST")
35
35
  _model_cuid = os.getenv("VM_API_MODEL")
36
36
  _run_cuid = os.getenv("VM_RUN_CUID")
37
+ _monitoring = False
37
38
 
38
39
  __api_session: aiohttp.ClientSession = None
39
40
 
@@ -57,6 +58,7 @@ def get_api_config() -> Dict[str, Optional[str]]:
57
58
  "VM_API_HOST": _api_host,
58
59
  "VM_API_MODEL": _model_cuid,
59
60
  "VM_RUN_CUID": _run_cuid,
61
+ "X-MONITORING": _monitoring,
60
62
  }
61
63
 
62
64
 
@@ -73,6 +75,7 @@ def get_api_headers() -> Dict[str, str]:
73
75
  "X-API-KEY": _api_key,
74
76
  "X-API-SECRET": _api_secret,
75
77
  "X-PROJECT-CUID": _model_cuid,
78
+ "X-MONITORING": _monitoring,
76
79
  }
77
80
 
78
81
 
@@ -82,6 +85,7 @@ def init(
82
85
  api_secret: Optional[str] = None,
83
86
  api_host: Optional[str] = None,
84
87
  model: Optional[str] = None,
88
+ monitoring=False,
85
89
  ):
86
90
  """
87
91
  Initializes the API client instances and calls the /ping endpoint to ensure
@@ -96,11 +100,12 @@ def init(
96
100
  api_key (str, optional): The API key. Defaults to None.
97
101
  api_secret (str, optional): The API secret. Defaults to None.
98
102
  api_host (str, optional): The API host. Defaults to None.
103
+ monitoring (str, optional): The ongoing monitoring flag. Defaults to False.
99
104
 
100
105
  Raises:
101
106
  ValueError: If the API key and secret are not provided
102
107
  """
103
- global _api_key, _api_secret, _api_host, _run_cuid, _model_cuid
108
+ global _api_key, _api_secret, _api_host, _run_cuid, _model_cuid, _monitoring
104
109
 
105
110
  if api_key == "...":
106
111
  # special case to detect when running a notebook with the standard init snippet
@@ -125,6 +130,8 @@ def init(
125
130
 
126
131
  _run_cuid = os.getenv("VM_RUN_CUID", None)
127
132
 
133
+ _monitoring = monitoring
134
+
128
135
  try:
129
136
  __ping()
130
137
  except Exception as e:
@@ -159,6 +166,7 @@ def __ping() -> Dict[str, Any]:
159
166
  "X-API-KEY": _api_key,
160
167
  "X-API-SECRET": _api_secret,
161
168
  "X-PROJECT-CUID": _model_cuid,
169
+ "X-MONITORING": str(_monitoring),
162
170
  },
163
171
  )
164
172
  if r.status_code != 200:
@@ -135,7 +135,8 @@ def init_dataset(
135
135
  model=model,
136
136
  index=index,
137
137
  index_name=index_name,
138
- columns=columns,
138
+ # if no columns are passed, use the index
139
+ columns=columns or [i for i in range(dataset.shape[1])],
139
140
  target_column=target_column,
140
141
  feature_columns=feature_columns,
141
142
  text_column=text_column,
@@ -27,7 +27,8 @@ test_content_block_html = """
27
27
  <div id="expandable_instructions_{uuid}" style="display: {instructions_display};">
28
28
  <h4>Code:</h4>
29
29
  <pre>
30
- <code class='language-python'>import validmind as vm
30
+ <code class='language-python'>
31
+ import validmind as vm
31
32
 
32
33
  # inputs dictionary maps your inputs to the expected input names
33
34
  # keys are the expected input names and values are the actual inputs
@@ -161,7 +161,7 @@ class DatasetDescription(Metric):
161
161
  .describe(percentiles=[0.25, 0.5, 0.75, 0.9, 0.95])
162
162
  .to_dict()
163
163
  )
164
- elif field_type == "Categorical":
164
+ elif field_type == "Categorical" or field_type == "Text":
165
165
  field["statistics"] = (
166
166
  df[field["id"]].astype("category").describe().to_dict()
167
167
  )
@@ -6,8 +6,6 @@ import warnings
6
6
 
7
7
  import plotly.express as px
8
8
  from datasets import Dataset
9
- from ragas import evaluate
10
- from ragas.metrics import answer_correctness
11
9
 
12
10
  from validmind import tags, tasks
13
11
 
@@ -89,6 +87,12 @@ def AnswerCorrectness(
89
87
  }
90
88
  ```
91
89
  """
90
+ try:
91
+ from ragas import evaluate
92
+ from ragas.metrics import answer_correctness
93
+ except ImportError:
94
+ raise ImportError("Please run `pip install validmind[llm]` to use LLM tests")
95
+
92
96
  warnings.filterwarnings(
93
97
  "ignore",
94
98
  category=FutureWarning,
@@ -6,8 +6,6 @@ import warnings
6
6
 
7
7
  import plotly.express as px
8
8
  from datasets import Dataset
9
- from ragas import evaluate
10
- from ragas.metrics import answer_relevancy
11
9
 
12
10
  from validmind import tags, tasks
13
11
 
@@ -93,6 +91,12 @@ def AnswerRelevance(
93
91
  }
94
92
  ```
95
93
  """
94
+ try:
95
+ from ragas import evaluate
96
+ from ragas.metrics import answer_relevancy
97
+ except ImportError:
98
+ raise ImportError("Please run `pip install validmind[llm]` to use LLM tests")
99
+
96
100
  warnings.filterwarnings(
97
101
  "ignore",
98
102
  category=FutureWarning,
@@ -6,8 +6,6 @@ import warnings
6
6
 
7
7
  import plotly.express as px
8
8
  from datasets import Dataset
9
- from ragas import evaluate
10
- from ragas.metrics import answer_similarity
11
9
 
12
10
  from validmind import tags, tasks
13
11
 
@@ -79,6 +77,12 @@ def AnswerSimilarity(
79
77
  }
80
78
  ```
81
79
  """
80
+ try:
81
+ from ragas import evaluate
82
+ from ragas.metrics import answer_similarity
83
+ except ImportError:
84
+ raise ImportError("Please run `pip install validmind[llm]` to use LLM tests")
85
+
82
86
  warnings.filterwarnings(
83
87
  "ignore",
84
88
  category=FutureWarning,
@@ -6,28 +6,11 @@ import warnings
6
6
 
7
7
  import plotly.express as px
8
8
  from datasets import Dataset
9
- from ragas import evaluate
10
- from ragas.metrics.critique import AspectCritique as _AspectCritique
11
- from ragas.metrics.critique import (
12
- coherence,
13
- conciseness,
14
- correctness,
15
- harmfulness,
16
- maliciousness,
17
- )
18
9
 
19
10
  from validmind import tags, tasks
20
11
 
21
12
  from .utils import get_ragas_config, get_renamed_columns
22
13
 
23
- aspect_map = {
24
- "coherence": coherence,
25
- "conciseness": conciseness,
26
- "correctness": correctness,
27
- "harmfulness": harmfulness,
28
- "maliciousness": maliciousness,
29
- }
30
-
31
14
 
32
15
  @tags("ragas", "llm", "qualitative")
33
16
  @tasks("text_summarization", "text_generation", "text_qa")
@@ -116,6 +99,27 @@ def AspectCritique(
116
99
  )
117
100
  ```
118
101
  """
102
+ try:
103
+ from ragas import evaluate
104
+ from ragas.metrics.critique import AspectCritique as _AspectCritique
105
+ from ragas.metrics.critique import (
106
+ coherence,
107
+ conciseness,
108
+ correctness,
109
+ harmfulness,
110
+ maliciousness,
111
+ )
112
+ except ImportError:
113
+ raise ImportError("Please run `pip install validmind[llm]` to use LLM tests")
114
+
115
+ aspect_map = {
116
+ "coherence": coherence,
117
+ "conciseness": conciseness,
118
+ "correctness": correctness,
119
+ "harmfulness": harmfulness,
120
+ "maliciousness": maliciousness,
121
+ }
122
+
119
123
  warnings.filterwarnings(
120
124
  "ignore",
121
125
  category=FutureWarning,
@@ -6,8 +6,6 @@ import warnings
6
6
 
7
7
  import plotly.express as px
8
8
  from datasets import Dataset
9
- from ragas import evaluate
10
- from ragas.metrics import context_entity_recall
11
9
 
12
10
  from validmind import tags, tasks
13
11
 
@@ -85,6 +83,12 @@ def ContextEntityRecall(
85
83
  }
86
84
  ```
87
85
  """
86
+ try:
87
+ from ragas import evaluate
88
+ from ragas.metrics import context_entity_recall
89
+ except ImportError:
90
+ raise ImportError("Please run `pip install validmind[llm]` to use LLM tests")
91
+
88
92
  warnings.filterwarnings(
89
93
  "ignore",
90
94
  category=FutureWarning,
@@ -6,8 +6,6 @@ import warnings
6
6
 
7
7
  import plotly.express as px
8
8
  from datasets import Dataset
9
- from ragas import evaluate
10
- from ragas.metrics import context_precision
11
9
 
12
10
  from validmind import tags, tasks
13
11
 
@@ -80,6 +78,12 @@ def ContextPrecision(
80
78
  }
81
79
  ```
82
80
  """
81
+ try:
82
+ from ragas import evaluate
83
+ from ragas.metrics import context_precision
84
+ except ImportError:
85
+ raise ImportError("Please run `pip install validmind[llm]` to use LLM tests")
86
+
83
87
  warnings.filterwarnings(
84
88
  "ignore",
85
89
  category=FutureWarning,
@@ -6,8 +6,6 @@ import warnings
6
6
 
7
7
  import plotly.express as px
8
8
  from datasets import Dataset
9
- from ragas import evaluate
10
- from ragas.metrics import context_recall
11
9
 
12
10
  from validmind import tags, tasks
13
11
 
@@ -80,6 +78,12 @@ def ContextRecall(
80
78
  }
81
79
  ```
82
80
  """
81
+ try:
82
+ from ragas import evaluate
83
+ from ragas.metrics import context_recall
84
+ except ImportError:
85
+ raise ImportError("Please run `pip install validmind[llm]` to use LLM tests")
86
+
83
87
  warnings.filterwarnings(
84
88
  "ignore",
85
89
  category=FutureWarning,
@@ -6,8 +6,6 @@ import warnings
6
6
 
7
7
  import plotly.express as px
8
8
  from datasets import Dataset
9
- from ragas import evaluate
10
- from ragas.metrics import context_relevancy
11
9
 
12
10
  from validmind import tags, tasks
13
11
 
@@ -74,6 +72,12 @@ def ContextRelevancy(
74
72
  }
75
73
  ```
76
74
  """
75
+ try:
76
+ from ragas import evaluate
77
+ from ragas.metrics import context_relevancy
78
+ except ImportError:
79
+ raise ImportError("Please run `pip install validmind[llm]` to use LLM tests")
80
+
77
81
  warnings.filterwarnings(
78
82
  "ignore",
79
83
  category=FutureWarning,
@@ -6,8 +6,6 @@ import warnings
6
6
 
7
7
  import plotly.express as px
8
8
  from datasets import Dataset
9
- from ragas import evaluate
10
- from ragas.metrics import faithfulness
11
9
 
12
10
  from validmind import tags, tasks
13
11
 
@@ -79,6 +77,12 @@ def Faithfulness(
79
77
  }
80
78
  ```
81
79
  """
80
+ try:
81
+ from ragas import evaluate
82
+ from ragas.metrics import faithfulness
83
+ except ImportError:
84
+ raise ImportError("Please run `pip install validmind[llm]` to use LLM tests")
85
+
82
86
  warnings.filterwarnings(
83
87
  "ignore",
84
88
  category=FutureWarning,
@@ -4,14 +4,18 @@
4
4
 
5
5
  import os
6
6
 
7
- from langchain_openai import ChatOpenAI, OpenAIEmbeddings
8
-
9
7
  from validmind.ai.utils import get_client_and_model
10
8
 
11
9
  EMBEDDINGS_MODEL = "text-embedding-3-small"
12
10
 
13
11
 
14
12
  def get_ragas_config():
13
+ # import here since its an optional dependency
14
+ try:
15
+ from langchain_openai import ChatOpenAI, OpenAIEmbeddings
16
+ except ImportError:
17
+ raise ImportError("Please run `pip install validmind[llm]` to use LLM tests")
18
+
15
19
  client, model = get_client_and_model()
16
20
  os.environ["OPENAI_API_BASE"] = str(client.base_url)
17
21
 
@@ -92,14 +92,14 @@ class VMDataset:
92
92
  raise ValueError("Expected Numpy array for attribute raw_dataset")
93
93
  self.index = index
94
94
 
95
- self.df = pd.DataFrame(self._raw_dataset, columns=columns).infer_objects()
95
+ self._df = pd.DataFrame(self._raw_dataset, columns=columns).infer_objects()
96
96
  # set index to dataframe
97
97
  if index is not None:
98
- self.df.set_index(pd.Index(index), inplace=True)
99
- self.df.index.name = index_name
98
+ self._df.set_index(pd.Index(index), inplace=True)
99
+ self._df.index.name = index_name
100
100
  # attempt to convert index to datatime
101
101
  if date_time_index:
102
- self.df = convert_index_to_datetime(self.df)
102
+ self._df = convert_index_to_datetime(self._df)
103
103
 
104
104
  self.options = options
105
105
 
@@ -128,12 +128,12 @@ class VMDataset:
128
128
  self.feature_columns = [col for col in self.columns if col not in excluded]
129
129
 
130
130
  self.feature_columns_numeric = (
131
- self.df[self.feature_columns]
131
+ self._df[self.feature_columns]
132
132
  .select_dtypes(include=[np.number])
133
133
  .columns.tolist()
134
134
  )
135
135
  self.feature_columns_categorical = (
136
- self.df[self.feature_columns]
136
+ self._df[self.feature_columns]
137
137
  .select_dtypes(include=[object, pd.Categorical])
138
138
  .columns.tolist()
139
139
  )
@@ -142,19 +142,19 @@ class VMDataset:
142
142
  column_values = np.array(column_values)
143
143
 
144
144
  if column_values.ndim == 1:
145
- if len(column_values) != len(self.df):
145
+ if len(column_values) != len(self._df):
146
146
  raise ValueError(
147
147
  "Length of values doesn't match number of rows in the DataFrame."
148
148
  )
149
149
  self.columns.append(column_name)
150
- self.df[column_name] = column_values
150
+ self._df[column_name] = column_values
151
151
  elif column_values.ndim == 2:
152
- if column_values.shape[0] != len(self.df):
152
+ if column_values.shape[0] != len(self._df):
153
153
  raise ValueError(
154
154
  "Number of rows in values doesn't match number of rows in the DataFrame."
155
155
  )
156
156
  self.columns.append(column_name)
157
- self.df[column_name] = column_values.tolist()
157
+ self._df[column_name] = column_values.tolist()
158
158
 
159
159
  else:
160
160
  raise ValueError("Only 1D and 2D arrays are supported for column_values.")
@@ -243,10 +243,10 @@ class VMDataset:
243
243
 
244
244
  # if the user passes a column name, we assume it has precomputed predictions
245
245
  if prediction_column:
246
- prediction_values = self.df[prediction_column].values
246
+ prediction_values = self._df[prediction_column].values
247
247
 
248
248
  if probability_column:
249
- probability_values = self.df[probability_column].values
249
+ probability_values = self._df[probability_column].values
250
250
 
251
251
  if prediction_values is None:
252
252
  X = self.df if isinstance(model, (FunctionModel, PipelineModel)) else self.x
@@ -320,6 +320,33 @@ class VMDataset:
320
320
  f"Extra column {column_name} with {len(column_values)} values added to the dataset"
321
321
  )
322
322
 
323
+ @property
324
+ def df(self) -> pd.DataFrame:
325
+ """
326
+ Returns the dataset as a pandas DataFrame.
327
+
328
+ Returns:
329
+ pd.DataFrame: The dataset as a pandas DataFrame.
330
+ """
331
+ # only include feature, text and target columns
332
+ # don't include internal pred and prob columns
333
+ columns = self.feature_columns.copy()
334
+
335
+ # text column can also be a feature column so don't add it twice
336
+ if self.text_column and self.text_column not in columns:
337
+ columns.append(self.text_column)
338
+
339
+ if self.extra_columns.extras:
340
+ # add user-defined extra columns
341
+ columns.extend(self.extra_columns.extras)
342
+
343
+ if self.target_column:
344
+ # shouldn't be a feature column but add this to be safe
345
+ assert self.target_column not in columns
346
+ columns.append(self.target_column)
347
+
348
+ return as_df(self._df[columns])
349
+
323
350
  @property
324
351
  def x(self) -> np.ndarray:
325
352
  """
@@ -328,7 +355,7 @@ class VMDataset:
328
355
  Returns:
329
356
  np.ndarray: The input features.
330
357
  """
331
- return self.df[self.feature_columns].to_numpy()
358
+ return self._df[self.feature_columns].to_numpy()
332
359
 
333
360
  @property
334
361
  def y(self) -> np.ndarray:
@@ -338,7 +365,7 @@ class VMDataset:
338
365
  Returns:
339
366
  np.ndarray: The target variables.
340
367
  """
341
- return self.df[self.target_column].to_numpy()
368
+ return self._df[self.target_column].to_numpy()
342
369
 
343
370
  def y_pred(self, model) -> np.ndarray:
344
371
  """Returns the predictions for a given model.
@@ -352,7 +379,7 @@ class VMDataset:
352
379
  Returns:
353
380
  np.ndarray: The predictions for the model
354
381
  """
355
- return np.stack(self.df[self.prediction_column(model)].values)
382
+ return np.stack(self._df[self.prediction_column(model)].values)
356
383
 
357
384
  def y_prob(self, model) -> np.ndarray:
358
385
  """Returns the probabilities for a given model.
@@ -363,23 +390,23 @@ class VMDataset:
363
390
  Returns:
364
391
  np.ndarray: The probability variables.
365
392
  """
366
- return self.df[self.probability_column(model)].values
393
+ return self._df[self.probability_column(model)].values
367
394
 
368
395
  def x_df(self):
369
396
  """Returns a dataframe containing only the feature columns"""
370
- return as_df(self.df[self.feature_columns])
397
+ return as_df(self._df[self.feature_columns])
371
398
 
372
399
  def y_df(self) -> pd.DataFrame:
373
400
  """Returns a dataframe containing the target column"""
374
- return as_df(self.df[self.target_column])
401
+ return as_df(self._df[self.target_column])
375
402
 
376
403
  def y_pred_df(self, model) -> pd.DataFrame:
377
404
  """Returns a dataframe containing the predictions for a given model"""
378
- return as_df(self.df[self.prediction_column(model)])
405
+ return as_df(self._df[self.prediction_column(model)])
379
406
 
380
407
  def y_prob_df(self, model) -> pd.DataFrame:
381
408
  """Returns a dataframe containing the probabilities for a given model"""
382
- return as_df(self.df[self.probability_column(model)])
409
+ return as_df(self._df[self.probability_column(model)])
383
410
 
384
411
  def target_classes(self):
385
412
  """Returns the target class labels or unique values of the target column."""
@@ -16,6 +16,8 @@ logger = get_logger(__name__)
16
16
 
17
17
  @dataclass
18
18
  class ExtraColumns:
19
+ # TODO: this now holds internal (pred, prob and group_by) cols as well as
20
+ # user-defined extra columns. These should probably be separated.
19
21
  """Extra columns for the dataset."""
20
22
 
21
23
  extras: Set[str] = field(default_factory=set)
@@ -1 +0,0 @@
1
- __version__ = "2.4.7"
File without changes
File without changes