kiln-ai 0.15.0__py3-none-any.whl → 0.17.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of kiln-ai might be problematic. Click here for more details.

Files changed (72) hide show
  1. kiln_ai/adapters/__init__.py +2 -0
  2. kiln_ai/adapters/adapter_registry.py +22 -44
  3. kiln_ai/adapters/chat/__init__.py +8 -0
  4. kiln_ai/adapters/chat/chat_formatter.py +234 -0
  5. kiln_ai/adapters/chat/test_chat_formatter.py +131 -0
  6. kiln_ai/adapters/data_gen/test_data_gen_task.py +19 -6
  7. kiln_ai/adapters/eval/base_eval.py +8 -6
  8. kiln_ai/adapters/eval/eval_runner.py +9 -65
  9. kiln_ai/adapters/eval/g_eval.py +26 -8
  10. kiln_ai/adapters/eval/test_base_eval.py +166 -15
  11. kiln_ai/adapters/eval/test_eval_runner.py +3 -0
  12. kiln_ai/adapters/eval/test_g_eval.py +1 -0
  13. kiln_ai/adapters/fine_tune/base_finetune.py +2 -2
  14. kiln_ai/adapters/fine_tune/dataset_formatter.py +153 -197
  15. kiln_ai/adapters/fine_tune/test_base_finetune.py +10 -10
  16. kiln_ai/adapters/fine_tune/test_dataset_formatter.py +402 -211
  17. kiln_ai/adapters/fine_tune/test_fireworks_tinetune.py +3 -3
  18. kiln_ai/adapters/fine_tune/test_openai_finetune.py +6 -6
  19. kiln_ai/adapters/fine_tune/test_together_finetune.py +1 -0
  20. kiln_ai/adapters/fine_tune/test_vertex_finetune.py +4 -4
  21. kiln_ai/adapters/fine_tune/together_finetune.py +12 -1
  22. kiln_ai/adapters/ml_model_list.py +556 -45
  23. kiln_ai/adapters/model_adapters/base_adapter.py +100 -35
  24. kiln_ai/adapters/model_adapters/litellm_adapter.py +116 -100
  25. kiln_ai/adapters/model_adapters/litellm_config.py +3 -2
  26. kiln_ai/adapters/model_adapters/test_base_adapter.py +299 -52
  27. kiln_ai/adapters/model_adapters/test_litellm_adapter.py +121 -22
  28. kiln_ai/adapters/model_adapters/test_saving_adapter_results.py +44 -2
  29. kiln_ai/adapters/model_adapters/test_structured_output.py +48 -18
  30. kiln_ai/adapters/parsers/base_parser.py +0 -3
  31. kiln_ai/adapters/parsers/parser_registry.py +5 -3
  32. kiln_ai/adapters/parsers/r1_parser.py +17 -2
  33. kiln_ai/adapters/parsers/request_formatters.py +40 -0
  34. kiln_ai/adapters/parsers/test_parser_registry.py +2 -2
  35. kiln_ai/adapters/parsers/test_r1_parser.py +44 -1
  36. kiln_ai/adapters/parsers/test_request_formatters.py +76 -0
  37. kiln_ai/adapters/prompt_builders.py +14 -17
  38. kiln_ai/adapters/provider_tools.py +39 -4
  39. kiln_ai/adapters/repair/test_repair_task.py +27 -5
  40. kiln_ai/adapters/test_adapter_registry.py +88 -28
  41. kiln_ai/adapters/test_ml_model_list.py +158 -0
  42. kiln_ai/adapters/test_prompt_adaptors.py +17 -3
  43. kiln_ai/adapters/test_prompt_builders.py +27 -19
  44. kiln_ai/adapters/test_provider_tools.py +130 -12
  45. kiln_ai/datamodel/__init__.py +2 -2
  46. kiln_ai/datamodel/datamodel_enums.py +43 -4
  47. kiln_ai/datamodel/dataset_filters.py +69 -1
  48. kiln_ai/datamodel/dataset_split.py +4 -0
  49. kiln_ai/datamodel/eval.py +8 -0
  50. kiln_ai/datamodel/finetune.py +13 -7
  51. kiln_ai/datamodel/prompt_id.py +1 -0
  52. kiln_ai/datamodel/task.py +68 -7
  53. kiln_ai/datamodel/task_output.py +1 -1
  54. kiln_ai/datamodel/task_run.py +39 -7
  55. kiln_ai/datamodel/test_basemodel.py +5 -8
  56. kiln_ai/datamodel/test_dataset_filters.py +82 -0
  57. kiln_ai/datamodel/test_dataset_split.py +2 -8
  58. kiln_ai/datamodel/test_example_models.py +54 -0
  59. kiln_ai/datamodel/test_models.py +80 -9
  60. kiln_ai/datamodel/test_task.py +168 -2
  61. kiln_ai/utils/async_job_runner.py +106 -0
  62. kiln_ai/utils/config.py +3 -2
  63. kiln_ai/utils/dataset_import.py +81 -19
  64. kiln_ai/utils/logging.py +165 -0
  65. kiln_ai/utils/test_async_job_runner.py +199 -0
  66. kiln_ai/utils/test_config.py +23 -0
  67. kiln_ai/utils/test_dataset_import.py +272 -10
  68. {kiln_ai-0.15.0.dist-info → kiln_ai-0.17.0.dist-info}/METADATA +1 -1
  69. kiln_ai-0.17.0.dist-info/RECORD +113 -0
  70. kiln_ai-0.15.0.dist-info/RECORD +0 -104
  71. {kiln_ai-0.15.0.dist-info → kiln_ai-0.17.0.dist-info}/WHEEL +0 -0
  72. {kiln_ai-0.15.0.dist-info → kiln_ai-0.17.0.dist-info}/licenses/LICENSE.txt +0 -0
@@ -3,16 +3,25 @@ import json
3
3
  import logging
4
4
  from io import StringIO
5
5
  from pathlib import Path
6
+ from unittest.mock import patch
6
7
 
7
8
  import pytest
8
9
  from pydantic import BaseModel, ValidationError
9
10
 
10
- from kiln_ai.datamodel import Project, Task
11
+ from kiln_ai.datamodel import (
12
+ DataSource,
13
+ DataSourceType,
14
+ Project,
15
+ Task,
16
+ TaskOutput,
17
+ TaskRun,
18
+ )
11
19
  from kiln_ai.utils.dataset_import import (
12
20
  DatasetFileImporter,
13
21
  DatasetImportFormat,
14
22
  ImportConfig,
15
23
  KilnInvalidImportFormat,
24
+ add_tag_splits,
16
25
  deserialize_tags,
17
26
  format_validation_error,
18
27
  generate_import_tags,
@@ -144,16 +153,20 @@ def test_import_csv_plain_text(base_task: Task, tmp_path):
144
153
 
145
154
  file_path = dicts_to_file_as_csv(row_data, "test.csv", tmp_path)
146
155
 
147
- importer = DatasetFileImporter(
148
- base_task,
149
- ImportConfig(
150
- dataset_type=DatasetImportFormat.CSV,
151
- dataset_path=file_path,
152
- dataset_name="test.csv",
153
- ),
154
- )
156
+ with patch("kiln_ai.utils.dataset_import.add_tag_splits") as mock_add_tag_splits:
157
+ importer = DatasetFileImporter(
158
+ base_task,
159
+ ImportConfig(
160
+ dataset_type=DatasetImportFormat.CSV,
161
+ dataset_path=file_path,
162
+ dataset_name="test.csv",
163
+ ),
164
+ )
155
165
 
156
- importer.create_runs_from_file()
166
+ importer.create_runs_from_file()
167
+
168
+ # Verify add_tag_splits was called
169
+ mock_add_tag_splits.assert_called_once()
157
170
 
158
171
  assert len(base_task.runs()) == 4
159
172
 
@@ -248,6 +261,36 @@ def test_import_csv_plain_text_missing_output(base_task: Task, tmp_path):
248
261
  assert "Missing required headers" in str(e.value)
249
262
 
250
263
 
264
+ def test_import_csv_utf8_encoding(base_task: Task, tmp_path):
265
+ """Ensure UTF-8 encoded files are read correctly."""
266
+
267
+ row_data = [
268
+ {
269
+ "input": "Español entrada 你好👋",
270
+ "output": "salida áéí 你好👋",
271
+ "tags": "",
272
+ },
273
+ ]
274
+
275
+ file_path = dicts_to_file_as_csv(row_data, "utf8.csv", tmp_path)
276
+
277
+ importer = DatasetFileImporter(
278
+ base_task,
279
+ ImportConfig(
280
+ dataset_type=DatasetImportFormat.CSV,
281
+ dataset_path=file_path,
282
+ dataset_name="utf8.csv",
283
+ ),
284
+ )
285
+
286
+ importer.create_runs_from_file()
287
+
288
+ assert len(base_task.runs()) == 1
289
+ run = base_task.runs()[0]
290
+ assert run.input == "Español entrada 你好👋"
291
+ assert run.output.output == "salida áéí 你好👋"
292
+
293
+
251
294
  def test_import_csv_structured_output(task_with_structured_output: Task, tmp_path):
252
295
  row_data = [
253
296
  {
@@ -594,3 +637,222 @@ def test_format_validation_error():
594
637
 
595
638
  def test_generate_import_tags():
596
639
  assert generate_import_tags("123") == ["imported", "imported_123"]
640
+
641
+
642
+ def test_add_tag_splits(base_task: Task):
643
+ """Test that tag splits are assigned correctly with exact proportions."""
644
+ # Create some test runs
645
+ runs = []
646
+ for i in range(10):
647
+ run = TaskRun(
648
+ parent=base_task,
649
+ input=f"input {i}",
650
+ input_source=DataSource(
651
+ type=DataSourceType.file_import,
652
+ properties={"file_name": "test.csv"},
653
+ ),
654
+ output=TaskOutput(
655
+ output=f"output {i}",
656
+ source=DataSource(
657
+ type=DataSourceType.file_import,
658
+ properties={"file_name": "test.csv"},
659
+ ),
660
+ ),
661
+ )
662
+ runs.append(run)
663
+
664
+ # Test with 70/30 split
665
+ tag_splits = {"train": 0.7, "test": 0.3}
666
+ add_tag_splits(runs, tag_splits)
667
+
668
+ # Count the tags
669
+ train_count = sum(1 for run in runs if "train" in run.tags)
670
+ test_count = sum(1 for run in runs if "test" in run.tags)
671
+
672
+ # With 10 runs, we should get exactly 7 train and 3 test
673
+ assert train_count == 7
674
+ assert test_count == 3
675
+ assert len(runs) == train_count + test_count
676
+
677
+
678
+ def test_add_tag_splits_rounding(base_task: Task):
679
+ """Test that tag splits handle rounding correctly."""
680
+ # Test a 33/33/34 split
681
+ runs = []
682
+ for i in range(34):
683
+ run = TaskRun(
684
+ parent=base_task,
685
+ input=f"input {i}",
686
+ input_source=DataSource(
687
+ type=DataSourceType.file_import,
688
+ properties={"file_name": "test.csv"},
689
+ ),
690
+ output=TaskOutput(
691
+ output=f"output {i}",
692
+ source=DataSource(
693
+ type=DataSourceType.file_import,
694
+ properties={"file_name": "test.csv"},
695
+ ),
696
+ ),
697
+ )
698
+ runs.append(run)
699
+
700
+ # Test with three equal splits
701
+ tag_splits = {"train": 0.33, "val": 0.33, "test": 0.34}
702
+ add_tag_splits(runs, tag_splits)
703
+
704
+ # Count the tags
705
+ train_count = sum(1 for run in runs if "train" in run.tags)
706
+ val_count = sum(1 for run in runs if "val" in run.tags)
707
+ test_count = sum(1 for run in runs if "test" in run.tags)
708
+
709
+ # Should have one of each
710
+ assert train_count in [11, 12]
711
+ assert val_count in [11, 12]
712
+ assert test_count in [11, 12]
713
+ assert len(runs) == train_count + val_count + test_count
714
+
715
+
716
+ def test_add_tag_splits_none(base_task: Task):
717
+ """Test that None tag_splits is handled correctly."""
718
+ runs = []
719
+ for i in range(5):
720
+ run = TaskRun(
721
+ parent=base_task,
722
+ input=f"input {i}",
723
+ input_source=DataSource(
724
+ type=DataSourceType.file_import,
725
+ properties={"file_name": "test.csv"},
726
+ ),
727
+ output=TaskOutput(
728
+ output=f"output {i}",
729
+ source=DataSource(
730
+ type=DataSourceType.file_import,
731
+ properties={"file_name": "test.csv"},
732
+ ),
733
+ ),
734
+ )
735
+ runs.append(run)
736
+
737
+ # Should not modify any tags
738
+ original_tags = [run.tags.copy() for run in runs]
739
+ add_tag_splits(runs, None)
740
+ for run, original in zip(runs, original_tags):
741
+ assert run.tags == original
742
+
743
+
744
+ def test_add_tag_splits_randomness(base_task: Task):
745
+ """Test that tag assignment is random but maintains proportions."""
746
+ # Create 100 runs for better statistical significance
747
+ runs = []
748
+ for i in range(100):
749
+ run = TaskRun(
750
+ parent=base_task,
751
+ input=f"input {i}",
752
+ input_source=DataSource(
753
+ type=DataSourceType.file_import,
754
+ properties={"file_name": "test.csv"},
755
+ ),
756
+ output=TaskOutput(
757
+ output=f"output {i}",
758
+ source=DataSource(
759
+ type=DataSourceType.file_import,
760
+ properties={"file_name": "test.csv"},
761
+ ),
762
+ ),
763
+ )
764
+ runs.append(run)
765
+
766
+ # Test with 60/40 split
767
+ tag_splits = {"train": 0.6, "test": 0.4}
768
+ add_tag_splits(runs, tag_splits)
769
+
770
+ # Count the tags
771
+ train_count = sum(1 for run in runs if "train" in run.tags)
772
+ test_count = sum(1 for run in runs if "test" in run.tags)
773
+
774
+ # Should have exactly 60 train and 40 test
775
+ assert train_count == 60
776
+ assert test_count == 40
777
+ assert len(runs) == train_count + test_count
778
+
779
+ # Check that the assignment is not just sequential
780
+ # by looking at the first few runs
781
+ first_few_runs = runs[:35]
782
+ train_tags = sum(1 for run in first_few_runs if "train" in run.tags)
783
+ test_tags = sum(1 for run in first_few_runs if "test" in run.tags)
784
+
785
+ # If assignment was sequential, we'd expect all first 35 to be train
786
+ # This test might occasionally fail if we get unlucky with random assignment
787
+ # but it's very unlikely
788
+ assert train_tags < 35
789
+ assert test_tags > 0
790
+
791
+
792
+ def test_validate_tag_splits():
793
+ """Test that validate_tag_splits correctly validates tag split proportions."""
794
+ # Test valid splits
795
+ config = ImportConfig(
796
+ dataset_type=DatasetImportFormat.CSV,
797
+ dataset_path="test.csv",
798
+ dataset_name="test.csv",
799
+ tag_splits={"train": 0.7, "test": 0.3},
800
+ )
801
+ config.validate_tag_splits() # Should not raise
802
+
803
+ # Test valid splits with small floating point errors
804
+ config = ImportConfig(
805
+ dataset_type=DatasetImportFormat.CSV,
806
+ dataset_path="test.csv",
807
+ dataset_name="test.csv",
808
+ tag_splits={"train": 0.7, "test": 0.3000001},
809
+ )
810
+ config.validate_tag_splits() # Should not raise
811
+
812
+ # Test invalid splits that don't sum to 1
813
+ config = ImportConfig(
814
+ dataset_type=DatasetImportFormat.CSV,
815
+ dataset_path="test.csv",
816
+ dataset_name="test.csv",
817
+ tag_splits={"train": 0.7, "test": 0.4},
818
+ )
819
+ with pytest.raises(ValueError) as e:
820
+ config.validate_tag_splits()
821
+ assert "Splits must sum to 1" in str(e.value)
822
+
823
+ # Test None tag_splits
824
+ config = ImportConfig(
825
+ dataset_type=DatasetImportFormat.CSV,
826
+ dataset_path="test.csv",
827
+ dataset_name="test.csv",
828
+ tag_splits=None,
829
+ )
830
+ config.validate_tag_splits() # Should not raise
831
+
832
+
833
+ def test_dataset_file_importer_validates_tag_splits(base_task: Task, tmp_path):
834
+ """Test that DatasetFileImporter validates tag splits on initialization."""
835
+ # Test with invalid splits
836
+ with pytest.raises(ValueError) as e:
837
+ DatasetFileImporter(
838
+ base_task,
839
+ ImportConfig(
840
+ dataset_type=DatasetImportFormat.CSV,
841
+ dataset_path="test.csv",
842
+ dataset_name="test.csv",
843
+ tag_splits={"train": 0.7, "test": 0.4}, # Sums to 1.1
844
+ ),
845
+ )
846
+ assert "Splits must sum to 1" in str(e.value)
847
+
848
+ # Test with valid splits
849
+ importer = DatasetFileImporter(
850
+ base_task,
851
+ ImportConfig(
852
+ dataset_type=DatasetImportFormat.CSV,
853
+ dataset_path="test.csv",
854
+ dataset_name="test.csv",
855
+ tag_splits={"train": 0.7, "test": 0.3},
856
+ ),
857
+ )
858
+ assert importer.config.tag_splits == {"train": 0.7, "test": 0.3}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kiln-ai
3
- Version: 0.15.0
3
+ Version: 0.17.0
4
4
  Summary: Kiln AI
5
5
  Project-URL: Homepage, https://getkiln.ai
6
6
  Project-URL: Repository, https://github.com/Kiln-AI/kiln
@@ -0,0 +1,113 @@
1
+ kiln_ai/__init__.py,sha256=Sc4z8LRVFMwJUoc_DPVUriSXTZ6PO9MaJ80PhRbKyB8,34
2
+ kiln_ai/adapters/__init__.py,sha256=5GTN1bnEWz1NxWrlzsI6CfUio-D1jG74_-fx_PXJkY8,1027
3
+ kiln_ai/adapters/adapter_registry.py,sha256=oEY6Zy6rtzs5mYLSZVhCzNWE4UJiUzIkVmmE_UYnBbE,8529
4
+ kiln_ai/adapters/ml_model_list.py,sha256=kXt2eJ68HCUZ2dzfl9t-9pUv_s8149yMjRjmDi3GWuA,88641
5
+ kiln_ai/adapters/ollama_tools.py,sha256=uObtLWfqKb9RXHN-TGGw2Y1FQlEMe0u8FgszI0zQn6U,3550
6
+ kiln_ai/adapters/prompt_builders.py,sha256=R5IgZ7I2Ftx7i67xQb9UwcHE5gbPxgvgys_UAs3fc6A,15165
7
+ kiln_ai/adapters/provider_tools.py,sha256=HIGsU38cAWKGONi8-Rh66WNOved3O0w9OYbj9tU_HU4,16794
8
+ kiln_ai/adapters/run_output.py,sha256=RAi2Qp6dmqJVNm3CxbNTdAuhitHfH5NiUGbf6ygUP-k,257
9
+ kiln_ai/adapters/test_adapter_registry.py,sha256=W4KoZ5cFTZwmW3i19cCgwzmcG802tpFC0GrUnZcD8_4,8378
10
+ kiln_ai/adapters/test_ml_model_list.py,sha256=L5XdRz6c2vbfSYe0rWfsNOM73lZbuGsnG1gzgVPEUA8,6726
11
+ kiln_ai/adapters/test_ollama_tools.py,sha256=xAUzL0IVmmXadVehJu1WjqbhpKEYGAgGt3pWx7hrubc,2514
12
+ kiln_ai/adapters/test_prompt_adaptors.py,sha256=nGq6H84rDMl72WUP2xqorQYW5yot0Z6sTQPXRL0mh5Y,8291
13
+ kiln_ai/adapters/test_prompt_builders.py,sha256=SqGkluKZd7m7SPuq64NAprG0db11RDqoYai1m-1QgeQ,22585
14
+ kiln_ai/adapters/test_provider_tools.py,sha256=QCknT944HN7jKLeSi9qS0cH_O5jKMMLThX7kWfAcJqg,32090
15
+ kiln_ai/adapters/chat/__init__.py,sha256=ELydKUGeCcTiBJogzZUT8VXqr5kDtmoB8_GoyO28qR0,192
16
+ kiln_ai/adapters/chat/chat_formatter.py,sha256=aBGpMUUBx0V_-g5GXkAhmhIqIyfMwd7kphFu6E8ivTM,8343
17
+ kiln_ai/adapters/chat/test_chat_formatter.py,sha256=MVEZTSIFBwLvplOmit-4TDdcmPXsaMZMQEwoXWmq1FI,4603
18
+ kiln_ai/adapters/data_gen/__init__.py,sha256=QTZWaf7kq5BorhPvexJfwDEKmjRmIbhwW9ei8LW2SIs,276
19
+ kiln_ai/adapters/data_gen/data_gen_prompts.py,sha256=kudjHnAz7L3q0k_NLyTlaIV7M0uRFrxXNcfcnjOE2uc,5810
20
+ kiln_ai/adapters/data_gen/data_gen_task.py,sha256=0PuYCcj09BtpgNj23mKj_L45mKZBdV5VreUeZ-Tj_xM,6642
21
+ kiln_ai/adapters/data_gen/test_data_gen_task.py,sha256=_v80CcPpTRQRBGgO9U-tj8PNg5Ixzc-7xCgSocCRai0,10706
22
+ kiln_ai/adapters/eval/__init__.py,sha256=0ptbK0ZxWuraxGn_WMgmE1tcaq0k5t-g-52kVohvWCg,693
23
+ kiln_ai/adapters/eval/base_eval.py,sha256=Ms-OPfOmp4_7jIgAxi9QbwEPQYHkkHA-F2ZW11S6MLg,7324
24
+ kiln_ai/adapters/eval/eval_runner.py,sha256=EjgAM88RhV51aIM1tNwmtnOU8a7uyaSM95ZYu0JZ-Pc,8791
25
+ kiln_ai/adapters/eval/g_eval.py,sha256=yDsyepDhvsi67F2gi85KZQO_0UoWKNJSpxc43ufvJOU,16098
26
+ kiln_ai/adapters/eval/registry.py,sha256=gZ_s0VgEx79Fswkgi1tS4yOl7lzpkvUBJZ62RldhM_w,626
27
+ kiln_ai/adapters/eval/test_base_eval.py,sha256=zNoIrFqImgccOazC4yNof11ZObHkvh_DVnaaBBNw_jU,15776
28
+ kiln_ai/adapters/eval/test_eval_runner.py,sha256=37cmZPjvZaNlNDzmstmOEUwQEFhpafD9jRhDD1UH6PE,18718
29
+ kiln_ai/adapters/eval/test_g_eval.py,sha256=KaVjG6aHQQzGlOd4J_7S8YKR3EmA2aFpY8VOEDdrRHY,16479
30
+ kiln_ai/adapters/eval/test_g_eval_data.py,sha256=8caiZfLWnXVX8alrBPrH7L7gqqSS9vO7u6PzcHurQcA,27769
31
+ kiln_ai/adapters/fine_tune/__init__.py,sha256=DxdTR60chwgck1aEoVYWyfWi6Ed2ZkdJj0lar-SEAj4,257
32
+ kiln_ai/adapters/fine_tune/base_finetune.py,sha256=CGho356kKnxQsvkHws9XfWuBYV0nmbCvEkff21D4e48,5914
33
+ kiln_ai/adapters/fine_tune/dataset_formatter.py,sha256=yOVefk2qXwX29Y2nKU0XWtQgf1kNNMY5M0NhzsaatZ8,12975
34
+ kiln_ai/adapters/fine_tune/finetune_registry.py,sha256=9RJLjviSoN3dQnKJE9Ss7df7dtdJgbuShB8IUcI-q9k,726
35
+ kiln_ai/adapters/fine_tune/fireworks_finetune.py,sha256=ze0QxghpHAqwO9nXOTkDEC9irmqduX5bjIhZDU0DCZQ,20101
36
+ kiln_ai/adapters/fine_tune/openai_finetune.py,sha256=Dz9E_0BWfrIkvv8ArZe-RKPwbIKPZ3v8rfbc3JELyTY,8571
37
+ kiln_ai/adapters/fine_tune/test_base_finetune.py,sha256=atZI54SC6mVili5dEIuqwv2groLCZWYKSMzDZYjbUxQ,10705
38
+ kiln_ai/adapters/fine_tune/test_dataset_formatter.py,sha256=7-axt5WPk1cEmsojr9xG6o1PHu7EvEn_YWIg1ZmqRK0,29907
39
+ kiln_ai/adapters/fine_tune/test_fireworks_tinetune.py,sha256=dzOOFIzgRUGGNlfA7-L1URI4qwMVHg1fuUc8RBqrDNI,36765
40
+ kiln_ai/adapters/fine_tune/test_openai_finetune.py,sha256=NtMFo3LZjpAsNHFvIMHsFmWRrHrOKjniRvrZTx4nXhg,20001
41
+ kiln_ai/adapters/fine_tune/test_together_finetune.py,sha256=ZwYmT4pPkhU-45Q-5fs4WL16dQ4OyvI7KXPevsrA24E,18122
42
+ kiln_ai/adapters/fine_tune/test_vertex_finetune.py,sha256=W7oz6ZJktde1WludBb2lFpTXmU7VQN1FkeJpyN1dPbI,19218
43
+ kiln_ai/adapters/fine_tune/together_finetune.py,sha256=rsJETfwkx21UzJH1CUd_hP-v1zQNBxK5b2uJIYSTpS4,14775
44
+ kiln_ai/adapters/fine_tune/vertex_finetune.py,sha256=Ik6Ov711-oruJnMHpVZTPimWJY2W_JnfdKIdR2djGrc,8545
45
+ kiln_ai/adapters/model_adapters/__init__.py,sha256=m5GRtOHwVVvp_XDOss8c1X3NFf1wQQlC2eBgI4tXQhM,212
46
+ kiln_ai/adapters/model_adapters/base_adapter.py,sha256=mGF3ozrFp14_elYXghgzZiWrEKo6EGY9lSdo3aRaJ-A,13101
47
+ kiln_ai/adapters/model_adapters/litellm_adapter.py,sha256=G9SBxw-B6uB8I8LyKaZ6WDAq2OaUOCmvoVNYKbNdVu4,17074
48
+ kiln_ai/adapters/model_adapters/litellm_config.py,sha256=zOQEkYKeoQ0FIbxTkyyoaGtaQiB9eYK3IuyUgqSwzLE,485
49
+ kiln_ai/adapters/model_adapters/test_base_adapter.py,sha256=CWvVCr3Y_m8iQ1jU60PDG7qPpIP3gOSAXUfOUsQVAfI,16050
50
+ kiln_ai/adapters/model_adapters/test_litellm_adapter.py,sha256=NZ9rXUHCDjNNuvzMjOHmmT5U02HXCm7WkuyNOXYaLNU,17301
51
+ kiln_ai/adapters/model_adapters/test_saving_adapter_results.py,sha256=xkd_b9GS-6ybst97FsS_XrvyTXMlEufYF1Q8CGpE1V8,9697
52
+ kiln_ai/adapters/model_adapters/test_structured_output.py,sha256=-4NWrDTYJXC53UKoKfYzAg-uyD73I-iApqN-9FNB2qM,13463
53
+ kiln_ai/adapters/parsers/__init__.py,sha256=TGJS_8JhjUwg5Bnq4cDmwt5eIRo4vowmcL2A72L1Hzk,202
54
+ kiln_ai/adapters/parsers/base_parser.py,sha256=AE8UYCttmVXbilpICotnDdFYTFhGMiBJHrxIUgPTAWM,280
55
+ kiln_ai/adapters/parsers/json_parser.py,sha256=IszrBrhIFrrVr76UZsuejkBdqpZG27mU72264HVgVzE,1274
56
+ kiln_ai/adapters/parsers/parser_registry.py,sha256=Lna-uYHBigKeq9e-mUbNQKcsZM1M7cDvxu7Gv4ECjLI,735
57
+ kiln_ai/adapters/parsers/r1_parser.py,sha256=ucDRHPoFrmr1eOSNFEG0won6TPxkCKfGJQNNJng5qHA,3626
58
+ kiln_ai/adapters/parsers/request_formatters.py,sha256=NdZO8zcZy9tkea8JaD5c_OeoeVjoYYTG0GjwF812STw,1124
59
+ kiln_ai/adapters/parsers/test_json_parser.py,sha256=9kdWe_vRC5wjP8A1Ym6Zu6enDIz4ARCNiRpcZr7_3ak,1971
60
+ kiln_ai/adapters/parsers/test_parser_registry.py,sha256=FFJQgaKVu67yK4W7w_b26tuEYPPYGppfttJ0y5ctWUo,1041
61
+ kiln_ai/adapters/parsers/test_r1_parser.py,sha256=XbB0saThkcgOvoYNq3TxDgILUu5Me38yeKoQonqaN-g,6296
62
+ kiln_ai/adapters/parsers/test_request_formatters.py,sha256=t3FlKT_Tte2u8zXJTMl8VaE8IrSzumuBysahbGesrbU,2090
63
+ kiln_ai/adapters/repair/__init__.py,sha256=dOO9MEpEhjiwzDVFg3MNfA2bKMPlax9iekDatpTkX8E,217
64
+ kiln_ai/adapters/repair/repair_task.py,sha256=iW0bHWQq6Tir6ULTATWFS0zpwNji8Tbwhm2lZu52RsM,3342
65
+ kiln_ai/adapters/repair/test_repair_task.py,sha256=fMlad29edA2tTt4t7cv6cXVWhuWOJ9x1Mpb3wJFTD1I,8603
66
+ kiln_ai/datamodel/__init__.py,sha256=eHDUB9ltKmnsx0TAX310o5OMLnZbSznMJLFRnNk6HlA,1927
67
+ kiln_ai/datamodel/basemodel.py,sha256=Qsr3Kxq5B5rfPZxQFrfOMTGwInnfYy5srd8nK0nwOs0,22204
68
+ kiln_ai/datamodel/datamodel_enums.py,sha256=7BpyiXEtNsz43el7zTAeaaozDVUZUJCFKHsoaXoTomQ,3796
69
+ kiln_ai/datamodel/dataset_filters.py,sha256=zXS5QeCqWa1vAxs3Pyy5FJtySx9yYJzxsCMANd23-3c,5502
70
+ kiln_ai/datamodel/dataset_split.py,sha256=GDF3Pj3NLG42X8kjR606R_aN14rpqx8Ig56FG8NCn9k,5790
71
+ kiln_ai/datamodel/eval.py,sha256=larT3emjpLVYOSB2ga5GHTS4O7l9mJwtIO4EqCyYF7g,14214
72
+ kiln_ai/datamodel/finetune.py,sha256=mOTM0KEbRNZ5fvzgpUtLRugaGkhWQKFwdsQWggIzMls,4813
73
+ kiln_ai/datamodel/json_schema.py,sha256=o50wSp8frRXjT-NZjml4-Is7LNoF7DQP4g3AaaYzBfI,3379
74
+ kiln_ai/datamodel/model_cache.py,sha256=9X4aAigbkFdytckgw8InCMh86uBna0ME_1HJSeMPEn0,4495
75
+ kiln_ai/datamodel/project.py,sha256=uVH2_3TDFtsG_tpts81A-zbd9uPDFxAwMCKZt_km3IE,727
76
+ kiln_ai/datamodel/prompt.py,sha256=70JPYHfgyX18cHW_DXoMzIOA28Jbaz6gyabElmpycyc,1161
77
+ kiln_ai/datamodel/prompt_id.py,sha256=S4Wcrt05USN-JrO8BeDlNYGrcoTOVocR3iUxBbgoq1c,2566
78
+ kiln_ai/datamodel/registry.py,sha256=XwGFXJFKZtOpR1Z9ven6SftggfADdZRm8TFxCEVtfUQ,957
79
+ kiln_ai/datamodel/strict_mode.py,sha256=sm4Xka8mnJHCShtbh6MMU5dDQv-cLj8lHgHkmFKpsl0,849
80
+ kiln_ai/datamodel/task.py,sha256=ZjTfOxk4Op83CAVp1KFsuHeaeqBNAvdVS-QQCKCNIug,9253
81
+ kiln_ai/datamodel/task_output.py,sha256=P7bRI-Qn2n7f8XpR7hwgSTKhx3gzvsZ1aJOQMl-YW4s,13245
82
+ kiln_ai/datamodel/task_run.py,sha256=0Lwc7zQoeWzuvHYv00lUGfsNQp8gCKmCVKAq3FDrruY,8806
83
+ kiln_ai/datamodel/test_basemodel.py,sha256=1__3dVyxCVMQH7jhBYYEYgaCgtc08faSIlVOLfPdMZ0,18021
84
+ kiln_ai/datamodel/test_dataset_filters.py,sha256=TFHQZLB0rJxnxsFjD546eXVFxZNAJi0sPZ8j24wYd1w,5322
85
+ kiln_ai/datamodel/test_dataset_split.py,sha256=mXB8udml_6U4BXR0xAGHsFINnhdcTDB1qhuZbQemk-w,11055
86
+ kiln_ai/datamodel/test_datasource.py,sha256=H4Kc-Im9eM7WnADWZXdoiOIrOl05RtkyuhTCKiRimyU,3905
87
+ kiln_ai/datamodel/test_eval_model.py,sha256=J7MqwWBgPpeXGqh3IacVUUHdZFJSZ2MgTsUNu-hNOJw,19528
88
+ kiln_ai/datamodel/test_example_models.py,sha256=dwLAAOXLvdKupE5Q1m6VNcHtfdhpi2qWtoEbC0nfJg8,26156
89
+ kiln_ai/datamodel/test_json_schema.py,sha256=R0Cfc9WbieMslgvYsj2HFx8RHIq2fF9NcT5jH-kEqh4,4793
90
+ kiln_ai/datamodel/test_model_cache.py,sha256=Fy-ucYNzS5JEG-8SFY4nVHA8iRbXXxai20f8_oGl97o,8184
91
+ kiln_ai/datamodel/test_model_perf.py,sha256=9_76f__5XtZSHSjuaoiHRj2t-z3OWn-sSA4S9kH1jpY,3306
92
+ kiln_ai/datamodel/test_models.py,sha256=wENuBiZ2Y-N_puFkitNZ1T-lBpVgQWotfhGug6k4AMY,21674
93
+ kiln_ai/datamodel/test_nested_save.py,sha256=xciCddqvPyKyoyjC5Lx_3Kh1t4LJv1xYRAPazR3SRcs,5588
94
+ kiln_ai/datamodel/test_output_rating.py,sha256=zvPIp2shAgCs2RQBgwYoL09fRA3krHvgAqUa91RlWR0,15125
95
+ kiln_ai/datamodel/test_prompt_id.py,sha256=ihyXVPQi0dSLGnBM7rTXRnVaiWXhh7HJmSy4nZZKmso,4225
96
+ kiln_ai/datamodel/test_registry.py,sha256=PhS4anLi5Bf_023obuTlO5DALhtPB8WIc_bX12Yg6Po,2705
97
+ kiln_ai/datamodel/test_task.py,sha256=X85YgGt7Y9kuv6-jE9kl5b8mPz3cgrEFqiZAZFWfpO0,11890
98
+ kiln_ai/utils/__init__.py,sha256=PTD0MwBCKAMIOGsTAwsFaJOusTJJoRFTfOGqRvCaU-E,142
99
+ kiln_ai/utils/async_job_runner.py,sha256=1gjoEq5yc2MOVjDo05O1wztguEuMC6l3haDZsltlvuw,3457
100
+ kiln_ai/utils/config.py,sha256=Pk9w7C985jinE9_SDJzgkG1CkPtIaitLZqia_dtjhwQ,8520
101
+ kiln_ai/utils/dataset_import.py,sha256=EqBBBopCEUy1JH4-EAsBETwGp4MFjzZGfUUBZ6FLfGY,9011
102
+ kiln_ai/utils/exhaustive_error.py,sha256=TkkRixIAR3CPEKHeAJzyv0mtxp6BxUBKMvobA3vzQug,262
103
+ kiln_ai/utils/formatting.py,sha256=VtB9oag0lOGv17dwT7OPX_3HzBfaU9GsLH-iLete0yM,97
104
+ kiln_ai/utils/logging.py,sha256=LY7EnxZIsSuVxKP53JMLp-TdFomOMkxN793trN_kAws,6729
105
+ kiln_ai/utils/name_generator.py,sha256=v26TgpCwQbhQFcZvzgjZvURinjrOyyFhxpsI6NQrHKc,1914
106
+ kiln_ai/utils/test_async_job_runner.py,sha256=8AwPfOlR09qzfhVm-djpkmuoyHxJJ19QEzs0WV5KFSQ,6813
107
+ kiln_ai/utils/test_config.py,sha256=8goGdVLOO1OiSPnuDLUHbEJWJ8hAjaAIDg0myhR2A00,9687
108
+ kiln_ai/utils/test_dataset_import.py,sha256=BEl38D95HQYpc7_jeB1N-ocOnKM1DLutp669cNrVOuE,25765
109
+ kiln_ai/utils/test_name_geneator.py,sha256=9-hSTBshyakqlPbFnNcggwLrL7lcPTitauBYHg9jFWI,1513
110
+ kiln_ai-0.17.0.dist-info/METADATA,sha256=W9UIYyQGlhO3fcDr9IBaxUTST_lF_-DHKGm3cCUPcH0,12263
111
+ kiln_ai-0.17.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
112
+ kiln_ai-0.17.0.dist-info/licenses/LICENSE.txt,sha256=_NA5pnTYgRRr4qH6lE3X-TuZJ8iRcMUi5ASoGr-lEx8,1209
113
+ kiln_ai-0.17.0.dist-info/RECORD,,
@@ -1,104 +0,0 @@
1
- kiln_ai/__init__.py,sha256=Sc4z8LRVFMwJUoc_DPVUriSXTZ6PO9MaJ80PhRbKyB8,34
2
- kiln_ai/adapters/__init__.py,sha256=XjGmWagEyOEVwVIAxjN5rYNsQWIEACT5DB7MMTxdPss,1005
3
- kiln_ai/adapters/adapter_registry.py,sha256=KmMHYQ3mxpjVLE6D-hMNWCGt6Cw9JvnFn6nMb48GE8Y,9166
4
- kiln_ai/adapters/ml_model_list.py,sha256=RyRvPStx2TNGDjmRKSE02bOZjSWSWuJ030Ythu4Fgh4,68593
5
- kiln_ai/adapters/ollama_tools.py,sha256=uObtLWfqKb9RXHN-TGGw2Y1FQlEMe0u8FgszI0zQn6U,3550
6
- kiln_ai/adapters/prompt_builders.py,sha256=LYHTIaisQMBFtWDRIGo1QJgOsmQ-NBpQ8fI4eImHxaQ,15269
7
- kiln_ai/adapters/provider_tools.py,sha256=ciFQfGJuTuHDj3FARY-sUqbSb-7oAT9lMGJGCBJoF4I,15309
8
- kiln_ai/adapters/run_output.py,sha256=RAi2Qp6dmqJVNm3CxbNTdAuhitHfH5NiUGbf6ygUP-k,257
9
- kiln_ai/adapters/test_adapter_registry.py,sha256=eDLHqv9mwgdde221pa47bTV87vCXwkUyjqsas-iFUrY,6123
10
- kiln_ai/adapters/test_ollama_tools.py,sha256=xAUzL0IVmmXadVehJu1WjqbhpKEYGAgGt3pWx7hrubc,2514
11
- kiln_ai/adapters/test_prompt_adaptors.py,sha256=J1ZGZ8GG7SxP3_J3Zw0e6XmZY4NyPmUGX3IPgjh2LD8,7767
12
- kiln_ai/adapters/test_prompt_builders.py,sha256=5Xvfr-oQg_LLrle6UqfpRHWcPUYa8ywG3aL1rM7q1Jw,22054
13
- kiln_ai/adapters/test_provider_tools.py,sha256=7s-njUBm_TJCTeNOh4TrP7R-Q6TXILAxbv-GK0p3YPU,27446
14
- kiln_ai/adapters/data_gen/__init__.py,sha256=QTZWaf7kq5BorhPvexJfwDEKmjRmIbhwW9ei8LW2SIs,276
15
- kiln_ai/adapters/data_gen/data_gen_prompts.py,sha256=kudjHnAz7L3q0k_NLyTlaIV7M0uRFrxXNcfcnjOE2uc,5810
16
- kiln_ai/adapters/data_gen/data_gen_task.py,sha256=0PuYCcj09BtpgNj23mKj_L45mKZBdV5VreUeZ-Tj_xM,6642
17
- kiln_ai/adapters/data_gen/test_data_gen_task.py,sha256=cRKUKMvC0uVompbmPTKwbnQ_N3c0cQDm4J_9H4Y5U18,10129
18
- kiln_ai/adapters/eval/__init__.py,sha256=0ptbK0ZxWuraxGn_WMgmE1tcaq0k5t-g-52kVohvWCg,693
19
- kiln_ai/adapters/eval/base_eval.py,sha256=IF4kYGt93bqJqSfj8UUaTng38fwPmi3cFKRSKUZhXJs,7381
20
- kiln_ai/adapters/eval/eval_runner.py,sha256=h3DvRFM5J5LDJqaLzNJ-q9i5LRycv2J9Ev5nw1mUDUQ,10806
21
- kiln_ai/adapters/eval/g_eval.py,sha256=d3UcBsZWeDt7cWp4uvDcfG7qdGLsGaZEBsIEqkpiWh4,15253
22
- kiln_ai/adapters/eval/registry.py,sha256=gZ_s0VgEx79Fswkgi1tS4yOl7lzpkvUBJZ62RldhM_w,626
23
- kiln_ai/adapters/eval/test_base_eval.py,sha256=_1CiOUOiBt1R_gGYMcRblrPkHf-H4uIlvfcHj5-Wh7o,10724
24
- kiln_ai/adapters/eval/test_eval_runner.py,sha256=82WPE_frNRTSQ2lylqT0inkqcDgM72nWt8GEuoDkJ7w,18568
25
- kiln_ai/adapters/eval/test_g_eval.py,sha256=-Stx7E0D-WAH1HWrRSp48CiGsf-no1SHeFF9IqVXeMI,16433
26
- kiln_ai/adapters/eval/test_g_eval_data.py,sha256=8caiZfLWnXVX8alrBPrH7L7gqqSS9vO7u6PzcHurQcA,27769
27
- kiln_ai/adapters/fine_tune/__init__.py,sha256=DxdTR60chwgck1aEoVYWyfWi6Ed2ZkdJj0lar-SEAj4,257
28
- kiln_ai/adapters/fine_tune/base_finetune.py,sha256=g-lWuZMkOj2djcczuHke_Ai7Z7RPg41AFSgoxHgsw3U,5889
29
- kiln_ai/adapters/fine_tune/dataset_formatter.py,sha256=ky48er7lMIS3Kv5WflaLpUDvWiVGYgl8QlI0M_wy6Vo,14409
30
- kiln_ai/adapters/fine_tune/finetune_registry.py,sha256=9RJLjviSoN3dQnKJE9Ss7df7dtdJgbuShB8IUcI-q9k,726
31
- kiln_ai/adapters/fine_tune/fireworks_finetune.py,sha256=ze0QxghpHAqwO9nXOTkDEC9irmqduX5bjIhZDU0DCZQ,20101
32
- kiln_ai/adapters/fine_tune/openai_finetune.py,sha256=Dz9E_0BWfrIkvv8ArZe-RKPwbIKPZ3v8rfbc3JELyTY,8571
33
- kiln_ai/adapters/fine_tune/test_base_finetune.py,sha256=Tq0Klw7ou5_6H_bouTbI3PxYw7H30K32wlgWJE_luYk,10751
34
- kiln_ai/adapters/fine_tune/test_dataset_formatter.py,sha256=kUGn2kv2jwosuabuhYgA3oXJXAdqK1AAaJI496ScOGY,24015
35
- kiln_ai/adapters/fine_tune/test_fireworks_tinetune.py,sha256=NCl2U6ZqqJ8dnysGGmfir9RGcV-StPtoi5cetRjW6Zc,36754
36
- kiln_ai/adapters/fine_tune/test_openai_finetune.py,sha256=H63Xk2PNHbt5Ev5IQpdR9JZ4uz-Huo2gfuC4mHHqe0w,20011
37
- kiln_ai/adapters/fine_tune/test_together_finetune.py,sha256=BUJFsyq_g77gU0JN3hg6FMBvqb0DIyTeAek-wxomKIg,18090
38
- kiln_ai/adapters/fine_tune/test_vertex_finetune.py,sha256=rAmcQJNPXqRacxg6RzjEQ8FNLKCp9qZRHToH7fm-7W0,19214
39
- kiln_ai/adapters/fine_tune/together_finetune.py,sha256=EbMPsTyKMubfwOalkFLiNFlMFIRKxLibzMTyLeUkle4,14010
40
- kiln_ai/adapters/fine_tune/vertex_finetune.py,sha256=Ik6Ov711-oruJnMHpVZTPimWJY2W_JnfdKIdR2djGrc,8545
41
- kiln_ai/adapters/model_adapters/__init__.py,sha256=m5GRtOHwVVvp_XDOss8c1X3NFf1wQQlC2eBgI4tXQhM,212
42
- kiln_ai/adapters/model_adapters/base_adapter.py,sha256=ishm_oVTNxSDC0GPrydHnyOPqp_U4XiTOx0-iI2fEiU,10433
43
- kiln_ai/adapters/model_adapters/litellm_adapter.py,sha256=pbXFfJckyvptp577-YXGMG2hltYMFQrUT97PsSWa2KQ,16437
44
- kiln_ai/adapters/model_adapters/litellm_config.py,sha256=7-tIh5cuVu23Uy2Sd6q7UCT_4VgevBsAzVhQMj6Svgw,425
45
- kiln_ai/adapters/model_adapters/test_base_adapter.py,sha256=uQyKrHLN3Jha6R-6SWkEME6brQecVFdPTSXogo-xpt0,6556
46
- kiln_ai/adapters/model_adapters/test_litellm_adapter.py,sha256=QpnzuReNeBzvvRYnNj_5c8l1PS7NyrDDUQx_o21IIH4,13731
47
- kiln_ai/adapters/model_adapters/test_saving_adapter_results.py,sha256=1XFQQxdSIbqSoQEdxHOYJcY0cMb59qpTDPOmL9bW4B8,7870
48
- kiln_ai/adapters/model_adapters/test_structured_output.py,sha256=lHZSuPyvr--WCCEIik5OFqfvufmooPBbbUlSMUVvqmE,12516
49
- kiln_ai/adapters/parsers/__init__.py,sha256=TGJS_8JhjUwg5Bnq4cDmwt5eIRo4vowmcL2A72L1Hzk,202
50
- kiln_ai/adapters/parsers/base_parser.py,sha256=DaoZVEOOuFTMZd5ZTpl_as6-xc9NPWGP2fAmP12J58M,389
51
- kiln_ai/adapters/parsers/json_parser.py,sha256=IszrBrhIFrrVr76UZsuejkBdqpZG27mU72264HVgVzE,1274
52
- kiln_ai/adapters/parsers/parser_registry.py,sha256=G9bAZrnWrR0a82JAQHsSqA2o7-CjrZUBANZljY_6ZxE,623
53
- kiln_ai/adapters/parsers/r1_parser.py,sha256=XHc_dKxiQjj8wG1w__rTmJVqa4fIg5L1g-igbv5Rl_g,2965
54
- kiln_ai/adapters/parsers/test_json_parser.py,sha256=9kdWe_vRC5wjP8A1Ym6Zu6enDIz4ARCNiRpcZr7_3ak,1971
55
- kiln_ai/adapters/parsers/test_parser_registry.py,sha256=S4MdX7cnhCbmeKq8tZwMwRdGWr-019Z-fw5zey9Wm08,1043
56
- kiln_ai/adapters/parsers/test_r1_parser.py,sha256=VvCT_qCAfIbutFsxnpEzyZg-m5XLg7hI-Sorh2PplYw,4898
57
- kiln_ai/adapters/repair/__init__.py,sha256=dOO9MEpEhjiwzDVFg3MNfA2bKMPlax9iekDatpTkX8E,217
58
- kiln_ai/adapters/repair/repair_task.py,sha256=iW0bHWQq6Tir6ULTATWFS0zpwNji8Tbwhm2lZu52RsM,3342
59
- kiln_ai/adapters/repair/test_repair_task.py,sha256=2jO0_aDPzbmZHC0skZBcKp3t9K4gISko3iSGCFHhQRs,7945
60
- kiln_ai/datamodel/__init__.py,sha256=GbRfDrdSq9d_-HxzmFIicTmLO3qz-O3XGvSwDPh3XCk,1957
61
- kiln_ai/datamodel/basemodel.py,sha256=Qsr3Kxq5B5rfPZxQFrfOMTGwInnfYy5srd8nK0nwOs0,22204
62
- kiln_ai/datamodel/datamodel_enums.py,sha256=HUnGI_ZGQqyOicqEFFutZRWSANlQRQwfBu3XhVQFQSc,2270
63
- kiln_ai/datamodel/dataset_filters.py,sha256=hWKxGJ-mSl4y0igyNcpmRoRYCiGrf0_uN4MMU9Fe_ng,3180
64
- kiln_ai/datamodel/dataset_split.py,sha256=q4l4SlUvjLV547bzk7Z-fbmj_o26GDcYOZ2rA5RPh3c,5612
65
- kiln_ai/datamodel/eval.py,sha256=kio2LqQ87MsP75DJTiIVdVfopTZXH4xjGN9g11V1mUU,13826
66
- kiln_ai/datamodel/finetune.py,sha256=TYoNVRAfbjqvrY-1YmHwG6xSoDljiJWuuVcTbvQAJL4,4569
67
- kiln_ai/datamodel/json_schema.py,sha256=o50wSp8frRXjT-NZjml4-Is7LNoF7DQP4g3AaaYzBfI,3379
68
- kiln_ai/datamodel/model_cache.py,sha256=9X4aAigbkFdytckgw8InCMh86uBna0ME_1HJSeMPEn0,4495
69
- kiln_ai/datamodel/project.py,sha256=uVH2_3TDFtsG_tpts81A-zbd9uPDFxAwMCKZt_km3IE,727
70
- kiln_ai/datamodel/prompt.py,sha256=70JPYHfgyX18cHW_DXoMzIOA28Jbaz6gyabElmpycyc,1161
71
- kiln_ai/datamodel/prompt_id.py,sha256=eU2TV0RZapn-BgnZ4sOSNOOVEQ3aPaLzW4YSYCd3OBo,2531
72
- kiln_ai/datamodel/registry.py,sha256=XwGFXJFKZtOpR1Z9ven6SftggfADdZRm8TFxCEVtfUQ,957
73
- kiln_ai/datamodel/strict_mode.py,sha256=sm4Xka8mnJHCShtbh6MMU5dDQv-cLj8lHgHkmFKpsl0,849
74
- kiln_ai/datamodel/task.py,sha256=r-_zgrQCIiIkN8gvBISdU449Z9oKp7E1XL0lkik_rVI,7036
75
- kiln_ai/datamodel/task_output.py,sha256=PqI7Lyeox5lh9mItMOtpqP9Rk_K9dyMltKYu1c2p7A4,13125
76
- kiln_ai/datamodel/task_run.py,sha256=mVKmHn90iPmwXGja7TNgDA3iFzXBlamJ_6KndRPkhRA,7745
77
- kiln_ai/datamodel/test_basemodel.py,sha256=sJ8wXGef2WxzbrbMTYgrOwmkd5J6sHkly-cQBO2IZh4,18126
78
- kiln_ai/datamodel/test_dataset_filters.py,sha256=v88QPkIsq4diUmoUF3-qj5KAW2rLRp0KDAm_pexbFy4,1894
79
- kiln_ai/datamodel/test_dataset_split.py,sha256=5CHO1Lq4xQBB72tV2SPER7OZODJNvj15qxi_cYBV2Rs,11157
80
- kiln_ai/datamodel/test_datasource.py,sha256=H4Kc-Im9eM7WnADWZXdoiOIrOl05RtkyuhTCKiRimyU,3905
81
- kiln_ai/datamodel/test_eval_model.py,sha256=J7MqwWBgPpeXGqh3IacVUUHdZFJSZ2MgTsUNu-hNOJw,19528
82
- kiln_ai/datamodel/test_example_models.py,sha256=nrr13ZseFn-OVGa9bjCwoVHTVqydy0O0yJah4QiqqbU,24326
83
- kiln_ai/datamodel/test_json_schema.py,sha256=R0Cfc9WbieMslgvYsj2HFx8RHIq2fF9NcT5jH-kEqh4,4793
84
- kiln_ai/datamodel/test_model_cache.py,sha256=Fy-ucYNzS5JEG-8SFY4nVHA8iRbXXxai20f8_oGl97o,8184
85
- kiln_ai/datamodel/test_model_perf.py,sha256=9_76f__5XtZSHSjuaoiHRj2t-z3OWn-sSA4S9kH1jpY,3306
86
- kiln_ai/datamodel/test_models.py,sha256=hmV7sTbOamWJCwOY96w-g4PQRv4Uai-XaHtg0QKH-ak,19295
87
- kiln_ai/datamodel/test_nested_save.py,sha256=xciCddqvPyKyoyjC5Lx_3Kh1t4LJv1xYRAPazR3SRcs,5588
88
- kiln_ai/datamodel/test_output_rating.py,sha256=zvPIp2shAgCs2RQBgwYoL09fRA3krHvgAqUa91RlWR0,15125
89
- kiln_ai/datamodel/test_prompt_id.py,sha256=ihyXVPQi0dSLGnBM7rTXRnVaiWXhh7HJmSy4nZZKmso,4225
90
- kiln_ai/datamodel/test_registry.py,sha256=PhS4anLi5Bf_023obuTlO5DALhtPB8WIc_bX12Yg6Po,2705
91
- kiln_ai/datamodel/test_task.py,sha256=FYyoEqJXQIy8rcBsLTdki4-1z9COnZQk1-aoS3ZoNuU,5307
92
- kiln_ai/utils/__init__.py,sha256=PTD0MwBCKAMIOGsTAwsFaJOusTJJoRFTfOGqRvCaU-E,142
93
- kiln_ai/utils/config.py,sha256=kAgb_4nSnb-IWbLVS4FBygYmnHypJADjDEk_Fh-eLeg,8479
94
- kiln_ai/utils/dataset_import.py,sha256=HvTCdK9OO8WE3Runn8_Vsks5KpCTckGIzAA7JKe-cWI,6956
95
- kiln_ai/utils/exhaustive_error.py,sha256=TkkRixIAR3CPEKHeAJzyv0mtxp6BxUBKMvobA3vzQug,262
96
- kiln_ai/utils/formatting.py,sha256=VtB9oag0lOGv17dwT7OPX_3HzBfaU9GsLH-iLete0yM,97
97
- kiln_ai/utils/name_generator.py,sha256=v26TgpCwQbhQFcZvzgjZvURinjrOyyFhxpsI6NQrHKc,1914
98
- kiln_ai/utils/test_config.py,sha256=Jw3nMFeIgZUsZDRJJY2HpB-2EkR2NoZ-rDe_o9oA7ws,9174
99
- kiln_ai/utils/test_dataset_import.py,sha256=ZZOt7zqtaEIlMMx0VNXyRegDvnVqbWY2bcz-iMY_Oag,17427
100
- kiln_ai/utils/test_name_geneator.py,sha256=9-hSTBshyakqlPbFnNcggwLrL7lcPTitauBYHg9jFWI,1513
101
- kiln_ai-0.15.0.dist-info/METADATA,sha256=80EooOjbu5b-7YgyfnOY9uYjFk8bo5czNWm3QgWaFys,12263
102
- kiln_ai-0.15.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
103
- kiln_ai-0.15.0.dist-info/licenses/LICENSE.txt,sha256=_NA5pnTYgRRr4qH6lE3X-TuZJ8iRcMUi5ASoGr-lEx8,1209
104
- kiln_ai-0.15.0.dist-info/RECORD,,