kiln-ai 0.8.1__tar.gz → 0.12.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.8.1 → kiln_ai-0.12.0}/PKG-INFO +45 -7
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/README.md +43 -4
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai/adapters/base_adapter.html +410 -427
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai/adapters/data_gen/data_gen_task.html +10 -120
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai/adapters/fine_tune/base_finetune.html +371 -359
- kiln_ai-0.12.0/docs/kiln_core_docs/kiln_ai/adapters/fine_tune/dataset_formatter.html +1796 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai/adapters/fine_tune/openai_finetune.html +205 -207
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai/adapters/langchain_adapters.html +491 -478
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai/adapters/ml_model_list.html +1319 -801
- kiln_ai-0.12.0/docs/kiln_core_docs/kiln_ai/adapters/model_adapters/base_adapter.html +1252 -0
- kiln_ai-0.12.0/docs/kiln_core_docs/kiln_ai/adapters/model_adapters/langchain_adapters.html +1129 -0
- kiln_ai-0.12.0/docs/kiln_core_docs/kiln_ai/adapters/model_adapters/openai_model_adapter.html +959 -0
- kiln_ai-0.12.0/docs/kiln_core_docs/kiln_ai/adapters/model_adapters.html +271 -0
- kiln_ai-0.12.0/docs/kiln_core_docs/kiln_ai/adapters/prompt_builders.html +2423 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai/adapters/repair/repair_task.html +181 -218
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai/adapters.html +26 -25
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai/datamodel/basemodel.html +1127 -1064
- kiln_ai-0.12.0/docs/kiln_core_docs/kiln_ai/datamodel/dataset_split.html +1353 -0
- kiln_ai-0.12.0/docs/kiln_core_docs/kiln_ai/datamodel/strict_mode.html +325 -0
- kiln_ai-0.12.0/docs/kiln_core_docs/kiln_ai/datamodel.html +4537 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai/utils/config.html +502 -431
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai.html +8 -4
- kiln_ai-0.12.0/docs/kiln_core_docs/search.js +46 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/__init__.py +7 -7
- kiln_ai-0.12.0/kiln_ai/adapters/adapter_registry.py +92 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/data_gen/data_gen_task.py +21 -3
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/data_gen/test_data_gen_task.py +23 -3
- kiln_ai-0.12.0/kiln_ai/adapters/eval/base_eval.py +164 -0
- kiln_ai-0.12.0/kiln_ai/adapters/eval/eval_runner.py +267 -0
- kiln_ai-0.12.0/kiln_ai/adapters/eval/g_eval.py +367 -0
- kiln_ai-0.12.0/kiln_ai/adapters/eval/registry.py +16 -0
- kiln_ai-0.12.0/kiln_ai/adapters/eval/test_base_eval.py +324 -0
- kiln_ai-0.12.0/kiln_ai/adapters/eval/test_eval_runner.py +640 -0
- kiln_ai-0.12.0/kiln_ai/adapters/eval/test_g_eval.py +497 -0
- kiln_ai-0.12.0/kiln_ai/adapters/eval/test_g_eval_data.py +4 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/fine_tune/base_finetune.py +5 -1
- kiln_ai-0.12.0/kiln_ai/adapters/fine_tune/dataset_formatter.py +432 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/fine_tune/fireworks_finetune.py +47 -32
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/fine_tune/openai_finetune.py +12 -11
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/fine_tune/test_base_finetune.py +19 -0
- kiln_ai-0.12.0/kiln_ai/adapters/fine_tune/test_dataset_formatter.py +685 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/fine_tune/test_fireworks_tinetune.py +114 -22
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/fine_tune/test_openai_finetune.py +125 -14
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/ml_model_list.py +434 -93
- kiln_ai-0.12.0/kiln_ai/adapters/model_adapters/__init__.py +18 -0
- kiln_ai-0.12.0/kiln_ai/adapters/model_adapters/base_adapter.py +250 -0
- kiln_ai-0.12.0/kiln_ai/adapters/model_adapters/langchain_adapters.py +309 -0
- kiln_ai-0.12.0/kiln_ai/adapters/model_adapters/openai_compatible_config.py +10 -0
- kiln_ai-0.12.0/kiln_ai/adapters/model_adapters/openai_model_adapter.py +289 -0
- kiln_ai-0.12.0/kiln_ai/adapters/model_adapters/test_base_adapter.py +199 -0
- {kiln_ai-0.8.1/kiln_ai/adapters → kiln_ai-0.12.0/kiln_ai/adapters/model_adapters}/test_langchain_adapter.py +105 -97
- kiln_ai-0.12.0/kiln_ai/adapters/model_adapters/test_openai_model_adapter.py +216 -0
- {kiln_ai-0.8.1/kiln_ai/adapters → kiln_ai-0.12.0/kiln_ai/adapters/model_adapters}/test_saving_adapter_results.py +80 -30
- {kiln_ai-0.8.1/kiln_ai/adapters → kiln_ai-0.12.0/kiln_ai/adapters/model_adapters}/test_structured_output.py +125 -46
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/ollama_tools.py +0 -1
- kiln_ai-0.12.0/kiln_ai/adapters/parsers/__init__.py +10 -0
- kiln_ai-0.12.0/kiln_ai/adapters/parsers/base_parser.py +12 -0
- kiln_ai-0.12.0/kiln_ai/adapters/parsers/json_parser.py +37 -0
- kiln_ai-0.12.0/kiln_ai/adapters/parsers/parser_registry.py +19 -0
- kiln_ai-0.12.0/kiln_ai/adapters/parsers/r1_parser.py +69 -0
- kiln_ai-0.12.0/kiln_ai/adapters/parsers/test_json_parser.py +81 -0
- kiln_ai-0.12.0/kiln_ai/adapters/parsers/test_parser_registry.py +32 -0
- kiln_ai-0.12.0/kiln_ai/adapters/parsers/test_r1_parser.py +144 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/prompt_builders.py +193 -49
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/provider_tools.py +91 -36
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/repair/repair_task.py +18 -19
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/repair/test_repair_task.py +7 -7
- kiln_ai-0.12.0/kiln_ai/adapters/run_output.py +11 -0
- kiln_ai-0.12.0/kiln_ai/adapters/test_adapter_registry.py +177 -0
- kiln_ai-0.12.0/kiln_ai/adapters/test_generate_docs.py +69 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/test_ollama_tools.py +0 -1
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/test_prompt_adaptors.py +25 -18
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/test_prompt_builders.py +265 -44
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/test_provider_tools.py +268 -46
- kiln_ai-0.12.0/kiln_ai/datamodel/__init__.py +77 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/datamodel/basemodel.py +31 -11
- kiln_ai-0.12.0/kiln_ai/datamodel/datamodel_enums.py +58 -0
- kiln_ai-0.12.0/kiln_ai/datamodel/dataset_filters.py +114 -0
- kiln_ai-0.12.0/kiln_ai/datamodel/dataset_split.py +170 -0
- kiln_ai-0.12.0/kiln_ai/datamodel/eval.py +298 -0
- kiln_ai-0.12.0/kiln_ai/datamodel/finetune.py +105 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/datamodel/json_schema.py +14 -3
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/datamodel/model_cache.py +8 -3
- kiln_ai-0.12.0/kiln_ai/datamodel/project.py +23 -0
- kiln_ai-0.12.0/kiln_ai/datamodel/prompt.py +37 -0
- kiln_ai-0.12.0/kiln_ai/datamodel/prompt_id.py +83 -0
- kiln_ai-0.12.0/kiln_ai/datamodel/strict_mode.py +24 -0
- kiln_ai-0.12.0/kiln_ai/datamodel/task.py +181 -0
- kiln_ai-0.12.0/kiln_ai/datamodel/task_output.py +321 -0
- kiln_ai-0.12.0/kiln_ai/datamodel/task_run.py +164 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/datamodel/test_basemodel.py +80 -2
- kiln_ai-0.12.0/kiln_ai/datamodel/test_dataset_filters.py +71 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/datamodel/test_dataset_split.py +127 -6
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/datamodel/test_datasource.py +3 -2
- kiln_ai-0.12.0/kiln_ai/datamodel/test_eval_model.py +635 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/datamodel/test_example_models.py +34 -17
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/datamodel/test_json_schema.py +23 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/datamodel/test_model_cache.py +24 -0
- kiln_ai-0.12.0/kiln_ai/datamodel/test_model_perf.py +125 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/datamodel/test_models.py +131 -2
- kiln_ai-0.12.0/kiln_ai/datamodel/test_prompt_id.py +129 -0
- kiln_ai-0.12.0/kiln_ai/datamodel/test_task.py +159 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/utils/config.py +6 -1
- kiln_ai-0.12.0/kiln_ai/utils/exhaustive_error.py +6 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/pyproject.toml +3 -4
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/uv.lock +2 -2
- kiln_ai-0.8.1/docs/kiln_core_docs/kiln_ai/adapters/fine_tune/dataset_formatter.html +0 -1020
- kiln_ai-0.8.1/docs/kiln_core_docs/kiln_ai/adapters/prompt_builders.html +0 -1762
- kiln_ai-0.8.1/docs/kiln_core_docs/kiln_ai/datamodel.html +0 -3391
- kiln_ai-0.8.1/docs/kiln_core_docs/search.js +0 -46
- kiln_ai-0.8.1/kiln_ai/adapters/adapter_registry.py +0 -21
- kiln_ai-0.8.1/kiln_ai/adapters/base_adapter.py +0 -191
- kiln_ai-0.8.1/kiln_ai/adapters/fine_tune/dataset_formatter.py +0 -187
- kiln_ai-0.8.1/kiln_ai/adapters/fine_tune/test_dataset_formatter.py +0 -342
- kiln_ai-0.8.1/kiln_ai/adapters/langchain_adapters.py +0 -256
- kiln_ai-0.8.1/kiln_ai/datamodel/__init__.py +0 -798
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/.gitignore +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/.python-version +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/LICENSE.txt +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/core_library_docs/index.html +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/core_library_docs/kiln_ai/adapters/base_adapter.html +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/core_library_docs/kiln_ai/adapters/langchain_adapters.html +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/core_library_docs/kiln_ai/adapters/ml_model_list.html +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/core_library_docs/kiln_ai/adapters/prompt_builders.html +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/core_library_docs/kiln_ai/adapters/repair/repair_task.html +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/core_library_docs/kiln_ai/adapters/repair.html +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/core_library_docs/kiln_ai/adapters.html +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/core_library_docs/kiln_ai/datamodel/basemodel.html +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/core_library_docs/kiln_ai/datamodel/json_schema.html +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/core_library_docs/kiln_ai/datamodel.html +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/core_library_docs/kiln_ai/utils/config.html +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/core_library_docs/kiln_ai/utils/formatting.html +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/core_library_docs/kiln_ai/utils.html +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/core_library_docs/kiln_ai.html +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/core_library_docs/search.js +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/index.html +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai/adapters/data_gen.html +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai/adapters/fine_tune/dataset_split.html +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai/adapters/fine_tune/finetune_registry.html +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai/adapters/fine_tune.html +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai/adapters/repair.html +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai/datamodel/json_schema.html +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai/utils/formatting.html +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai/utils.html +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/__init__.py +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/data_gen/__init__.py +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/data_gen/data_gen_prompts.py +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/fine_tune/__init__.py +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/fine_tune/finetune_registry.py +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/repair/__init__.py +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/datamodel/registry.py +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/datamodel/test_nested_save.py +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/datamodel/test_output_rating.py +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/datamodel/test_registry.py +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/utils/__init__.py +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/utils/formatting.py +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/utils/name_generator.py +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/utils/test_config.py +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/utils/test_name_geneator.py +0 -0
- {kiln_ai-0.8.1 → kiln_ai-0.12.0}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: kiln-ai
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.12.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,8 +19,7 @@ Requires-Dist: jsonschema>=4.23.0
|
|
|
19
19
|
Requires-Dist: langchain-aws>=0.2.4
|
|
20
20
|
Requires-Dist: langchain-fireworks>=0.2.5
|
|
21
21
|
Requires-Dist: langchain-groq>=0.2.0
|
|
22
|
-
Requires-Dist: langchain-ollama>=0.2.
|
|
23
|
-
Requires-Dist: langchain-openai>=0.2.4
|
|
22
|
+
Requires-Dist: langchain-ollama>=0.2.2
|
|
24
23
|
Requires-Dist: langchain>=0.3.5
|
|
25
24
|
Requires-Dist: openai>=1.53.0
|
|
26
25
|
Requires-Dist: pdoc>=15.0.0
|
|
@@ -72,7 +71,8 @@ The library has a [comprehensive set of docs](https://kiln-ai.github.io/Kiln/kil
|
|
|
72
71
|
- [Load an Existing Dataset into a Kiln Task Dataset](#load-an-existing-dataset-into-a-kiln-task-dataset)
|
|
73
72
|
- [Using your Kiln Dataset in a Notebook or Project](#using-your-kiln-dataset-in-a-notebook-or-project)
|
|
74
73
|
- [Using Kiln Dataset in Pandas](#using-kiln-dataset-in-pandas)
|
|
75
|
-
- [
|
|
74
|
+
- [Building and Running a Kiln Task from Code](#building-and-running-a-kiln-task-from-code)
|
|
75
|
+
- [Full API Reference](#full-api-reference)
|
|
76
76
|
|
|
77
77
|
## Installation
|
|
78
78
|
|
|
@@ -95,11 +95,14 @@ The Kiln Python library provides a set of Python classes that which help you eas
|
|
|
95
95
|
|
|
96
96
|
### Datamodel Overview
|
|
97
97
|
|
|
98
|
+
Here's a high level overview of the Kiln datamodel. A project folder will reflect this nested structure:
|
|
99
|
+
|
|
98
100
|
- Project: a Kiln Project that organizes related tasks
|
|
99
101
|
- Task: a specific task including prompt instructions, input/output schemas, and requirements
|
|
100
102
|
- TaskRun: a sample (run) of a task including input, output and human rating information
|
|
101
|
-
- DatasetSplit: a frozen collection of task runs divided into train/test/validation splits
|
|
102
103
|
- Finetune: configuration and status tracking for fine-tuning models on task data
|
|
104
|
+
- Prompt: a prompt for this task
|
|
105
|
+
- DatasetSplit: a frozen collection of task runs divided into train/test/validation splits
|
|
103
106
|
|
|
104
107
|
### Load a Project
|
|
105
108
|
|
|
@@ -230,8 +233,43 @@ final_df = pd.concat(dfs, ignore_index=True)
|
|
|
230
233
|
print(final_df)
|
|
231
234
|
```
|
|
232
235
|
|
|
233
|
-
###
|
|
236
|
+
### Building and Running a Kiln Task from Code
|
|
237
|
+
|
|
238
|
+
```python
|
|
239
|
+
# Step 1: Create or Load a Task -- choose one of the following 1.A or 1.B
|
|
240
|
+
|
|
241
|
+
# Step 1.A: Optionally load an existing task from disk
|
|
242
|
+
# task = datamodel.Task.load_from_file("path/to/task.kiln")
|
|
243
|
+
|
|
244
|
+
# Step 1.B: Create a new task in code, without saving to disk.
|
|
245
|
+
task = datamodel.Task(
|
|
246
|
+
name="test task",
|
|
247
|
+
instruction="Tell a joke, given a subject.",
|
|
248
|
+
)
|
|
249
|
+
# replace with a valid JSON schema https://json-schema.org for your task (json string, not a python dict).
|
|
250
|
+
# Or delete this line to use plaintext output
|
|
251
|
+
task.output_json_schema = json_joke_schema
|
|
252
|
+
|
|
253
|
+
# Step 2: Create an Adapter to run the task, with a specific model and provider
|
|
254
|
+
adapter = adapter_for_task(task, model_name="llama_3_1_8b", provider="groq")
|
|
255
|
+
|
|
256
|
+
# Step 3: Invoke the Adapter to run the task
|
|
257
|
+
task_input = "cows"
|
|
258
|
+
response = await adapter.invoke(task_input)
|
|
259
|
+
print(f"Output: {response.output.output}")
|
|
260
|
+
|
|
261
|
+
# 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 (epemerial tasks don't save their result to disk)
|
|
263
|
+
task = datamodel.Task.load_from_file(tmp_path / "test_task.kiln")
|
|
264
|
+
for run in task.runs():
|
|
265
|
+
print(f"Run: {run.id}")
|
|
266
|
+
print(f"Input: {run.input}")
|
|
267
|
+
print(f"Output: {run.output}")
|
|
268
|
+
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
## Full API Reference
|
|
234
272
|
|
|
235
273
|
The library can do a lot more than the examples we've shown here.
|
|
236
274
|
|
|
237
|
-
See the [docs](https://kiln-ai.github.io/Kiln/kiln_core_docs/index.html)
|
|
275
|
+
See the full API reference in the [docs](https://kiln-ai.github.io/Kiln/kiln_core_docs/index.html) under the `Submodules` section of the sidebar.
|
|
@@ -39,7 +39,8 @@ The library has a [comprehensive set of docs](https://kiln-ai.github.io/Kiln/kil
|
|
|
39
39
|
- [Load an Existing Dataset into a Kiln Task Dataset](#load-an-existing-dataset-into-a-kiln-task-dataset)
|
|
40
40
|
- [Using your Kiln Dataset in a Notebook or Project](#using-your-kiln-dataset-in-a-notebook-or-project)
|
|
41
41
|
- [Using Kiln Dataset in Pandas](#using-kiln-dataset-in-pandas)
|
|
42
|
-
- [
|
|
42
|
+
- [Building and Running a Kiln Task from Code](#building-and-running-a-kiln-task-from-code)
|
|
43
|
+
- [Full API Reference](#full-api-reference)
|
|
43
44
|
|
|
44
45
|
## Installation
|
|
45
46
|
|
|
@@ -62,11 +63,14 @@ The Kiln Python library provides a set of Python classes that which help you eas
|
|
|
62
63
|
|
|
63
64
|
### Datamodel Overview
|
|
64
65
|
|
|
66
|
+
Here's a high level overview of the Kiln datamodel. A project folder will reflect this nested structure:
|
|
67
|
+
|
|
65
68
|
- Project: a Kiln Project that organizes related tasks
|
|
66
69
|
- Task: a specific task including prompt instructions, input/output schemas, and requirements
|
|
67
70
|
- TaskRun: a sample (run) of a task including input, output and human rating information
|
|
68
|
-
- DatasetSplit: a frozen collection of task runs divided into train/test/validation splits
|
|
69
71
|
- Finetune: configuration and status tracking for fine-tuning models on task data
|
|
72
|
+
- Prompt: a prompt for this task
|
|
73
|
+
- DatasetSplit: a frozen collection of task runs divided into train/test/validation splits
|
|
70
74
|
|
|
71
75
|
### Load a Project
|
|
72
76
|
|
|
@@ -197,8 +201,43 @@ final_df = pd.concat(dfs, ignore_index=True)
|
|
|
197
201
|
print(final_df)
|
|
198
202
|
```
|
|
199
203
|
|
|
200
|
-
###
|
|
204
|
+
### Building and Running a Kiln Task from Code
|
|
205
|
+
|
|
206
|
+
```python
|
|
207
|
+
# Step 1: Create or Load a Task -- choose one of the following 1.A or 1.B
|
|
208
|
+
|
|
209
|
+
# Step 1.A: Optionally load an existing task from disk
|
|
210
|
+
# task = datamodel.Task.load_from_file("path/to/task.kiln")
|
|
211
|
+
|
|
212
|
+
# Step 1.B: Create a new task in code, without saving to disk.
|
|
213
|
+
task = datamodel.Task(
|
|
214
|
+
name="test task",
|
|
215
|
+
instruction="Tell a joke, given a subject.",
|
|
216
|
+
)
|
|
217
|
+
# replace with a valid JSON schema https://json-schema.org for your task (json string, not a python dict).
|
|
218
|
+
# Or delete this line to use plaintext output
|
|
219
|
+
task.output_json_schema = json_joke_schema
|
|
220
|
+
|
|
221
|
+
# Step 2: Create an Adapter to run the task, with a specific model and provider
|
|
222
|
+
adapter = adapter_for_task(task, model_name="llama_3_1_8b", provider="groq")
|
|
223
|
+
|
|
224
|
+
# Step 3: Invoke the Adapter to run the task
|
|
225
|
+
task_input = "cows"
|
|
226
|
+
response = await adapter.invoke(task_input)
|
|
227
|
+
print(f"Output: {response.output.output}")
|
|
228
|
+
|
|
229
|
+
# 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 (epemerial tasks don't save their result to disk)
|
|
231
|
+
task = datamodel.Task.load_from_file(tmp_path / "test_task.kiln")
|
|
232
|
+
for run in task.runs():
|
|
233
|
+
print(f"Run: {run.id}")
|
|
234
|
+
print(f"Input: {run.input}")
|
|
235
|
+
print(f"Output: {run.output}")
|
|
236
|
+
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
## Full API Reference
|
|
201
240
|
|
|
202
241
|
The library can do a lot more than the examples we've shown here.
|
|
203
242
|
|
|
204
|
-
See the [docs](https://kiln-ai.github.io/Kiln/kiln_core_docs/index.html)
|
|
243
|
+
See the full API reference in the [docs](https://kiln-ai.github.io/Kiln/kiln_core_docs/index.html) under the `Submodules` section of the sidebar.
|