kiln-ai 0.12.0__tar.gz → 0.13.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of kiln-ai might be problematic. Click here for more details.
- kiln_ai-0.13.0/.python-version +1 -0
- kiln_ai-0.12.0/README.md → kiln_ai-0.13.0/PKG-INFO +77 -1
- kiln_ai-0.12.0/PKG-INFO → kiln_ai-0.13.0/README.md +45 -33
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/docs/kiln_core_docs/kiln_ai/adapters/data_gen/data_gen_task.html +60 -0
- kiln_ai-0.13.0/docs/kiln_core_docs/kiln_ai/adapters/eval/base_eval.html +908 -0
- kiln_ai-0.13.0/docs/kiln_core_docs/kiln_ai/adapters/eval/eval_runner.html +1442 -0
- kiln_ai-0.13.0/docs/kiln_core_docs/kiln_ai/adapters/eval/g_eval.html +1680 -0
- kiln_ai-0.13.0/docs/kiln_core_docs/kiln_ai/adapters/eval/registry.html +288 -0
- kiln_ai-0.12.0/docs/core_library_docs/kiln_ai/adapters.html → kiln_ai-0.13.0/docs/kiln_core_docs/kiln_ai/adapters/eval.html +49 -39
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/docs/kiln_core_docs/kiln_ai/adapters/fine_tune/base_finetune.html +510 -456
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/docs/kiln_core_docs/kiln_ai/adapters/fine_tune/dataset_formatter.html +27 -27
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/docs/kiln_core_docs/kiln_ai/adapters/fine_tune/finetune_registry.html +9 -7
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/docs/kiln_core_docs/kiln_ai/adapters/fine_tune/openai_finetune.html +1 -0
- kiln_ai-0.13.0/docs/kiln_core_docs/kiln_ai/adapters/ml_model_list.html +3674 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/docs/kiln_core_docs/kiln_ai/adapters/model_adapters/base_adapter.html +690 -670
- kiln_ai-0.13.0/docs/kiln_core_docs/kiln_ai/adapters/model_adapters/litellm_adapter.html +1467 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/docs/kiln_core_docs/kiln_ai/adapters/model_adapters.html +8 -11
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/docs/kiln_core_docs/kiln_ai/adapters/prompt_builders.html +1164 -919
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/docs/kiln_core_docs/kiln_ai/adapters/repair/repair_task.html +56 -80
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/docs/kiln_core_docs/kiln_ai/adapters.html +26 -19
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/docs/kiln_core_docs/kiln_ai/datamodel/dataset_split.html +372 -652
- kiln_ai-0.13.0/docs/kiln_core_docs/kiln_ai/datamodel/eval.html +2116 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/docs/kiln_core_docs/kiln_ai/datamodel.html +1210 -790
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/docs/kiln_core_docs/kiln_ai/utils/config.html +505 -359
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/docs/kiln_core_docs/kiln_ai.html +84 -0
- kiln_ai-0.13.0/docs/kiln_core_docs/search.js +46 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/__init__.py +4 -0
- kiln_ai-0.13.0/kiln_ai/adapters/adapter_registry.py +217 -0
- kiln_ai-0.13.0/kiln_ai/adapters/eval/__init__.py +28 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/eval/eval_runner.py +4 -1
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/eval/g_eval.py +2 -1
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/eval/test_base_eval.py +1 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/eval/test_eval_runner.py +1 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/eval/test_g_eval.py +1 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/fine_tune/base_finetune.py +16 -2
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/fine_tune/finetune_registry.py +2 -0
- kiln_ai-0.13.0/kiln_ai/adapters/fine_tune/test_together_finetune.py +531 -0
- kiln_ai-0.13.0/kiln_ai/adapters/fine_tune/together_finetune.py +325 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/ml_model_list.py +638 -155
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/model_adapters/__init__.py +2 -4
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/model_adapters/base_adapter.py +14 -11
- kiln_ai-0.13.0/kiln_ai/adapters/model_adapters/litellm_adapter.py +391 -0
- kiln_ai-0.13.0/kiln_ai/adapters/model_adapters/litellm_config.py +13 -0
- kiln_ai-0.13.0/kiln_ai/adapters/model_adapters/test_litellm_adapter.py +407 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/model_adapters/test_structured_output.py +23 -5
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/ollama_tools.py +3 -2
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/parsers/r1_parser.py +19 -14
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/parsers/test_r1_parser.py +17 -5
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/provider_tools.py +50 -58
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/repair/test_repair_task.py +3 -3
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/run_output.py +1 -1
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/test_adapter_registry.py +17 -20
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/test_generate_docs.py +2 -2
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/test_prompt_adaptors.py +30 -19
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/test_provider_tools.py +26 -81
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/datamodel/basemodel.py +2 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/datamodel/datamodel_enums.py +2 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/datamodel/json_schema.py +1 -1
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/datamodel/task_output.py +13 -6
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/datamodel/test_basemodel.py +9 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/datamodel/test_datasource.py +19 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/utils/config.py +37 -0
- kiln_ai-0.13.0/kiln_ai/utils/dataset_import.py +232 -0
- kiln_ai-0.13.0/kiln_ai/utils/test_dataset_import.py +596 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/pyproject.toml +6 -6
- kiln_ai-0.12.0/.python-version +0 -1
- kiln_ai-0.12.0/docs/core_library_docs/kiln_ai/adapters/base_adapter.html +0 -1070
- kiln_ai-0.12.0/docs/core_library_docs/kiln_ai/adapters/langchain_adapters.html +0 -650
- kiln_ai-0.12.0/docs/core_library_docs/kiln_ai/adapters/ml_model_list.html +0 -1783
- kiln_ai-0.12.0/docs/core_library_docs/kiln_ai/adapters/prompt_builders.html +0 -863
- kiln_ai-0.12.0/docs/core_library_docs/kiln_ai/adapters/repair/repair_task.html +0 -779
- kiln_ai-0.12.0/docs/core_library_docs/kiln_ai/adapters/repair.html +0 -261
- kiln_ai-0.12.0/docs/core_library_docs/kiln_ai/datamodel/basemodel.html +0 -1938
- kiln_ai-0.12.0/docs/core_library_docs/kiln_ai/datamodel/json_schema.html +0 -364
- kiln_ai-0.12.0/docs/core_library_docs/kiln_ai/datamodel.html +0 -3156
- kiln_ai-0.12.0/docs/core_library_docs/kiln_ai/utils/config.html +0 -967
- kiln_ai-0.12.0/docs/core_library_docs/kiln_ai/utils/formatting.html +0 -268
- kiln_ai-0.12.0/docs/core_library_docs/kiln_ai/utils.html +0 -261
- kiln_ai-0.12.0/docs/core_library_docs/kiln_ai.html +0 -270
- kiln_ai-0.12.0/docs/core_library_docs/search.js +0 -46
- kiln_ai-0.12.0/docs/kiln_core_docs/index.html +0 -7
- kiln_ai-0.12.0/docs/kiln_core_docs/kiln_ai/adapters/base_adapter.html +0 -1059
- kiln_ai-0.12.0/docs/kiln_core_docs/kiln_ai/adapters/fine_tune/dataset_split.html +0 -997
- kiln_ai-0.12.0/docs/kiln_core_docs/kiln_ai/adapters/langchain_adapters.html +0 -979
- kiln_ai-0.12.0/docs/kiln_core_docs/kiln_ai/adapters/ml_model_list.html +0 -2559
- kiln_ai-0.12.0/docs/kiln_core_docs/kiln_ai/adapters/model_adapters/langchain_adapters.html +0 -1129
- kiln_ai-0.12.0/docs/kiln_core_docs/kiln_ai/adapters/model_adapters/openai_model_adapter.html +0 -959
- kiln_ai-0.12.0/docs/kiln_core_docs/kiln_ai/datamodel/basemodel.html +0 -2527
- kiln_ai-0.12.0/docs/kiln_core_docs/kiln_ai/datamodel/json_schema.html +0 -446
- kiln_ai-0.12.0/docs/kiln_core_docs/search.js +0 -46
- kiln_ai-0.12.0/kiln_ai/adapters/adapter_registry.py +0 -92
- kiln_ai-0.12.0/kiln_ai/adapters/model_adapters/langchain_adapters.py +0 -309
- kiln_ai-0.12.0/kiln_ai/adapters/model_adapters/openai_compatible_config.py +0 -10
- kiln_ai-0.12.0/kiln_ai/adapters/model_adapters/openai_model_adapter.py +0 -289
- kiln_ai-0.12.0/kiln_ai/adapters/model_adapters/test_langchain_adapter.py +0 -343
- kiln_ai-0.12.0/kiln_ai/adapters/model_adapters/test_openai_model_adapter.py +0 -216
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/.gitignore +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/LICENSE.txt +0 -0
- {kiln_ai-0.12.0/docs/core_library_docs → kiln_ai-0.13.0/docs/kiln_core_docs}/index.html +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/docs/kiln_core_docs/kiln_ai/adapters/data_gen.html +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/docs/kiln_core_docs/kiln_ai/adapters/fine_tune.html +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/docs/kiln_core_docs/kiln_ai/adapters/repair.html +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/docs/kiln_core_docs/kiln_ai/datamodel/strict_mode.html +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/docs/kiln_core_docs/kiln_ai/utils/formatting.html +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/docs/kiln_core_docs/kiln_ai/utils.html +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/__init__.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/data_gen/__init__.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/data_gen/data_gen_prompts.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/data_gen/data_gen_task.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/data_gen/test_data_gen_task.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/eval/base_eval.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/eval/registry.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/eval/test_g_eval_data.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/fine_tune/__init__.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/fine_tune/dataset_formatter.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/fine_tune/fireworks_finetune.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/fine_tune/openai_finetune.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/fine_tune/test_base_finetune.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/fine_tune/test_dataset_formatter.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/fine_tune/test_fireworks_tinetune.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/fine_tune/test_openai_finetune.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/model_adapters/test_base_adapter.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/model_adapters/test_saving_adapter_results.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/parsers/__init__.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/parsers/base_parser.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/parsers/json_parser.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/parsers/parser_registry.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/parsers/test_json_parser.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/parsers/test_parser_registry.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/prompt_builders.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/repair/__init__.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/repair/repair_task.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/test_ollama_tools.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/adapters/test_prompt_builders.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/datamodel/__init__.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/datamodel/dataset_filters.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/datamodel/dataset_split.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/datamodel/eval.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/datamodel/finetune.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/datamodel/model_cache.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/datamodel/project.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/datamodel/prompt.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/datamodel/prompt_id.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/datamodel/registry.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/datamodel/strict_mode.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/datamodel/task.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/datamodel/task_run.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/datamodel/test_dataset_filters.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/datamodel/test_dataset_split.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/datamodel/test_eval_model.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/datamodel/test_example_models.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/datamodel/test_json_schema.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/datamodel/test_model_cache.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/datamodel/test_model_perf.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/datamodel/test_models.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/datamodel/test_nested_save.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/datamodel/test_output_rating.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/datamodel/test_prompt_id.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/datamodel/test_registry.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/datamodel/test_task.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/utils/__init__.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/utils/exhaustive_error.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/utils/formatting.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/utils/name_generator.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/utils/test_config.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/kiln_ai/utils/test_name_geneator.py +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/setup.cfg +0 -0
- {kiln_ai-0.12.0 → kiln_ai-0.13.0}/uv.lock +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.13
|
|
@@ -1,3 +1,35 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: kiln-ai
|
|
3
|
+
Version: 0.13.0
|
|
4
|
+
Summary: Kiln AI
|
|
5
|
+
Project-URL: Homepage, https://getkiln.ai
|
|
6
|
+
Project-URL: Repository, https://github.com/Kiln-AI/kiln
|
|
7
|
+
Project-URL: Documentation, https://kiln-ai.github.io/Kiln/kiln_core_docs/kiln_ai.html
|
|
8
|
+
Project-URL: Issues, https://github.com/Kiln-AI/kiln/issues
|
|
9
|
+
Author-email: "Steve Cosman, Chesterfield Laboratories Inc" <scosman@users.noreply.github.com>
|
|
10
|
+
License-File: LICENSE.txt
|
|
11
|
+
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
17
|
+
Requires-Python: >=3.10
|
|
18
|
+
Requires-Dist: boto3>=1.37.10
|
|
19
|
+
Requires-Dist: coverage>=7.6.4
|
|
20
|
+
Requires-Dist: google-cloud-aiplatform>=1.84.0
|
|
21
|
+
Requires-Dist: jsonschema>=4.23.0
|
|
22
|
+
Requires-Dist: litellm>=1.63.5
|
|
23
|
+
Requires-Dist: openai>=1.53.0
|
|
24
|
+
Requires-Dist: pdoc>=15.0.0
|
|
25
|
+
Requires-Dist: pydantic>=2.9.2
|
|
26
|
+
Requires-Dist: pytest-benchmark>=5.1.0
|
|
27
|
+
Requires-Dist: pytest-cov>=6.0.0
|
|
28
|
+
Requires-Dist: pyyaml>=6.0.2
|
|
29
|
+
Requires-Dist: together>=1.4.6
|
|
30
|
+
Requires-Dist: typing-extensions>=4.12.2
|
|
31
|
+
Description-Content-Type: text/markdown
|
|
32
|
+
|
|
1
33
|
# Kiln AI Core Library
|
|
2
34
|
|
|
3
35
|
<p align="center">
|
|
@@ -40,6 +72,7 @@ The library has a [comprehensive set of docs](https://kiln-ai.github.io/Kiln/kil
|
|
|
40
72
|
- [Using your Kiln Dataset in a Notebook or Project](#using-your-kiln-dataset-in-a-notebook-or-project)
|
|
41
73
|
- [Using Kiln Dataset in Pandas](#using-kiln-dataset-in-pandas)
|
|
42
74
|
- [Building and Running a Kiln Task from Code](#building-and-running-a-kiln-task-from-code)
|
|
75
|
+
- [Adding Custom Model or AI Provider from Code](#adding-custom-model-or-ai-provider-from-code)
|
|
43
76
|
- [Full API Reference](#full-api-reference)
|
|
44
77
|
|
|
45
78
|
## Installation
|
|
@@ -227,7 +260,7 @@ response = await adapter.invoke(task_input)
|
|
|
227
260
|
print(f"Output: {response.output.output}")
|
|
228
261
|
|
|
229
262
|
# Step 4 (optional): Load the task from disk and print the results.
|
|
230
|
-
# This will only work if the task was loaded from disk, or you called task.save_to_file() before invoking the adapter (
|
|
263
|
+
# This will only work if the task was loaded from disk, or you called task.save_to_file() before invoking the adapter (ephemeral tasks don't save their result to disk)
|
|
231
264
|
task = datamodel.Task.load_from_file(tmp_path / "test_task.kiln")
|
|
232
265
|
for run in task.runs():
|
|
233
266
|
print(f"Run: {run.id}")
|
|
@@ -236,6 +269,49 @@ for run in task.runs():
|
|
|
236
269
|
|
|
237
270
|
```
|
|
238
271
|
|
|
272
|
+
### Adding Custom Model or AI Provider from Code
|
|
273
|
+
|
|
274
|
+
You can add additional AI models and providers to Kiln.
|
|
275
|
+
|
|
276
|
+
See our docs for more information, including how to add these from the UI:
|
|
277
|
+
|
|
278
|
+
- [Custom Models From Existing Providers](https://docs.getkiln.ai/docs/models-and-ai-providers#custom-models-from-existing-providers)
|
|
279
|
+
- [Custom OpenAI Compatible Servers](https://docs.getkiln.ai/docs/models-and-ai-providers#custom-openai-compatible-servers)
|
|
280
|
+
|
|
281
|
+
You can also add these from code. The kiln_ai.utils.Config class helps you manage the Kiln config file (stored at `~/.kiln_settings/config.yaml`):
|
|
282
|
+
|
|
283
|
+
```python
|
|
284
|
+
# Addding an OpenAI compatible provider
|
|
285
|
+
name = "CustomOllama"
|
|
286
|
+
base_url = "http://localhost:1234/api/v1"
|
|
287
|
+
api_key = "12345"
|
|
288
|
+
providers = Config.shared().openai_compatible_providers or []
|
|
289
|
+
existing_provider = next((p for p in providers if p["name"] == name), None)
|
|
290
|
+
if existing_provider:
|
|
291
|
+
# skip since this already exists
|
|
292
|
+
return
|
|
293
|
+
providers.append(
|
|
294
|
+
{
|
|
295
|
+
"name": name,
|
|
296
|
+
"base_url": base_url,
|
|
297
|
+
"api_key": api_key,
|
|
298
|
+
}
|
|
299
|
+
)
|
|
300
|
+
Config.shared().openai_compatible_providers = providers
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
```python
|
|
304
|
+
# Add a custom model ID to an existing provider.
|
|
305
|
+
new_model = "openai::gpt-3.5-turbo"
|
|
306
|
+
custom_model_ids = Config.shared().custom_models
|
|
307
|
+
existing_model = next((m for m in custom_model_ids if m == new_model), None)
|
|
308
|
+
if existing_model:
|
|
309
|
+
# skip since this already exists
|
|
310
|
+
return
|
|
311
|
+
custom_model_ids.append(new_model)
|
|
312
|
+
Config.shared().custom_models = custom_model_ids
|
|
313
|
+
```
|
|
314
|
+
|
|
239
315
|
## Full API Reference
|
|
240
316
|
|
|
241
317
|
The library can do a lot more than the examples we've shown here.
|
|
@@ -1,35 +1,3 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: kiln-ai
|
|
3
|
-
Version: 0.12.0
|
|
4
|
-
Summary: Kiln AI
|
|
5
|
-
Project-URL: Homepage, https://getkiln.ai
|
|
6
|
-
Project-URL: Repository, https://github.com/Kiln-AI/kiln
|
|
7
|
-
Project-URL: Documentation, https://kiln-ai.github.io/Kiln/kiln_core_docs/kiln_ai.html
|
|
8
|
-
Project-URL: Issues, https://github.com/Kiln-AI/kiln/issues
|
|
9
|
-
Author-email: "Steve Cosman, Chesterfield Laboratories Inc" <scosman@users.noreply.github.com>
|
|
10
|
-
License-File: LICENSE.txt
|
|
11
|
-
Classifier: Intended Audience :: Developers
|
|
12
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
-
Requires-Python: >=3.10
|
|
17
|
-
Requires-Dist: coverage>=7.6.4
|
|
18
|
-
Requires-Dist: jsonschema>=4.23.0
|
|
19
|
-
Requires-Dist: langchain-aws>=0.2.4
|
|
20
|
-
Requires-Dist: langchain-fireworks>=0.2.5
|
|
21
|
-
Requires-Dist: langchain-groq>=0.2.0
|
|
22
|
-
Requires-Dist: langchain-ollama>=0.2.2
|
|
23
|
-
Requires-Dist: langchain>=0.3.5
|
|
24
|
-
Requires-Dist: openai>=1.53.0
|
|
25
|
-
Requires-Dist: pdoc>=15.0.0
|
|
26
|
-
Requires-Dist: pydantic>=2.9.2
|
|
27
|
-
Requires-Dist: pytest-benchmark>=5.1.0
|
|
28
|
-
Requires-Dist: pytest-cov>=6.0.0
|
|
29
|
-
Requires-Dist: pyyaml>=6.0.2
|
|
30
|
-
Requires-Dist: typing-extensions>=4.12.2
|
|
31
|
-
Description-Content-Type: text/markdown
|
|
32
|
-
|
|
33
1
|
# Kiln AI Core Library
|
|
34
2
|
|
|
35
3
|
<p align="center">
|
|
@@ -72,6 +40,7 @@ The library has a [comprehensive set of docs](https://kiln-ai.github.io/Kiln/kil
|
|
|
72
40
|
- [Using your Kiln Dataset in a Notebook or Project](#using-your-kiln-dataset-in-a-notebook-or-project)
|
|
73
41
|
- [Using Kiln Dataset in Pandas](#using-kiln-dataset-in-pandas)
|
|
74
42
|
- [Building and Running a Kiln Task from Code](#building-and-running-a-kiln-task-from-code)
|
|
43
|
+
- [Adding Custom Model or AI Provider from Code](#adding-custom-model-or-ai-provider-from-code)
|
|
75
44
|
- [Full API Reference](#full-api-reference)
|
|
76
45
|
|
|
77
46
|
## Installation
|
|
@@ -259,7 +228,7 @@ response = await adapter.invoke(task_input)
|
|
|
259
228
|
print(f"Output: {response.output.output}")
|
|
260
229
|
|
|
261
230
|
# Step 4 (optional): Load the task from disk and print the results.
|
|
262
|
-
# This will only work if the task was loaded from disk, or you called task.save_to_file() before invoking the adapter (
|
|
231
|
+
# This will only work if the task was loaded from disk, or you called task.save_to_file() before invoking the adapter (ephemeral tasks don't save their result to disk)
|
|
263
232
|
task = datamodel.Task.load_from_file(tmp_path / "test_task.kiln")
|
|
264
233
|
for run in task.runs():
|
|
265
234
|
print(f"Run: {run.id}")
|
|
@@ -268,6 +237,49 @@ for run in task.runs():
|
|
|
268
237
|
|
|
269
238
|
```
|
|
270
239
|
|
|
240
|
+
### Adding Custom Model or AI Provider from Code
|
|
241
|
+
|
|
242
|
+
You can add additional AI models and providers to Kiln.
|
|
243
|
+
|
|
244
|
+
See our docs for more information, including how to add these from the UI:
|
|
245
|
+
|
|
246
|
+
- [Custom Models From Existing Providers](https://docs.getkiln.ai/docs/models-and-ai-providers#custom-models-from-existing-providers)
|
|
247
|
+
- [Custom OpenAI Compatible Servers](https://docs.getkiln.ai/docs/models-and-ai-providers#custom-openai-compatible-servers)
|
|
248
|
+
|
|
249
|
+
You can also add these from code. The kiln_ai.utils.Config class helps you manage the Kiln config file (stored at `~/.kiln_settings/config.yaml`):
|
|
250
|
+
|
|
251
|
+
```python
|
|
252
|
+
# Addding an OpenAI compatible provider
|
|
253
|
+
name = "CustomOllama"
|
|
254
|
+
base_url = "http://localhost:1234/api/v1"
|
|
255
|
+
api_key = "12345"
|
|
256
|
+
providers = Config.shared().openai_compatible_providers or []
|
|
257
|
+
existing_provider = next((p for p in providers if p["name"] == name), None)
|
|
258
|
+
if existing_provider:
|
|
259
|
+
# skip since this already exists
|
|
260
|
+
return
|
|
261
|
+
providers.append(
|
|
262
|
+
{
|
|
263
|
+
"name": name,
|
|
264
|
+
"base_url": base_url,
|
|
265
|
+
"api_key": api_key,
|
|
266
|
+
}
|
|
267
|
+
)
|
|
268
|
+
Config.shared().openai_compatible_providers = providers
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
```python
|
|
272
|
+
# Add a custom model ID to an existing provider.
|
|
273
|
+
new_model = "openai::gpt-3.5-turbo"
|
|
274
|
+
custom_model_ids = Config.shared().custom_models
|
|
275
|
+
existing_model = next((m for m in custom_model_ids if m == new_model), None)
|
|
276
|
+
if existing_model:
|
|
277
|
+
# skip since this already exists
|
|
278
|
+
return
|
|
279
|
+
custom_model_ids.append(new_model)
|
|
280
|
+
Config.shared().custom_models = custom_model_ids
|
|
281
|
+
```
|
|
282
|
+
|
|
271
283
|
## Full API Reference
|
|
272
284
|
|
|
273
285
|
The library can do a lot more than the examples we've shown here.
|
{kiln_ai-0.12.0 → kiln_ai-0.13.0}/docs/kiln_core_docs/kiln_ai/adapters/data_gen/data_gen_task.html
RENAMED
|
@@ -127,6 +127,9 @@
|
|
|
127
127
|
</ul>
|
|
128
128
|
|
|
129
129
|
</li>
|
|
130
|
+
<li>
|
|
131
|
+
<a class="function" href="#wrap_task_with_guidance">wrap_task_with_guidance</a>
|
|
132
|
+
</li>
|
|
130
133
|
</ul>
|
|
131
134
|
|
|
132
135
|
|
|
@@ -333,6 +336,24 @@
|
|
|
333
336
|
</span><span id="L-183"><a href="#L-183"><span class="linenos">183</span></a> <span class="n">input_json_schema</span><span class="o">=</span><span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span><span class="n">DataGenSampleTaskInput</span><span class="o">.</span><span class="n">model_json_schema</span><span class="p">()),</span>
|
|
334
337
|
</span><span id="L-184"><a href="#L-184"><span class="linenos">184</span></a> <span class="n">output_json_schema</span><span class="o">=</span><span class="n">list_json_schema_for_task</span><span class="p">(</span><span class="n">target_task</span><span class="p">),</span>
|
|
335
338
|
</span><span id="L-185"><a href="#L-185"><span class="linenos">185</span></a> <span class="p">)</span>
|
|
339
|
+
</span><span id="L-186"><a href="#L-186"><span class="linenos">186</span></a>
|
|
340
|
+
</span><span id="L-187"><a href="#L-187"><span class="linenos">187</span></a>
|
|
341
|
+
</span><span id="L-188"><a href="#L-188"><span class="linenos">188</span></a><span class="k">def</span> <span class="nf">wrap_task_with_guidance</span><span class="p">(</span><span class="n">original_instruction</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">guidance</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
342
|
+
</span><span id="L-189"><a href="#L-189"><span class="linenos">189</span></a><span class="w"> </span><span class="sd">"""Wrap the original instruction with human guidance.</span>
|
|
343
|
+
</span><span id="L-190"><a href="#L-190"><span class="linenos">190</span></a>
|
|
344
|
+
</span><span id="L-191"><a href="#L-191"><span class="linenos">191</span></a><span class="sd"> Args:</span>
|
|
345
|
+
</span><span id="L-192"><a href="#L-192"><span class="linenos">192</span></a><span class="sd"> original_instruction: The original instruction to wrap</span>
|
|
346
|
+
</span><span id="L-193"><a href="#L-193"><span class="linenos">193</span></a><span class="sd"> guidance: The human guidance to wrap the instruction with</span>
|
|
347
|
+
</span><span id="L-194"><a href="#L-194"><span class="linenos">194</span></a><span class="sd"> """</span>
|
|
348
|
+
</span><span id="L-195"><a href="#L-195"><span class="linenos">195</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"""</span><span class="si">{</span><span class="n">original_instruction</span><span class="si">}</span>
|
|
349
|
+
</span><span id="L-196"><a href="#L-196"><span class="linenos">196</span></a>
|
|
350
|
+
</span><span id="L-197"><a href="#L-197"><span class="linenos">197</span></a><span class="s2"># Special Instructions</span>
|
|
351
|
+
</span><span id="L-198"><a href="#L-198"><span class="linenos">198</span></a>
|
|
352
|
+
</span><span id="L-199"><a href="#L-199"><span class="linenos">199</span></a><span class="s2">The above instructions are the original instructions for this task. For this execution, we've been given additional instructions. Follow both, but prioritize the additional instructions when they conflict. The additional instructions are:</span>
|
|
353
|
+
</span><span id="L-200"><a href="#L-200"><span class="linenos">200</span></a><span class="s2"><additional_instructions></span>
|
|
354
|
+
</span><span id="L-201"><a href="#L-201"><span class="linenos">201</span></a><span class="si">{</span><span class="n">guidance</span><span class="si">}</span>
|
|
355
|
+
</span><span id="L-202"><a href="#L-202"><span class="linenos">202</span></a><span class="s2"></additional_instructions></span>
|
|
356
|
+
</span><span id="L-203"><a href="#L-203"><span class="linenos">203</span></a><span class="s2">"""</span>
|
|
336
357
|
</span></pre></div>
|
|
337
358
|
|
|
338
359
|
|
|
@@ -1058,6 +1079,45 @@ method.</p>
|
|
|
1058
1079
|
|
|
1059
1080
|
</div>
|
|
1060
1081
|
</section>
|
|
1082
|
+
<section id="wrap_task_with_guidance">
|
|
1083
|
+
<input id="wrap_task_with_guidance-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
|
1084
|
+
<div class="attr function">
|
|
1085
|
+
|
|
1086
|
+
<span class="def">def</span>
|
|
1087
|
+
<span class="name">wrap_task_with_guidance</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">original_instruction</span><span class="p">:</span> <span class="nb">str</span>, </span><span class="param"><span class="n">guidance</span><span class="p">:</span> <span class="nb">str</span></span><span class="return-annotation">) -> <span class="nb">str</span>:</span></span>
|
|
1088
|
+
|
|
1089
|
+
<label class="view-source-button" for="wrap_task_with_guidance-view-source"><span>View Source</span></label>
|
|
1090
|
+
|
|
1091
|
+
</div>
|
|
1092
|
+
<a class="headerlink" href="#wrap_task_with_guidance"></a>
|
|
1093
|
+
<div class="pdoc-code codehilite"><pre><span></span><span id="wrap_task_with_guidance-189"><a href="#wrap_task_with_guidance-189"><span class="linenos">189</span></a><span class="k">def</span> <span class="nf">wrap_task_with_guidance</span><span class="p">(</span><span class="n">original_instruction</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">guidance</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
1094
|
+
</span><span id="wrap_task_with_guidance-190"><a href="#wrap_task_with_guidance-190"><span class="linenos">190</span></a><span class="w"> </span><span class="sd">"""Wrap the original instruction with human guidance.</span>
|
|
1095
|
+
</span><span id="wrap_task_with_guidance-191"><a href="#wrap_task_with_guidance-191"><span class="linenos">191</span></a>
|
|
1096
|
+
</span><span id="wrap_task_with_guidance-192"><a href="#wrap_task_with_guidance-192"><span class="linenos">192</span></a><span class="sd"> Args:</span>
|
|
1097
|
+
</span><span id="wrap_task_with_guidance-193"><a href="#wrap_task_with_guidance-193"><span class="linenos">193</span></a><span class="sd"> original_instruction: The original instruction to wrap</span>
|
|
1098
|
+
</span><span id="wrap_task_with_guidance-194"><a href="#wrap_task_with_guidance-194"><span class="linenos">194</span></a><span class="sd"> guidance: The human guidance to wrap the instruction with</span>
|
|
1099
|
+
</span><span id="wrap_task_with_guidance-195"><a href="#wrap_task_with_guidance-195"><span class="linenos">195</span></a><span class="sd"> """</span>
|
|
1100
|
+
</span><span id="wrap_task_with_guidance-196"><a href="#wrap_task_with_guidance-196"><span class="linenos">196</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"""</span><span class="si">{</span><span class="n">original_instruction</span><span class="si">}</span>
|
|
1101
|
+
</span><span id="wrap_task_with_guidance-197"><a href="#wrap_task_with_guidance-197"><span class="linenos">197</span></a>
|
|
1102
|
+
</span><span id="wrap_task_with_guidance-198"><a href="#wrap_task_with_guidance-198"><span class="linenos">198</span></a><span class="s2"># Special Instructions</span>
|
|
1103
|
+
</span><span id="wrap_task_with_guidance-199"><a href="#wrap_task_with_guidance-199"><span class="linenos">199</span></a>
|
|
1104
|
+
</span><span id="wrap_task_with_guidance-200"><a href="#wrap_task_with_guidance-200"><span class="linenos">200</span></a><span class="s2">The above instructions are the original instructions for this task. For this execution, we've been given additional instructions. Follow both, but prioritize the additional instructions when they conflict. The additional instructions are:</span>
|
|
1105
|
+
</span><span id="wrap_task_with_guidance-201"><a href="#wrap_task_with_guidance-201"><span class="linenos">201</span></a><span class="s2"><additional_instructions></span>
|
|
1106
|
+
</span><span id="wrap_task_with_guidance-202"><a href="#wrap_task_with_guidance-202"><span class="linenos">202</span></a><span class="si">{</span><span class="n">guidance</span><span class="si">}</span>
|
|
1107
|
+
</span><span id="wrap_task_with_guidance-203"><a href="#wrap_task_with_guidance-203"><span class="linenos">203</span></a><span class="s2"></additional_instructions></span>
|
|
1108
|
+
</span><span id="wrap_task_with_guidance-204"><a href="#wrap_task_with_guidance-204"><span class="linenos">204</span></a><span class="s2">"""</span>
|
|
1109
|
+
</span></pre></div>
|
|
1110
|
+
|
|
1111
|
+
|
|
1112
|
+
<div class="docstring"><p>Wrap the original instruction with human guidance.</p>
|
|
1113
|
+
|
|
1114
|
+
<p>Args:
|
|
1115
|
+
original_instruction: The original instruction to wrap
|
|
1116
|
+
guidance: The human guidance to wrap the instruction with</p>
|
|
1117
|
+
</div>
|
|
1118
|
+
|
|
1119
|
+
|
|
1120
|
+
</section>
|
|
1061
1121
|
</main>
|
|
1062
1122
|
<script>
|
|
1063
1123
|
function escapeHTML(html) {
|