kiln-ai 0.14.0__py3-none-any.whl → 0.16.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.
- kiln_ai/adapters/eval/base_eval.py +7 -2
- kiln_ai/adapters/eval/eval_runner.py +5 -64
- kiln_ai/adapters/eval/g_eval.py +3 -3
- kiln_ai/adapters/fine_tune/base_finetune.py +6 -3
- kiln_ai/adapters/fine_tune/dataset_formatter.py +128 -38
- kiln_ai/adapters/fine_tune/finetune_registry.py +2 -0
- kiln_ai/adapters/fine_tune/fireworks_finetune.py +2 -1
- kiln_ai/adapters/fine_tune/test_base_finetune.py +7 -0
- kiln_ai/adapters/fine_tune/test_dataset_formatter.py +267 -10
- kiln_ai/adapters/fine_tune/test_fireworks_tinetune.py +1 -1
- kiln_ai/adapters/fine_tune/test_vertex_finetune.py +586 -0
- kiln_ai/adapters/fine_tune/vertex_finetune.py +217 -0
- kiln_ai/adapters/ml_model_list.py +817 -62
- kiln_ai/adapters/model_adapters/base_adapter.py +33 -10
- kiln_ai/adapters/model_adapters/litellm_adapter.py +51 -12
- kiln_ai/adapters/model_adapters/test_base_adapter.py +74 -2
- kiln_ai/adapters/model_adapters/test_litellm_adapter.py +65 -1
- kiln_ai/adapters/model_adapters/test_saving_adapter_results.py +3 -2
- kiln_ai/adapters/model_adapters/test_structured_output.py +4 -6
- kiln_ai/adapters/parsers/base_parser.py +0 -3
- kiln_ai/adapters/parsers/parser_registry.py +5 -3
- kiln_ai/adapters/parsers/r1_parser.py +17 -2
- kiln_ai/adapters/parsers/request_formatters.py +40 -0
- kiln_ai/adapters/parsers/test_parser_registry.py +2 -2
- kiln_ai/adapters/parsers/test_r1_parser.py +44 -1
- kiln_ai/adapters/parsers/test_request_formatters.py +76 -0
- kiln_ai/adapters/prompt_builders.py +14 -1
- kiln_ai/adapters/provider_tools.py +25 -1
- kiln_ai/adapters/repair/test_repair_task.py +3 -2
- kiln_ai/adapters/test_prompt_builders.py +24 -3
- kiln_ai/adapters/test_provider_tools.py +86 -1
- kiln_ai/datamodel/__init__.py +2 -0
- kiln_ai/datamodel/datamodel_enums.py +14 -0
- kiln_ai/datamodel/dataset_filters.py +69 -1
- kiln_ai/datamodel/dataset_split.py +4 -0
- kiln_ai/datamodel/eval.py +8 -0
- kiln_ai/datamodel/finetune.py +1 -0
- kiln_ai/datamodel/json_schema.py +24 -7
- kiln_ai/datamodel/prompt_id.py +1 -0
- kiln_ai/datamodel/task_output.py +10 -6
- kiln_ai/datamodel/task_run.py +68 -12
- kiln_ai/datamodel/test_basemodel.py +3 -7
- kiln_ai/datamodel/test_dataset_filters.py +82 -0
- kiln_ai/datamodel/test_dataset_split.py +2 -0
- kiln_ai/datamodel/test_example_models.py +158 -3
- kiln_ai/datamodel/test_json_schema.py +22 -3
- kiln_ai/datamodel/test_model_perf.py +3 -2
- kiln_ai/datamodel/test_models.py +50 -2
- kiln_ai/utils/async_job_runner.py +106 -0
- kiln_ai/utils/dataset_import.py +80 -18
- kiln_ai/utils/test_async_job_runner.py +199 -0
- kiln_ai/utils/test_dataset_import.py +242 -10
- {kiln_ai-0.14.0.dist-info → kiln_ai-0.16.0.dist-info}/METADATA +3 -2
- kiln_ai-0.16.0.dist-info/RECORD +108 -0
- kiln_ai/adapters/test_generate_docs.py +0 -69
- kiln_ai-0.14.0.dist-info/RECORD +0 -103
- {kiln_ai-0.14.0.dist-info → kiln_ai-0.16.0.dist-info}/WHEEL +0 -0
- {kiln_ai-0.14.0.dist-info → kiln_ai-0.16.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
|
|
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
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
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
|
-
|
|
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
|
|
|
@@ -594,3 +607,222 @@ def test_format_validation_error():
|
|
|
594
607
|
|
|
595
608
|
def test_generate_import_tags():
|
|
596
609
|
assert generate_import_tags("123") == ["imported", "imported_123"]
|
|
610
|
+
|
|
611
|
+
|
|
612
|
+
def test_add_tag_splits(base_task: Task):
|
|
613
|
+
"""Test that tag splits are assigned correctly with exact proportions."""
|
|
614
|
+
# Create some test runs
|
|
615
|
+
runs = []
|
|
616
|
+
for i in range(10):
|
|
617
|
+
run = TaskRun(
|
|
618
|
+
parent=base_task,
|
|
619
|
+
input=f"input {i}",
|
|
620
|
+
input_source=DataSource(
|
|
621
|
+
type=DataSourceType.file_import,
|
|
622
|
+
properties={"file_name": "test.csv"},
|
|
623
|
+
),
|
|
624
|
+
output=TaskOutput(
|
|
625
|
+
output=f"output {i}",
|
|
626
|
+
source=DataSource(
|
|
627
|
+
type=DataSourceType.file_import,
|
|
628
|
+
properties={"file_name": "test.csv"},
|
|
629
|
+
),
|
|
630
|
+
),
|
|
631
|
+
)
|
|
632
|
+
runs.append(run)
|
|
633
|
+
|
|
634
|
+
# Test with 70/30 split
|
|
635
|
+
tag_splits = {"train": 0.7, "test": 0.3}
|
|
636
|
+
add_tag_splits(runs, tag_splits)
|
|
637
|
+
|
|
638
|
+
# Count the tags
|
|
639
|
+
train_count = sum(1 for run in runs if "train" in run.tags)
|
|
640
|
+
test_count = sum(1 for run in runs if "test" in run.tags)
|
|
641
|
+
|
|
642
|
+
# With 10 runs, we should get exactly 7 train and 3 test
|
|
643
|
+
assert train_count == 7
|
|
644
|
+
assert test_count == 3
|
|
645
|
+
assert len(runs) == train_count + test_count
|
|
646
|
+
|
|
647
|
+
|
|
648
|
+
def test_add_tag_splits_rounding(base_task: Task):
|
|
649
|
+
"""Test that tag splits handle rounding correctly."""
|
|
650
|
+
# Test a 33/33/34 split
|
|
651
|
+
runs = []
|
|
652
|
+
for i in range(34):
|
|
653
|
+
run = TaskRun(
|
|
654
|
+
parent=base_task,
|
|
655
|
+
input=f"input {i}",
|
|
656
|
+
input_source=DataSource(
|
|
657
|
+
type=DataSourceType.file_import,
|
|
658
|
+
properties={"file_name": "test.csv"},
|
|
659
|
+
),
|
|
660
|
+
output=TaskOutput(
|
|
661
|
+
output=f"output {i}",
|
|
662
|
+
source=DataSource(
|
|
663
|
+
type=DataSourceType.file_import,
|
|
664
|
+
properties={"file_name": "test.csv"},
|
|
665
|
+
),
|
|
666
|
+
),
|
|
667
|
+
)
|
|
668
|
+
runs.append(run)
|
|
669
|
+
|
|
670
|
+
# Test with three equal splits
|
|
671
|
+
tag_splits = {"train": 0.33, "val": 0.33, "test": 0.34}
|
|
672
|
+
add_tag_splits(runs, tag_splits)
|
|
673
|
+
|
|
674
|
+
# Count the tags
|
|
675
|
+
train_count = sum(1 for run in runs if "train" in run.tags)
|
|
676
|
+
val_count = sum(1 for run in runs if "val" in run.tags)
|
|
677
|
+
test_count = sum(1 for run in runs if "test" in run.tags)
|
|
678
|
+
|
|
679
|
+
# Should have one of each
|
|
680
|
+
assert train_count in [11, 12]
|
|
681
|
+
assert val_count in [11, 12]
|
|
682
|
+
assert test_count in [11, 12]
|
|
683
|
+
assert len(runs) == train_count + val_count + test_count
|
|
684
|
+
|
|
685
|
+
|
|
686
|
+
def test_add_tag_splits_none(base_task: Task):
|
|
687
|
+
"""Test that None tag_splits is handled correctly."""
|
|
688
|
+
runs = []
|
|
689
|
+
for i in range(5):
|
|
690
|
+
run = TaskRun(
|
|
691
|
+
parent=base_task,
|
|
692
|
+
input=f"input {i}",
|
|
693
|
+
input_source=DataSource(
|
|
694
|
+
type=DataSourceType.file_import,
|
|
695
|
+
properties={"file_name": "test.csv"},
|
|
696
|
+
),
|
|
697
|
+
output=TaskOutput(
|
|
698
|
+
output=f"output {i}",
|
|
699
|
+
source=DataSource(
|
|
700
|
+
type=DataSourceType.file_import,
|
|
701
|
+
properties={"file_name": "test.csv"},
|
|
702
|
+
),
|
|
703
|
+
),
|
|
704
|
+
)
|
|
705
|
+
runs.append(run)
|
|
706
|
+
|
|
707
|
+
# Should not modify any tags
|
|
708
|
+
original_tags = [run.tags.copy() for run in runs]
|
|
709
|
+
add_tag_splits(runs, None)
|
|
710
|
+
for run, original in zip(runs, original_tags):
|
|
711
|
+
assert run.tags == original
|
|
712
|
+
|
|
713
|
+
|
|
714
|
+
def test_add_tag_splits_randomness(base_task: Task):
|
|
715
|
+
"""Test that tag assignment is random but maintains proportions."""
|
|
716
|
+
# Create 100 runs for better statistical significance
|
|
717
|
+
runs = []
|
|
718
|
+
for i in range(100):
|
|
719
|
+
run = TaskRun(
|
|
720
|
+
parent=base_task,
|
|
721
|
+
input=f"input {i}",
|
|
722
|
+
input_source=DataSource(
|
|
723
|
+
type=DataSourceType.file_import,
|
|
724
|
+
properties={"file_name": "test.csv"},
|
|
725
|
+
),
|
|
726
|
+
output=TaskOutput(
|
|
727
|
+
output=f"output {i}",
|
|
728
|
+
source=DataSource(
|
|
729
|
+
type=DataSourceType.file_import,
|
|
730
|
+
properties={"file_name": "test.csv"},
|
|
731
|
+
),
|
|
732
|
+
),
|
|
733
|
+
)
|
|
734
|
+
runs.append(run)
|
|
735
|
+
|
|
736
|
+
# Test with 60/40 split
|
|
737
|
+
tag_splits = {"train": 0.6, "test": 0.4}
|
|
738
|
+
add_tag_splits(runs, tag_splits)
|
|
739
|
+
|
|
740
|
+
# Count the tags
|
|
741
|
+
train_count = sum(1 for run in runs if "train" in run.tags)
|
|
742
|
+
test_count = sum(1 for run in runs if "test" in run.tags)
|
|
743
|
+
|
|
744
|
+
# Should have exactly 60 train and 40 test
|
|
745
|
+
assert train_count == 60
|
|
746
|
+
assert test_count == 40
|
|
747
|
+
assert len(runs) == train_count + test_count
|
|
748
|
+
|
|
749
|
+
# Check that the assignment is not just sequential
|
|
750
|
+
# by looking at the first few runs
|
|
751
|
+
first_few_runs = runs[:35]
|
|
752
|
+
train_tags = sum(1 for run in first_few_runs if "train" in run.tags)
|
|
753
|
+
test_tags = sum(1 for run in first_few_runs if "test" in run.tags)
|
|
754
|
+
|
|
755
|
+
# If assignment was sequential, we'd expect all first 35 to be train
|
|
756
|
+
# This test might occasionally fail if we get unlucky with random assignment
|
|
757
|
+
# but it's very unlikely
|
|
758
|
+
assert train_tags < 35
|
|
759
|
+
assert test_tags > 0
|
|
760
|
+
|
|
761
|
+
|
|
762
|
+
def test_validate_tag_splits():
|
|
763
|
+
"""Test that validate_tag_splits correctly validates tag split proportions."""
|
|
764
|
+
# Test valid splits
|
|
765
|
+
config = ImportConfig(
|
|
766
|
+
dataset_type=DatasetImportFormat.CSV,
|
|
767
|
+
dataset_path="test.csv",
|
|
768
|
+
dataset_name="test.csv",
|
|
769
|
+
tag_splits={"train": 0.7, "test": 0.3},
|
|
770
|
+
)
|
|
771
|
+
config.validate_tag_splits() # Should not raise
|
|
772
|
+
|
|
773
|
+
# Test valid splits with small floating point errors
|
|
774
|
+
config = ImportConfig(
|
|
775
|
+
dataset_type=DatasetImportFormat.CSV,
|
|
776
|
+
dataset_path="test.csv",
|
|
777
|
+
dataset_name="test.csv",
|
|
778
|
+
tag_splits={"train": 0.7, "test": 0.3000001},
|
|
779
|
+
)
|
|
780
|
+
config.validate_tag_splits() # Should not raise
|
|
781
|
+
|
|
782
|
+
# Test invalid splits that don't sum to 1
|
|
783
|
+
config = ImportConfig(
|
|
784
|
+
dataset_type=DatasetImportFormat.CSV,
|
|
785
|
+
dataset_path="test.csv",
|
|
786
|
+
dataset_name="test.csv",
|
|
787
|
+
tag_splits={"train": 0.7, "test": 0.4},
|
|
788
|
+
)
|
|
789
|
+
with pytest.raises(ValueError) as e:
|
|
790
|
+
config.validate_tag_splits()
|
|
791
|
+
assert "Splits must sum to 1" in str(e.value)
|
|
792
|
+
|
|
793
|
+
# Test None tag_splits
|
|
794
|
+
config = ImportConfig(
|
|
795
|
+
dataset_type=DatasetImportFormat.CSV,
|
|
796
|
+
dataset_path="test.csv",
|
|
797
|
+
dataset_name="test.csv",
|
|
798
|
+
tag_splits=None,
|
|
799
|
+
)
|
|
800
|
+
config.validate_tag_splits() # Should not raise
|
|
801
|
+
|
|
802
|
+
|
|
803
|
+
def test_dataset_file_importer_validates_tag_splits(base_task: Task, tmp_path):
|
|
804
|
+
"""Test that DatasetFileImporter validates tag splits on initialization."""
|
|
805
|
+
# Test with invalid splits
|
|
806
|
+
with pytest.raises(ValueError) as e:
|
|
807
|
+
DatasetFileImporter(
|
|
808
|
+
base_task,
|
|
809
|
+
ImportConfig(
|
|
810
|
+
dataset_type=DatasetImportFormat.CSV,
|
|
811
|
+
dataset_path="test.csv",
|
|
812
|
+
dataset_name="test.csv",
|
|
813
|
+
tag_splits={"train": 0.7, "test": 0.4}, # Sums to 1.1
|
|
814
|
+
),
|
|
815
|
+
)
|
|
816
|
+
assert "Splits must sum to 1" in str(e.value)
|
|
817
|
+
|
|
818
|
+
# Test with valid splits
|
|
819
|
+
importer = DatasetFileImporter(
|
|
820
|
+
base_task,
|
|
821
|
+
ImportConfig(
|
|
822
|
+
dataset_type=DatasetImportFormat.CSV,
|
|
823
|
+
dataset_path="test.csv",
|
|
824
|
+
dataset_name="test.csv",
|
|
825
|
+
tag_splits={"train": 0.7, "test": 0.3},
|
|
826
|
+
),
|
|
827
|
+
)
|
|
828
|
+
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.
|
|
3
|
+
Version: 0.16.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
|
|
@@ -19,7 +19,7 @@ Requires-Dist: boto3>=1.37.10
|
|
|
19
19
|
Requires-Dist: coverage>=7.6.4
|
|
20
20
|
Requires-Dist: google-cloud-aiplatform>=1.84.0
|
|
21
21
|
Requires-Dist: jsonschema>=4.23.0
|
|
22
|
-
Requires-Dist: litellm>=1.
|
|
22
|
+
Requires-Dist: litellm>=1.67.0
|
|
23
23
|
Requires-Dist: openai>=1.53.0
|
|
24
24
|
Requires-Dist: pdoc>=15.0.0
|
|
25
25
|
Requires-Dist: pydantic>=2.9.2
|
|
@@ -28,6 +28,7 @@ Requires-Dist: pytest-cov>=6.0.0
|
|
|
28
28
|
Requires-Dist: pyyaml>=6.0.2
|
|
29
29
|
Requires-Dist: together
|
|
30
30
|
Requires-Dist: typing-extensions>=4.12.2
|
|
31
|
+
Requires-Dist: vertexai>=1.43.0
|
|
31
32
|
Description-Content-Type: text/markdown
|
|
32
33
|
|
|
33
34
|
# Kiln AI Core Library
|
|
@@ -0,0 +1,108 @@
|
|
|
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=DOl3kULrWOUwqEdOaKHk_LEPgnFhxLjcubpLk9Norek,87307
|
|
5
|
+
kiln_ai/adapters/ollama_tools.py,sha256=uObtLWfqKb9RXHN-TGGw2Y1FQlEMe0u8FgszI0zQn6U,3550
|
|
6
|
+
kiln_ai/adapters/prompt_builders.py,sha256=Af4u0Oco0SfErBUGP7ujIu_qTK27d9VnOLumz2eqCmU,15639
|
|
7
|
+
kiln_ai/adapters/provider_tools.py,sha256=7NjkxGD58P9s0NEbWDY2yToE2dTthlObU7qS_4oA4b4,15900
|
|
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=ZwSpKjI0DFVZwmwdbBkooWVCwmwo6UAXsz4X9TyFtyw,22965
|
|
13
|
+
kiln_ai/adapters/test_provider_tools.py,sha256=wdr9SUKt2dwapiYkIrbxbhtQ-vJLUP0PBn_ihIWXevc,30099
|
|
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=Wulelqb-qqcpjI33fgYhWiZhqFl7SqD0Q2o5xLEQQXQ,8729
|
|
21
|
+
kiln_ai/adapters/eval/g_eval.py,sha256=4r2J091Q67EvxZ0LA0iEqrGsKMF54Am071tbW05nBrA,15239
|
|
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=OCfU-hVR_pM9Y_rQCPjyq7sMR2f20A8gKfyh45AQN28,17931
|
|
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=cHeiUts5rNJooslAy8SlnUgSejT0WGGwgNl_3WYj7lI,32949
|
|
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=2CVGoKVfPSqiC9j0SdAPUj4HiFb8-io5zNG0IIKQtBc,10965
|
|
43
|
+
kiln_ai/adapters/model_adapters/litellm_adapter.py,sha256=ic4eLbmFZDcUNDTRNT6WQ1Qw_haf3ciu10cvzqcsg18,17791
|
|
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=E9XnCOJm9DNEPpt4otyMYn_AzK3WU4xVDRwxlSvPBI4,9007
|
|
46
|
+
kiln_ai/adapters/model_adapters/test_litellm_adapter.py,sha256=8koRwW3yxmECJamYeRc53g4dq0SwwCa0g2i6nt9xNXA,15896
|
|
47
|
+
kiln_ai/adapters/model_adapters/test_saving_adapter_results.py,sha256=XGainAeG3PkvmKhlHZG56POfiOjZ1Fl8pHvci_ouFiY,7907
|
|
48
|
+
kiln_ai/adapters/model_adapters/test_structured_output.py,sha256=Dqoy4zKi8rG0S3vbnpx1XBDHHj3oj-ayPY3xLpuVyU4,12457
|
|
49
|
+
kiln_ai/adapters/parsers/__init__.py,sha256=TGJS_8JhjUwg5Bnq4cDmwt5eIRo4vowmcL2A72L1Hzk,202
|
|
50
|
+
kiln_ai/adapters/parsers/base_parser.py,sha256=AE8UYCttmVXbilpICotnDdFYTFhGMiBJHrxIUgPTAWM,280
|
|
51
|
+
kiln_ai/adapters/parsers/json_parser.py,sha256=IszrBrhIFrrVr76UZsuejkBdqpZG27mU72264HVgVzE,1274
|
|
52
|
+
kiln_ai/adapters/parsers/parser_registry.py,sha256=Lna-uYHBigKeq9e-mUbNQKcsZM1M7cDvxu7Gv4ECjLI,735
|
|
53
|
+
kiln_ai/adapters/parsers/r1_parser.py,sha256=ucDRHPoFrmr1eOSNFEG0won6TPxkCKfGJQNNJng5qHA,3626
|
|
54
|
+
kiln_ai/adapters/parsers/request_formatters.py,sha256=NdZO8zcZy9tkea8JaD5c_OeoeVjoYYTG0GjwF812STw,1124
|
|
55
|
+
kiln_ai/adapters/parsers/test_json_parser.py,sha256=9kdWe_vRC5wjP8A1Ym6Zu6enDIz4ARCNiRpcZr7_3ak,1971
|
|
56
|
+
kiln_ai/adapters/parsers/test_parser_registry.py,sha256=FFJQgaKVu67yK4W7w_b26tuEYPPYGppfttJ0y5ctWUo,1041
|
|
57
|
+
kiln_ai/adapters/parsers/test_r1_parser.py,sha256=XbB0saThkcgOvoYNq3TxDgILUu5Me38yeKoQonqaN-g,6296
|
|
58
|
+
kiln_ai/adapters/parsers/test_request_formatters.py,sha256=t3FlKT_Tte2u8zXJTMl8VaE8IrSzumuBysahbGesrbU,2090
|
|
59
|
+
kiln_ai/adapters/repair/__init__.py,sha256=dOO9MEpEhjiwzDVFg3MNfA2bKMPlax9iekDatpTkX8E,217
|
|
60
|
+
kiln_ai/adapters/repair/repair_task.py,sha256=iW0bHWQq6Tir6ULTATWFS0zpwNji8Tbwhm2lZu52RsM,3342
|
|
61
|
+
kiln_ai/adapters/repair/test_repair_task.py,sha256=ZMoQcIpD_-O9lhtlMD6pN-VgzJURpMIZ-faVz1-taXs,7966
|
|
62
|
+
kiln_ai/datamodel/__init__.py,sha256=MCEPLNpNFNP0zCwQfDaM8yKs7stdtY8c7scf0pEtfdQ,1981
|
|
63
|
+
kiln_ai/datamodel/basemodel.py,sha256=Qsr3Kxq5B5rfPZxQFrfOMTGwInnfYy5srd8nK0nwOs0,22204
|
|
64
|
+
kiln_ai/datamodel/datamodel_enums.py,sha256=5ktCfKzNM2lHUFv-BUjrHj2GOtDoB4kd2E8Lh1giirk,2877
|
|
65
|
+
kiln_ai/datamodel/dataset_filters.py,sha256=zXS5QeCqWa1vAxs3Pyy5FJtySx9yYJzxsCMANd23-3c,5502
|
|
66
|
+
kiln_ai/datamodel/dataset_split.py,sha256=GDF3Pj3NLG42X8kjR606R_aN14rpqx8Ig56FG8NCn9k,5790
|
|
67
|
+
kiln_ai/datamodel/eval.py,sha256=larT3emjpLVYOSB2ga5GHTS4O7l9mJwtIO4EqCyYF7g,14214
|
|
68
|
+
kiln_ai/datamodel/finetune.py,sha256=XvwpYDNiqZEJeMzmc81jqG5ZSXR2hWcBOS6hXiZASu8,4599
|
|
69
|
+
kiln_ai/datamodel/json_schema.py,sha256=o50wSp8frRXjT-NZjml4-Is7LNoF7DQP4g3AaaYzBfI,3379
|
|
70
|
+
kiln_ai/datamodel/model_cache.py,sha256=9X4aAigbkFdytckgw8InCMh86uBna0ME_1HJSeMPEn0,4495
|
|
71
|
+
kiln_ai/datamodel/project.py,sha256=uVH2_3TDFtsG_tpts81A-zbd9uPDFxAwMCKZt_km3IE,727
|
|
72
|
+
kiln_ai/datamodel/prompt.py,sha256=70JPYHfgyX18cHW_DXoMzIOA28Jbaz6gyabElmpycyc,1161
|
|
73
|
+
kiln_ai/datamodel/prompt_id.py,sha256=S4Wcrt05USN-JrO8BeDlNYGrcoTOVocR3iUxBbgoq1c,2566
|
|
74
|
+
kiln_ai/datamodel/registry.py,sha256=XwGFXJFKZtOpR1Z9ven6SftggfADdZRm8TFxCEVtfUQ,957
|
|
75
|
+
kiln_ai/datamodel/strict_mode.py,sha256=sm4Xka8mnJHCShtbh6MMU5dDQv-cLj8lHgHkmFKpsl0,849
|
|
76
|
+
kiln_ai/datamodel/task.py,sha256=r-_zgrQCIiIkN8gvBISdU449Z9oKp7E1XL0lkik_rVI,7036
|
|
77
|
+
kiln_ai/datamodel/task_output.py,sha256=P7bRI-Qn2n7f8XpR7hwgSTKhx3gzvsZ1aJOQMl-YW4s,13245
|
|
78
|
+
kiln_ai/datamodel/task_run.py,sha256=0Lwc7zQoeWzuvHYv00lUGfsNQp8gCKmCVKAq3FDrruY,8806
|
|
79
|
+
kiln_ai/datamodel/test_basemodel.py,sha256=arzlXwtPi0H3BRTCILn7WkcBV9bFFAI87iiEs5BsWVA,17978
|
|
80
|
+
kiln_ai/datamodel/test_dataset_filters.py,sha256=TFHQZLB0rJxnxsFjD546eXVFxZNAJi0sPZ8j24wYd1w,5322
|
|
81
|
+
kiln_ai/datamodel/test_dataset_split.py,sha256=NdJ042JNq9A6JGaMt6LS19DMz1IiwcVCZpUHw0AqJrE,11253
|
|
82
|
+
kiln_ai/datamodel/test_datasource.py,sha256=H4Kc-Im9eM7WnADWZXdoiOIrOl05RtkyuhTCKiRimyU,3905
|
|
83
|
+
kiln_ai/datamodel/test_eval_model.py,sha256=J7MqwWBgPpeXGqh3IacVUUHdZFJSZ2MgTsUNu-hNOJw,19528
|
|
84
|
+
kiln_ai/datamodel/test_example_models.py,sha256=dwLAAOXLvdKupE5Q1m6VNcHtfdhpi2qWtoEbC0nfJg8,26156
|
|
85
|
+
kiln_ai/datamodel/test_json_schema.py,sha256=R0Cfc9WbieMslgvYsj2HFx8RHIq2fF9NcT5jH-kEqh4,4793
|
|
86
|
+
kiln_ai/datamodel/test_model_cache.py,sha256=Fy-ucYNzS5JEG-8SFY4nVHA8iRbXXxai20f8_oGl97o,8184
|
|
87
|
+
kiln_ai/datamodel/test_model_perf.py,sha256=9_76f__5XtZSHSjuaoiHRj2t-z3OWn-sSA4S9kH1jpY,3306
|
|
88
|
+
kiln_ai/datamodel/test_models.py,sha256=ZZZdhN6-uWDBfyVr7b7LZhDA7B2NIcPlNGfnb3HI7II,21084
|
|
89
|
+
kiln_ai/datamodel/test_nested_save.py,sha256=xciCddqvPyKyoyjC5Lx_3Kh1t4LJv1xYRAPazR3SRcs,5588
|
|
90
|
+
kiln_ai/datamodel/test_output_rating.py,sha256=zvPIp2shAgCs2RQBgwYoL09fRA3krHvgAqUa91RlWR0,15125
|
|
91
|
+
kiln_ai/datamodel/test_prompt_id.py,sha256=ihyXVPQi0dSLGnBM7rTXRnVaiWXhh7HJmSy4nZZKmso,4225
|
|
92
|
+
kiln_ai/datamodel/test_registry.py,sha256=PhS4anLi5Bf_023obuTlO5DALhtPB8WIc_bX12Yg6Po,2705
|
|
93
|
+
kiln_ai/datamodel/test_task.py,sha256=FYyoEqJXQIy8rcBsLTdki4-1z9COnZQk1-aoS3ZoNuU,5307
|
|
94
|
+
kiln_ai/utils/__init__.py,sha256=PTD0MwBCKAMIOGsTAwsFaJOusTJJoRFTfOGqRvCaU-E,142
|
|
95
|
+
kiln_ai/utils/async_job_runner.py,sha256=1gjoEq5yc2MOVjDo05O1wztguEuMC6l3haDZsltlvuw,3457
|
|
96
|
+
kiln_ai/utils/config.py,sha256=kAgb_4nSnb-IWbLVS4FBygYmnHypJADjDEk_Fh-eLeg,8479
|
|
97
|
+
kiln_ai/utils/dataset_import.py,sha256=zz8O4RniellZ0vPipeTUltWU7J7aCO018beD_cNHMb4,8993
|
|
98
|
+
kiln_ai/utils/exhaustive_error.py,sha256=TkkRixIAR3CPEKHeAJzyv0mtxp6BxUBKMvobA3vzQug,262
|
|
99
|
+
kiln_ai/utils/formatting.py,sha256=VtB9oag0lOGv17dwT7OPX_3HzBfaU9GsLH-iLete0yM,97
|
|
100
|
+
kiln_ai/utils/name_generator.py,sha256=v26TgpCwQbhQFcZvzgjZvURinjrOyyFhxpsI6NQrHKc,1914
|
|
101
|
+
kiln_ai/utils/test_async_job_runner.py,sha256=8AwPfOlR09qzfhVm-djpkmuoyHxJJ19QEzs0WV5KFSQ,6813
|
|
102
|
+
kiln_ai/utils/test_config.py,sha256=Jw3nMFeIgZUsZDRJJY2HpB-2EkR2NoZ-rDe_o9oA7ws,9174
|
|
103
|
+
kiln_ai/utils/test_dataset_import.py,sha256=WxyjquKod8szKNA2HYs7tNTn71Apg5G9MNI8GRWhAlI,24965
|
|
104
|
+
kiln_ai/utils/test_name_geneator.py,sha256=9-hSTBshyakqlPbFnNcggwLrL7lcPTitauBYHg9jFWI,1513
|
|
105
|
+
kiln_ai-0.16.0.dist-info/METADATA,sha256=9BCNdJP6PBasSKgtPdVZGdhQM-IGpJFHgJhezj9Lplw,12263
|
|
106
|
+
kiln_ai-0.16.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
107
|
+
kiln_ai-0.16.0.dist-info/licenses/LICENSE.txt,sha256=_NA5pnTYgRRr4qH6lE3X-TuZJ8iRcMUi5ASoGr-lEx8,1209
|
|
108
|
+
kiln_ai-0.16.0.dist-info/RECORD,,
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import logging
|
|
2
|
-
from typing import List
|
|
3
|
-
|
|
4
|
-
import pytest
|
|
5
|
-
|
|
6
|
-
from libs.core.kiln_ai.adapters.ml_model_list import KilnModelProvider, built_in_models
|
|
7
|
-
from libs.core.kiln_ai.adapters.provider_tools import provider_name_from_id
|
|
8
|
-
|
|
9
|
-
logger = logging.getLogger(__name__)
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
def _all_providers_support(providers: List[KilnModelProvider], attribute: str) -> bool:
|
|
13
|
-
"""Check if all providers support a given feature"""
|
|
14
|
-
return all(getattr(provider, attribute) for provider in providers)
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
def _any_providers_support(providers: List[KilnModelProvider], attribute: str) -> bool:
|
|
18
|
-
"""Check if any providers support a given feature"""
|
|
19
|
-
return any(getattr(provider, attribute) for provider in providers)
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
def _get_support_status(providers: List[KilnModelProvider], attribute: str) -> str:
|
|
23
|
-
"""Get the support status for a feature"""
|
|
24
|
-
if _all_providers_support(providers, attribute):
|
|
25
|
-
return "✅︎"
|
|
26
|
-
elif _any_providers_support(providers, attribute):
|
|
27
|
-
return "✅︎ (some providers)"
|
|
28
|
-
return ""
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
def _has_finetune_support(providers: List[KilnModelProvider]) -> str:
|
|
32
|
-
"""Check if any provider supports fine-tuning"""
|
|
33
|
-
return "✅︎" if any(p.provider_finetune_id for p in providers) else ""
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
@pytest.mark.paid(reason="Marking as paid so it isn't run by default")
|
|
37
|
-
def test_generate_model_table():
|
|
38
|
-
"""Generate a markdown table of all models and their capabilities"""
|
|
39
|
-
|
|
40
|
-
# Table header
|
|
41
|
-
table = [
|
|
42
|
-
"| Model Name | Providers | Structured Output | Reasoning | Synthetic Data | API Fine-Tuneable |",
|
|
43
|
-
"|------------|-----------|-------------------|-----------|----------------|-------------------|",
|
|
44
|
-
]
|
|
45
|
-
|
|
46
|
-
for model in built_in_models:
|
|
47
|
-
provider_names = ", ".join(
|
|
48
|
-
sorted(provider_name_from_id(p.name.value) for p in model.providers)
|
|
49
|
-
)
|
|
50
|
-
structured_output = _get_support_status(
|
|
51
|
-
model.providers, "supports_structured_output"
|
|
52
|
-
)
|
|
53
|
-
reasoning = _get_support_status(model.providers, "reasoning_capable")
|
|
54
|
-
data_gen = _get_support_status(model.providers, "supports_data_gen")
|
|
55
|
-
finetune = _has_finetune_support(model.providers)
|
|
56
|
-
|
|
57
|
-
row = f"| {model.friendly_name} | {provider_names} | {structured_output} | {reasoning} | {data_gen} | {finetune} |"
|
|
58
|
-
table.append(row)
|
|
59
|
-
|
|
60
|
-
# Print the table (useful for documentation)
|
|
61
|
-
print("\nModel Capability Matrix:\n")
|
|
62
|
-
print("\n".join(table))
|
|
63
|
-
|
|
64
|
-
# Basic assertions to ensure the table is well-formed
|
|
65
|
-
assert len(table) > 2, "Table should have header and at least one row"
|
|
66
|
-
assert all("|" in row for row in table), "All rows should be properly formatted"
|
|
67
|
-
assert len(table[0].split("|")) == len(table[1].split("|")), (
|
|
68
|
-
"Header and separator should have same number of columns"
|
|
69
|
-
)
|
kiln_ai-0.14.0.dist-info/RECORD
DELETED
|
@@ -1,103 +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=f_z1daFR_w4-ccJ4OWwqlIMY0ILFJt4X5LdQb3AMt_c,58592
|
|
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=UL3XEnnxs1TrbqPPxxHSvnL7aBd84ggh38lI0yEsX6A,14725
|
|
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_generate_docs.py,sha256=M-uKcgF3hQmlEFOJ0o7DyL-9RgitGzkfROV-Dxtooec,2770
|
|
11
|
-
kiln_ai/adapters/test_ollama_tools.py,sha256=xAUzL0IVmmXadVehJu1WjqbhpKEYGAgGt3pWx7hrubc,2514
|
|
12
|
-
kiln_ai/adapters/test_prompt_adaptors.py,sha256=J1ZGZ8GG7SxP3_J3Zw0e6XmZY4NyPmUGX3IPgjh2LD8,7767
|
|
13
|
-
kiln_ai/adapters/test_prompt_builders.py,sha256=5Xvfr-oQg_LLrle6UqfpRHWcPUYa8ywG3aL1rM7q1Jw,22054
|
|
14
|
-
kiln_ai/adapters/test_provider_tools.py,sha256=mzMubpUupQu8pXhjDTj0_Kgrr-xcu_crj9xpcgcAzzA,26671
|
|
15
|
-
kiln_ai/adapters/data_gen/__init__.py,sha256=QTZWaf7kq5BorhPvexJfwDEKmjRmIbhwW9ei8LW2SIs,276
|
|
16
|
-
kiln_ai/adapters/data_gen/data_gen_prompts.py,sha256=kudjHnAz7L3q0k_NLyTlaIV7M0uRFrxXNcfcnjOE2uc,5810
|
|
17
|
-
kiln_ai/adapters/data_gen/data_gen_task.py,sha256=0PuYCcj09BtpgNj23mKj_L45mKZBdV5VreUeZ-Tj_xM,6642
|
|
18
|
-
kiln_ai/adapters/data_gen/test_data_gen_task.py,sha256=cRKUKMvC0uVompbmPTKwbnQ_N3c0cQDm4J_9H4Y5U18,10129
|
|
19
|
-
kiln_ai/adapters/eval/__init__.py,sha256=0ptbK0ZxWuraxGn_WMgmE1tcaq0k5t-g-52kVohvWCg,693
|
|
20
|
-
kiln_ai/adapters/eval/base_eval.py,sha256=jVXMiVBC07ZnLEuZVAjUAYewsnuV99put39n_GZcG1M,7261
|
|
21
|
-
kiln_ai/adapters/eval/eval_runner.py,sha256=h3DvRFM5J5LDJqaLzNJ-q9i5LRycv2J9Ev5nw1mUDUQ,10806
|
|
22
|
-
kiln_ai/adapters/eval/g_eval.py,sha256=d3UcBsZWeDt7cWp4uvDcfG7qdGLsGaZEBsIEqkpiWh4,15253
|
|
23
|
-
kiln_ai/adapters/eval/registry.py,sha256=gZ_s0VgEx79Fswkgi1tS4yOl7lzpkvUBJZ62RldhM_w,626
|
|
24
|
-
kiln_ai/adapters/eval/test_base_eval.py,sha256=_1CiOUOiBt1R_gGYMcRblrPkHf-H4uIlvfcHj5-Wh7o,10724
|
|
25
|
-
kiln_ai/adapters/eval/test_eval_runner.py,sha256=82WPE_frNRTSQ2lylqT0inkqcDgM72nWt8GEuoDkJ7w,18568
|
|
26
|
-
kiln_ai/adapters/eval/test_g_eval.py,sha256=-Stx7E0D-WAH1HWrRSp48CiGsf-no1SHeFF9IqVXeMI,16433
|
|
27
|
-
kiln_ai/adapters/eval/test_g_eval_data.py,sha256=8caiZfLWnXVX8alrBPrH7L7gqqSS9vO7u6PzcHurQcA,27769
|
|
28
|
-
kiln_ai/adapters/fine_tune/__init__.py,sha256=DxdTR60chwgck1aEoVYWyfWi6Ed2ZkdJj0lar-SEAj4,257
|
|
29
|
-
kiln_ai/adapters/fine_tune/base_finetune.py,sha256=ORTclQTQYksMWPu7vNoD7wBzOIqNVK0YOwFEnvsKPWA,5759
|
|
30
|
-
kiln_ai/adapters/fine_tune/dataset_formatter.py,sha256=qRhSSkMhTWn13OMb6LKPVwAU7uY4bB49GDiVSuhDkNg,14449
|
|
31
|
-
kiln_ai/adapters/fine_tune/finetune_registry.py,sha256=CvcEVxtKwjgCMA-oYH9Tpjn1DVWmMzgHpXJOZ0YQA8k,610
|
|
32
|
-
kiln_ai/adapters/fine_tune/fireworks_finetune.py,sha256=OlXp8j6Afwvk6-ySwA3Q7iuqBlKO7VLeAfNCnB3pZPI,19963
|
|
33
|
-
kiln_ai/adapters/fine_tune/openai_finetune.py,sha256=Dz9E_0BWfrIkvv8ArZe-RKPwbIKPZ3v8rfbc3JELyTY,8571
|
|
34
|
-
kiln_ai/adapters/fine_tune/test_base_finetune.py,sha256=sjuDgJDA_dynGRelx9_wXdssaxAYIuEG-Z8NzRx9Hl0,10559
|
|
35
|
-
kiln_ai/adapters/fine_tune/test_dataset_formatter.py,sha256=T3jbFZooLVBaGCE0LUVxwPxzM3l8IY41zUj3jPk-Zi8,24027
|
|
36
|
-
kiln_ai/adapters/fine_tune/test_fireworks_tinetune.py,sha256=oLyLEG4TwW452lV2mvUo-wImLxzSwOuoKKeYFuGh3k8,36744
|
|
37
|
-
kiln_ai/adapters/fine_tune/test_openai_finetune.py,sha256=H63Xk2PNHbt5Ev5IQpdR9JZ4uz-Huo2gfuC4mHHqe0w,20011
|
|
38
|
-
kiln_ai/adapters/fine_tune/test_together_finetune.py,sha256=BUJFsyq_g77gU0JN3hg6FMBvqb0DIyTeAek-wxomKIg,18090
|
|
39
|
-
kiln_ai/adapters/fine_tune/together_finetune.py,sha256=EbMPsTyKMubfwOalkFLiNFlMFIRKxLibzMTyLeUkle4,14010
|
|
40
|
-
kiln_ai/adapters/model_adapters/__init__.py,sha256=m5GRtOHwVVvp_XDOss8c1X3NFf1wQQlC2eBgI4tXQhM,212
|
|
41
|
-
kiln_ai/adapters/model_adapters/base_adapter.py,sha256=ifPJMg0nEKamfOSmBIsnp_MRFfBs47FLeQrLbav34yA,9872
|
|
42
|
-
kiln_ai/adapters/model_adapters/litellm_adapter.py,sha256=c4J_tIpM96KWS2qzoPaQmBj7X7mHyRMShdkmEh7_EHM,16129
|
|
43
|
-
kiln_ai/adapters/model_adapters/litellm_config.py,sha256=7-tIh5cuVu23Uy2Sd6q7UCT_4VgevBsAzVhQMj6Svgw,425
|
|
44
|
-
kiln_ai/adapters/model_adapters/test_base_adapter.py,sha256=uQyKrHLN3Jha6R-6SWkEME6brQecVFdPTSXogo-xpt0,6556
|
|
45
|
-
kiln_ai/adapters/model_adapters/test_litellm_adapter.py,sha256=QpnzuReNeBzvvRYnNj_5c8l1PS7NyrDDUQx_o21IIH4,13731
|
|
46
|
-
kiln_ai/adapters/model_adapters/test_saving_adapter_results.py,sha256=1XFQQxdSIbqSoQEdxHOYJcY0cMb59qpTDPOmL9bW4B8,7870
|
|
47
|
-
kiln_ai/adapters/model_adapters/test_structured_output.py,sha256=lHZSuPyvr--WCCEIik5OFqfvufmooPBbbUlSMUVvqmE,12516
|
|
48
|
-
kiln_ai/adapters/parsers/__init__.py,sha256=TGJS_8JhjUwg5Bnq4cDmwt5eIRo4vowmcL2A72L1Hzk,202
|
|
49
|
-
kiln_ai/adapters/parsers/base_parser.py,sha256=DaoZVEOOuFTMZd5ZTpl_as6-xc9NPWGP2fAmP12J58M,389
|
|
50
|
-
kiln_ai/adapters/parsers/json_parser.py,sha256=IszrBrhIFrrVr76UZsuejkBdqpZG27mU72264HVgVzE,1274
|
|
51
|
-
kiln_ai/adapters/parsers/parser_registry.py,sha256=G9bAZrnWrR0a82JAQHsSqA2o7-CjrZUBANZljY_6ZxE,623
|
|
52
|
-
kiln_ai/adapters/parsers/r1_parser.py,sha256=XHc_dKxiQjj8wG1w__rTmJVqa4fIg5L1g-igbv5Rl_g,2965
|
|
53
|
-
kiln_ai/adapters/parsers/test_json_parser.py,sha256=9kdWe_vRC5wjP8A1Ym6Zu6enDIz4ARCNiRpcZr7_3ak,1971
|
|
54
|
-
kiln_ai/adapters/parsers/test_parser_registry.py,sha256=S4MdX7cnhCbmeKq8tZwMwRdGWr-019Z-fw5zey9Wm08,1043
|
|
55
|
-
kiln_ai/adapters/parsers/test_r1_parser.py,sha256=VvCT_qCAfIbutFsxnpEzyZg-m5XLg7hI-Sorh2PplYw,4898
|
|
56
|
-
kiln_ai/adapters/repair/__init__.py,sha256=dOO9MEpEhjiwzDVFg3MNfA2bKMPlax9iekDatpTkX8E,217
|
|
57
|
-
kiln_ai/adapters/repair/repair_task.py,sha256=iW0bHWQq6Tir6ULTATWFS0zpwNji8Tbwhm2lZu52RsM,3342
|
|
58
|
-
kiln_ai/adapters/repair/test_repair_task.py,sha256=2jO0_aDPzbmZHC0skZBcKp3t9K4gISko3iSGCFHhQRs,7945
|
|
59
|
-
kiln_ai/datamodel/__init__.py,sha256=GbRfDrdSq9d_-HxzmFIicTmLO3qz-O3XGvSwDPh3XCk,1957
|
|
60
|
-
kiln_ai/datamodel/basemodel.py,sha256=Qsr3Kxq5B5rfPZxQFrfOMTGwInnfYy5srd8nK0nwOs0,22204
|
|
61
|
-
kiln_ai/datamodel/datamodel_enums.py,sha256=HUnGI_ZGQqyOicqEFFutZRWSANlQRQwfBu3XhVQFQSc,2270
|
|
62
|
-
kiln_ai/datamodel/dataset_filters.py,sha256=hWKxGJ-mSl4y0igyNcpmRoRYCiGrf0_uN4MMU9Fe_ng,3180
|
|
63
|
-
kiln_ai/datamodel/dataset_split.py,sha256=q4l4SlUvjLV547bzk7Z-fbmj_o26GDcYOZ2rA5RPh3c,5612
|
|
64
|
-
kiln_ai/datamodel/eval.py,sha256=kio2LqQ87MsP75DJTiIVdVfopTZXH4xjGN9g11V1mUU,13826
|
|
65
|
-
kiln_ai/datamodel/finetune.py,sha256=TYoNVRAfbjqvrY-1YmHwG6xSoDljiJWuuVcTbvQAJL4,4569
|
|
66
|
-
kiln_ai/datamodel/json_schema.py,sha256=qIlR8btXhN-8Yj5GhwebzPLUHPw2sJC3uM1axV2xV7w,3032
|
|
67
|
-
kiln_ai/datamodel/model_cache.py,sha256=9X4aAigbkFdytckgw8InCMh86uBna0ME_1HJSeMPEn0,4495
|
|
68
|
-
kiln_ai/datamodel/project.py,sha256=uVH2_3TDFtsG_tpts81A-zbd9uPDFxAwMCKZt_km3IE,727
|
|
69
|
-
kiln_ai/datamodel/prompt.py,sha256=70JPYHfgyX18cHW_DXoMzIOA28Jbaz6gyabElmpycyc,1161
|
|
70
|
-
kiln_ai/datamodel/prompt_id.py,sha256=eU2TV0RZapn-BgnZ4sOSNOOVEQ3aPaLzW4YSYCd3OBo,2531
|
|
71
|
-
kiln_ai/datamodel/registry.py,sha256=XwGFXJFKZtOpR1Z9ven6SftggfADdZRm8TFxCEVtfUQ,957
|
|
72
|
-
kiln_ai/datamodel/strict_mode.py,sha256=sm4Xka8mnJHCShtbh6MMU5dDQv-cLj8lHgHkmFKpsl0,849
|
|
73
|
-
kiln_ai/datamodel/task.py,sha256=r-_zgrQCIiIkN8gvBISdU449Z9oKp7E1XL0lkik_rVI,7036
|
|
74
|
-
kiln_ai/datamodel/task_output.py,sha256=uIYR8EyWv8Bbl60gPRuTIUSvfGGzP9Ltc5P280HyTpY,12931
|
|
75
|
-
kiln_ai/datamodel/task_run.py,sha256=yquE0jyr_9WzcvrMsEmZfXUnn8zZDEZIXZhVcVBMrT8,7038
|
|
76
|
-
kiln_ai/datamodel/test_basemodel.py,sha256=sJ8wXGef2WxzbrbMTYgrOwmkd5J6sHkly-cQBO2IZh4,18126
|
|
77
|
-
kiln_ai/datamodel/test_dataset_filters.py,sha256=v88QPkIsq4diUmoUF3-qj5KAW2rLRp0KDAm_pexbFy4,1894
|
|
78
|
-
kiln_ai/datamodel/test_dataset_split.py,sha256=5CHO1Lq4xQBB72tV2SPER7OZODJNvj15qxi_cYBV2Rs,11157
|
|
79
|
-
kiln_ai/datamodel/test_datasource.py,sha256=H4Kc-Im9eM7WnADWZXdoiOIrOl05RtkyuhTCKiRimyU,3905
|
|
80
|
-
kiln_ai/datamodel/test_eval_model.py,sha256=J7MqwWBgPpeXGqh3IacVUUHdZFJSZ2MgTsUNu-hNOJw,19528
|
|
81
|
-
kiln_ai/datamodel/test_example_models.py,sha256=fpqh0u7zFhWHcRHgtxCjX8RD2oKHYOP_mJJymaUhEZU,20944
|
|
82
|
-
kiln_ai/datamodel/test_json_schema.py,sha256=UgKwAFcdrJTq2byh7Yf-HoSAtiHiGAsNZxfkIvoMxIg,3915
|
|
83
|
-
kiln_ai/datamodel/test_model_cache.py,sha256=Fy-ucYNzS5JEG-8SFY4nVHA8iRbXXxai20f8_oGl97o,8184
|
|
84
|
-
kiln_ai/datamodel/test_model_perf.py,sha256=NdD7L8XraGkunaEKGPsfYwdcbIgdjhFanOO3G6hU158,3235
|
|
85
|
-
kiln_ai/datamodel/test_models.py,sha256=hmV7sTbOamWJCwOY96w-g4PQRv4Uai-XaHtg0QKH-ak,19295
|
|
86
|
-
kiln_ai/datamodel/test_nested_save.py,sha256=xciCddqvPyKyoyjC5Lx_3Kh1t4LJv1xYRAPazR3SRcs,5588
|
|
87
|
-
kiln_ai/datamodel/test_output_rating.py,sha256=zvPIp2shAgCs2RQBgwYoL09fRA3krHvgAqUa91RlWR0,15125
|
|
88
|
-
kiln_ai/datamodel/test_prompt_id.py,sha256=ihyXVPQi0dSLGnBM7rTXRnVaiWXhh7HJmSy4nZZKmso,4225
|
|
89
|
-
kiln_ai/datamodel/test_registry.py,sha256=PhS4anLi5Bf_023obuTlO5DALhtPB8WIc_bX12Yg6Po,2705
|
|
90
|
-
kiln_ai/datamodel/test_task.py,sha256=FYyoEqJXQIy8rcBsLTdki4-1z9COnZQk1-aoS3ZoNuU,5307
|
|
91
|
-
kiln_ai/utils/__init__.py,sha256=PTD0MwBCKAMIOGsTAwsFaJOusTJJoRFTfOGqRvCaU-E,142
|
|
92
|
-
kiln_ai/utils/config.py,sha256=kAgb_4nSnb-IWbLVS4FBygYmnHypJADjDEk_Fh-eLeg,8479
|
|
93
|
-
kiln_ai/utils/dataset_import.py,sha256=HvTCdK9OO8WE3Runn8_Vsks5KpCTckGIzAA7JKe-cWI,6956
|
|
94
|
-
kiln_ai/utils/exhaustive_error.py,sha256=TkkRixIAR3CPEKHeAJzyv0mtxp6BxUBKMvobA3vzQug,262
|
|
95
|
-
kiln_ai/utils/formatting.py,sha256=VtB9oag0lOGv17dwT7OPX_3HzBfaU9GsLH-iLete0yM,97
|
|
96
|
-
kiln_ai/utils/name_generator.py,sha256=v26TgpCwQbhQFcZvzgjZvURinjrOyyFhxpsI6NQrHKc,1914
|
|
97
|
-
kiln_ai/utils/test_config.py,sha256=Jw3nMFeIgZUsZDRJJY2HpB-2EkR2NoZ-rDe_o9oA7ws,9174
|
|
98
|
-
kiln_ai/utils/test_dataset_import.py,sha256=ZZOt7zqtaEIlMMx0VNXyRegDvnVqbWY2bcz-iMY_Oag,17427
|
|
99
|
-
kiln_ai/utils/test_name_geneator.py,sha256=9-hSTBshyakqlPbFnNcggwLrL7lcPTitauBYHg9jFWI,1513
|
|
100
|
-
kiln_ai-0.14.0.dist-info/METADATA,sha256=EjgZOnknE7P9uW5BsIFJZYQAN-aUQ817SAEXjtqtjK0,12231
|
|
101
|
-
kiln_ai-0.14.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
102
|
-
kiln_ai-0.14.0.dist-info/licenses/LICENSE.txt,sha256=_NA5pnTYgRRr4qH6lE3X-TuZJ8iRcMUi5ASoGr-lEx8,1209
|
|
103
|
-
kiln_ai-0.14.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|