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.

Files changed (160) hide show
  1. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/PKG-INFO +45 -7
  2. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/README.md +43 -4
  3. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai/adapters/base_adapter.html +410 -427
  4. {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
  5. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai/adapters/fine_tune/base_finetune.html +371 -359
  6. kiln_ai-0.12.0/docs/kiln_core_docs/kiln_ai/adapters/fine_tune/dataset_formatter.html +1796 -0
  7. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai/adapters/fine_tune/openai_finetune.html +205 -207
  8. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai/adapters/langchain_adapters.html +491 -478
  9. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai/adapters/ml_model_list.html +1319 -801
  10. kiln_ai-0.12.0/docs/kiln_core_docs/kiln_ai/adapters/model_adapters/base_adapter.html +1252 -0
  11. kiln_ai-0.12.0/docs/kiln_core_docs/kiln_ai/adapters/model_adapters/langchain_adapters.html +1129 -0
  12. kiln_ai-0.12.0/docs/kiln_core_docs/kiln_ai/adapters/model_adapters/openai_model_adapter.html +959 -0
  13. kiln_ai-0.12.0/docs/kiln_core_docs/kiln_ai/adapters/model_adapters.html +271 -0
  14. kiln_ai-0.12.0/docs/kiln_core_docs/kiln_ai/adapters/prompt_builders.html +2423 -0
  15. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai/adapters/repair/repair_task.html +181 -218
  16. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai/adapters.html +26 -25
  17. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai/datamodel/basemodel.html +1127 -1064
  18. kiln_ai-0.12.0/docs/kiln_core_docs/kiln_ai/datamodel/dataset_split.html +1353 -0
  19. kiln_ai-0.12.0/docs/kiln_core_docs/kiln_ai/datamodel/strict_mode.html +325 -0
  20. kiln_ai-0.12.0/docs/kiln_core_docs/kiln_ai/datamodel.html +4537 -0
  21. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai/utils/config.html +502 -431
  22. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai.html +8 -4
  23. kiln_ai-0.12.0/docs/kiln_core_docs/search.js +46 -0
  24. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/__init__.py +7 -7
  25. kiln_ai-0.12.0/kiln_ai/adapters/adapter_registry.py +92 -0
  26. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/data_gen/data_gen_task.py +21 -3
  27. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/data_gen/test_data_gen_task.py +23 -3
  28. kiln_ai-0.12.0/kiln_ai/adapters/eval/base_eval.py +164 -0
  29. kiln_ai-0.12.0/kiln_ai/adapters/eval/eval_runner.py +267 -0
  30. kiln_ai-0.12.0/kiln_ai/adapters/eval/g_eval.py +367 -0
  31. kiln_ai-0.12.0/kiln_ai/adapters/eval/registry.py +16 -0
  32. kiln_ai-0.12.0/kiln_ai/adapters/eval/test_base_eval.py +324 -0
  33. kiln_ai-0.12.0/kiln_ai/adapters/eval/test_eval_runner.py +640 -0
  34. kiln_ai-0.12.0/kiln_ai/adapters/eval/test_g_eval.py +497 -0
  35. kiln_ai-0.12.0/kiln_ai/adapters/eval/test_g_eval_data.py +4 -0
  36. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/fine_tune/base_finetune.py +5 -1
  37. kiln_ai-0.12.0/kiln_ai/adapters/fine_tune/dataset_formatter.py +432 -0
  38. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/fine_tune/fireworks_finetune.py +47 -32
  39. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/fine_tune/openai_finetune.py +12 -11
  40. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/fine_tune/test_base_finetune.py +19 -0
  41. kiln_ai-0.12.0/kiln_ai/adapters/fine_tune/test_dataset_formatter.py +685 -0
  42. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/fine_tune/test_fireworks_tinetune.py +114 -22
  43. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/fine_tune/test_openai_finetune.py +125 -14
  44. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/ml_model_list.py +434 -93
  45. kiln_ai-0.12.0/kiln_ai/adapters/model_adapters/__init__.py +18 -0
  46. kiln_ai-0.12.0/kiln_ai/adapters/model_adapters/base_adapter.py +250 -0
  47. kiln_ai-0.12.0/kiln_ai/adapters/model_adapters/langchain_adapters.py +309 -0
  48. kiln_ai-0.12.0/kiln_ai/adapters/model_adapters/openai_compatible_config.py +10 -0
  49. kiln_ai-0.12.0/kiln_ai/adapters/model_adapters/openai_model_adapter.py +289 -0
  50. kiln_ai-0.12.0/kiln_ai/adapters/model_adapters/test_base_adapter.py +199 -0
  51. {kiln_ai-0.8.1/kiln_ai/adapters → kiln_ai-0.12.0/kiln_ai/adapters/model_adapters}/test_langchain_adapter.py +105 -97
  52. kiln_ai-0.12.0/kiln_ai/adapters/model_adapters/test_openai_model_adapter.py +216 -0
  53. {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
  54. {kiln_ai-0.8.1/kiln_ai/adapters → kiln_ai-0.12.0/kiln_ai/adapters/model_adapters}/test_structured_output.py +125 -46
  55. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/ollama_tools.py +0 -1
  56. kiln_ai-0.12.0/kiln_ai/adapters/parsers/__init__.py +10 -0
  57. kiln_ai-0.12.0/kiln_ai/adapters/parsers/base_parser.py +12 -0
  58. kiln_ai-0.12.0/kiln_ai/adapters/parsers/json_parser.py +37 -0
  59. kiln_ai-0.12.0/kiln_ai/adapters/parsers/parser_registry.py +19 -0
  60. kiln_ai-0.12.0/kiln_ai/adapters/parsers/r1_parser.py +69 -0
  61. kiln_ai-0.12.0/kiln_ai/adapters/parsers/test_json_parser.py +81 -0
  62. kiln_ai-0.12.0/kiln_ai/adapters/parsers/test_parser_registry.py +32 -0
  63. kiln_ai-0.12.0/kiln_ai/adapters/parsers/test_r1_parser.py +144 -0
  64. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/prompt_builders.py +193 -49
  65. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/provider_tools.py +91 -36
  66. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/repair/repair_task.py +18 -19
  67. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/repair/test_repair_task.py +7 -7
  68. kiln_ai-0.12.0/kiln_ai/adapters/run_output.py +11 -0
  69. kiln_ai-0.12.0/kiln_ai/adapters/test_adapter_registry.py +177 -0
  70. kiln_ai-0.12.0/kiln_ai/adapters/test_generate_docs.py +69 -0
  71. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/test_ollama_tools.py +0 -1
  72. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/test_prompt_adaptors.py +25 -18
  73. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/test_prompt_builders.py +265 -44
  74. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/test_provider_tools.py +268 -46
  75. kiln_ai-0.12.0/kiln_ai/datamodel/__init__.py +77 -0
  76. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/datamodel/basemodel.py +31 -11
  77. kiln_ai-0.12.0/kiln_ai/datamodel/datamodel_enums.py +58 -0
  78. kiln_ai-0.12.0/kiln_ai/datamodel/dataset_filters.py +114 -0
  79. kiln_ai-0.12.0/kiln_ai/datamodel/dataset_split.py +170 -0
  80. kiln_ai-0.12.0/kiln_ai/datamodel/eval.py +298 -0
  81. kiln_ai-0.12.0/kiln_ai/datamodel/finetune.py +105 -0
  82. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/datamodel/json_schema.py +14 -3
  83. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/datamodel/model_cache.py +8 -3
  84. kiln_ai-0.12.0/kiln_ai/datamodel/project.py +23 -0
  85. kiln_ai-0.12.0/kiln_ai/datamodel/prompt.py +37 -0
  86. kiln_ai-0.12.0/kiln_ai/datamodel/prompt_id.py +83 -0
  87. kiln_ai-0.12.0/kiln_ai/datamodel/strict_mode.py +24 -0
  88. kiln_ai-0.12.0/kiln_ai/datamodel/task.py +181 -0
  89. kiln_ai-0.12.0/kiln_ai/datamodel/task_output.py +321 -0
  90. kiln_ai-0.12.0/kiln_ai/datamodel/task_run.py +164 -0
  91. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/datamodel/test_basemodel.py +80 -2
  92. kiln_ai-0.12.0/kiln_ai/datamodel/test_dataset_filters.py +71 -0
  93. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/datamodel/test_dataset_split.py +127 -6
  94. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/datamodel/test_datasource.py +3 -2
  95. kiln_ai-0.12.0/kiln_ai/datamodel/test_eval_model.py +635 -0
  96. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/datamodel/test_example_models.py +34 -17
  97. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/datamodel/test_json_schema.py +23 -0
  98. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/datamodel/test_model_cache.py +24 -0
  99. kiln_ai-0.12.0/kiln_ai/datamodel/test_model_perf.py +125 -0
  100. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/datamodel/test_models.py +131 -2
  101. kiln_ai-0.12.0/kiln_ai/datamodel/test_prompt_id.py +129 -0
  102. kiln_ai-0.12.0/kiln_ai/datamodel/test_task.py +159 -0
  103. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/utils/config.py +6 -1
  104. kiln_ai-0.12.0/kiln_ai/utils/exhaustive_error.py +6 -0
  105. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/pyproject.toml +3 -4
  106. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/uv.lock +2 -2
  107. kiln_ai-0.8.1/docs/kiln_core_docs/kiln_ai/adapters/fine_tune/dataset_formatter.html +0 -1020
  108. kiln_ai-0.8.1/docs/kiln_core_docs/kiln_ai/adapters/prompt_builders.html +0 -1762
  109. kiln_ai-0.8.1/docs/kiln_core_docs/kiln_ai/datamodel.html +0 -3391
  110. kiln_ai-0.8.1/docs/kiln_core_docs/search.js +0 -46
  111. kiln_ai-0.8.1/kiln_ai/adapters/adapter_registry.py +0 -21
  112. kiln_ai-0.8.1/kiln_ai/adapters/base_adapter.py +0 -191
  113. kiln_ai-0.8.1/kiln_ai/adapters/fine_tune/dataset_formatter.py +0 -187
  114. kiln_ai-0.8.1/kiln_ai/adapters/fine_tune/test_dataset_formatter.py +0 -342
  115. kiln_ai-0.8.1/kiln_ai/adapters/langchain_adapters.py +0 -256
  116. kiln_ai-0.8.1/kiln_ai/datamodel/__init__.py +0 -798
  117. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/.gitignore +0 -0
  118. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/.python-version +0 -0
  119. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/LICENSE.txt +0 -0
  120. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/core_library_docs/index.html +0 -0
  121. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/core_library_docs/kiln_ai/adapters/base_adapter.html +0 -0
  122. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/core_library_docs/kiln_ai/adapters/langchain_adapters.html +0 -0
  123. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/core_library_docs/kiln_ai/adapters/ml_model_list.html +0 -0
  124. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/core_library_docs/kiln_ai/adapters/prompt_builders.html +0 -0
  125. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/core_library_docs/kiln_ai/adapters/repair/repair_task.html +0 -0
  126. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/core_library_docs/kiln_ai/adapters/repair.html +0 -0
  127. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/core_library_docs/kiln_ai/adapters.html +0 -0
  128. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/core_library_docs/kiln_ai/datamodel/basemodel.html +0 -0
  129. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/core_library_docs/kiln_ai/datamodel/json_schema.html +0 -0
  130. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/core_library_docs/kiln_ai/datamodel.html +0 -0
  131. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/core_library_docs/kiln_ai/utils/config.html +0 -0
  132. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/core_library_docs/kiln_ai/utils/formatting.html +0 -0
  133. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/core_library_docs/kiln_ai/utils.html +0 -0
  134. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/core_library_docs/kiln_ai.html +0 -0
  135. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/core_library_docs/search.js +0 -0
  136. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/index.html +0 -0
  137. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai/adapters/data_gen.html +0 -0
  138. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai/adapters/fine_tune/dataset_split.html +0 -0
  139. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai/adapters/fine_tune/finetune_registry.html +0 -0
  140. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai/adapters/fine_tune.html +0 -0
  141. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai/adapters/repair.html +0 -0
  142. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai/datamodel/json_schema.html +0 -0
  143. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai/utils/formatting.html +0 -0
  144. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/docs/kiln_core_docs/kiln_ai/utils.html +0 -0
  145. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/__init__.py +0 -0
  146. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/data_gen/__init__.py +0 -0
  147. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/data_gen/data_gen_prompts.py +0 -0
  148. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/fine_tune/__init__.py +0 -0
  149. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/fine_tune/finetune_registry.py +0 -0
  150. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/adapters/repair/__init__.py +0 -0
  151. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/datamodel/registry.py +0 -0
  152. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/datamodel/test_nested_save.py +0 -0
  153. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/datamodel/test_output_rating.py +0 -0
  154. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/datamodel/test_registry.py +0 -0
  155. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/utils/__init__.py +0 -0
  156. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/utils/formatting.py +0 -0
  157. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/utils/name_generator.py +0 -0
  158. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/utils/test_config.py +0 -0
  159. {kiln_ai-0.8.1 → kiln_ai-0.12.0}/kiln_ai/utils/test_name_geneator.py +0 -0
  160. {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.8.1
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.0
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
- - [Advanced Usage](#advanced-usage)
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
- ### Advanced Usage
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) for more information.
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
- - [Advanced Usage](#advanced-usage)
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
- ### Advanced Usage
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) for more information.
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.