kiln-ai 0.17.0__tar.gz → 0.23.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.
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/.gitignore +2 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/PKG-INFO +122 -7
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/README.md +110 -4
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/docs/kiln_core_docs/kiln_ai/adapters/data_gen/data_gen_task.html +1 -1
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/docs/kiln_core_docs/kiln_ai/adapters/data_gen.html +1 -1
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/docs/kiln_core_docs/kiln_ai/adapters/eval/base_eval.html +1 -1
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/docs/kiln_core_docs/kiln_ai/adapters/eval/eval_runner.html +1 -1
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/docs/kiln_core_docs/kiln_ai/adapters/eval/g_eval.html +1 -1
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/docs/kiln_core_docs/kiln_ai/adapters/eval/registry.html +1 -1
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/docs/kiln_core_docs/kiln_ai/adapters/eval.html +1 -1
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/docs/kiln_core_docs/kiln_ai/adapters/fine_tune/base_finetune.html +1 -1
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/docs/kiln_core_docs/kiln_ai/adapters/fine_tune/dataset_formatter.html +1 -1
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/docs/kiln_core_docs/kiln_ai/adapters/fine_tune/finetune_registry.html +1 -1
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/docs/kiln_core_docs/kiln_ai/adapters/fine_tune/openai_finetune.html +1 -1
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/docs/kiln_core_docs/kiln_ai/adapters/fine_tune.html +1 -1
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/docs/kiln_core_docs/kiln_ai/adapters/ml_model_list.html +1 -1
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/docs/kiln_core_docs/kiln_ai/adapters/model_adapters/base_adapter.html +1 -1
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/docs/kiln_core_docs/kiln_ai/adapters/model_adapters/litellm_adapter.html +1 -1
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/docs/kiln_core_docs/kiln_ai/adapters/model_adapters.html +1 -1
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/docs/kiln_core_docs/kiln_ai/adapters/prompt_builders.html +1 -1
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/docs/kiln_core_docs/kiln_ai/adapters/repair/repair_task.html +1 -1
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/docs/kiln_core_docs/kiln_ai/adapters/repair.html +1 -1
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/docs/kiln_core_docs/kiln_ai/adapters.html +1 -1
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/docs/kiln_core_docs/kiln_ai/datamodel/dataset_split.html +1 -1
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/docs/kiln_core_docs/kiln_ai/datamodel/eval.html +1 -1
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/docs/kiln_core_docs/kiln_ai/datamodel/strict_mode.html +1 -1
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/docs/kiln_core_docs/kiln_ai/datamodel.html +3 -3
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/docs/kiln_core_docs/kiln_ai/utils/config.html +1 -1
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/docs/kiln_core_docs/kiln_ai/utils/formatting.html +1 -1
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/docs/kiln_core_docs/kiln_ai/utils.html +1 -1
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/docs/kiln_core_docs/kiln_ai.html +4 -4
- kiln_ai-0.23.0/docs/kiln_core_docs/search.js +46 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/__init__.py +8 -2
- kiln_ai-0.23.0/kiln_ai/adapters/adapter_registry.py +62 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/chat/chat_formatter.py +23 -21
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/chat/test_chat_formatter.py +6 -2
- kiln_ai-0.23.0/kiln_ai/adapters/chunkers/__init__.py +14 -0
- kiln_ai-0.23.0/kiln_ai/adapters/chunkers/base_chunker.py +42 -0
- kiln_ai-0.23.0/kiln_ai/adapters/chunkers/chunker_registry.py +19 -0
- kiln_ai-0.23.0/kiln_ai/adapters/chunkers/embedding_wrapper.py +46 -0
- kiln_ai-0.23.0/kiln_ai/adapters/chunkers/fixed_window_chunker.py +31 -0
- kiln_ai-0.23.0/kiln_ai/adapters/chunkers/helpers.py +23 -0
- kiln_ai-0.23.0/kiln_ai/adapters/chunkers/semantic_chunker.py +71 -0
- kiln_ai-0.23.0/kiln_ai/adapters/chunkers/test_base_chunker.py +67 -0
- kiln_ai-0.23.0/kiln_ai/adapters/chunkers/test_chunker_registry.py +54 -0
- kiln_ai-0.23.0/kiln_ai/adapters/chunkers/test_embedding_wrapper.py +107 -0
- kiln_ai-0.23.0/kiln_ai/adapters/chunkers/test_fixed_window_chunker.py +350 -0
- kiln_ai-0.23.0/kiln_ai/adapters/chunkers/test_helpers.py +75 -0
- kiln_ai-0.23.0/kiln_ai/adapters/chunkers/test_semantic_chunker.py +302 -0
- kiln_ai-0.23.0/kiln_ai/adapters/data_gen/data_gen_prompts.py +272 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/data_gen/data_gen_task.py +51 -38
- kiln_ai-0.23.0/kiln_ai/adapters/data_gen/qna_gen_task.py +73 -0
- kiln_ai-0.23.0/kiln_ai/adapters/data_gen/test_data_gen_task.py +648 -0
- kiln_ai-0.23.0/kiln_ai/adapters/data_gen/test_qna_gen_task.py +169 -0
- kiln_ai-0.23.0/kiln_ai/adapters/docker_model_runner_tools.py +119 -0
- kiln_ai-0.23.0/kiln_ai/adapters/embedding/__init__.py +0 -0
- kiln_ai-0.23.0/kiln_ai/adapters/embedding/base_embedding_adapter.py +44 -0
- kiln_ai-0.23.0/kiln_ai/adapters/embedding/embedding_registry.py +32 -0
- kiln_ai-0.23.0/kiln_ai/adapters/embedding/litellm_embedding_adapter.py +202 -0
- kiln_ai-0.23.0/kiln_ai/adapters/embedding/test_base_embedding_adapter.py +282 -0
- kiln_ai-0.23.0/kiln_ai/adapters/embedding/test_embedding_registry.py +144 -0
- kiln_ai-0.23.0/kiln_ai/adapters/embedding/test_litellm_embedding_adapter.py +1209 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/eval/base_eval.py +13 -11
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/eval/eval_runner.py +41 -10
- kiln_ai-0.23.0/kiln_ai/adapters/eval/eval_utils/eval_trace_formatter.py +165 -0
- kiln_ai-0.23.0/kiln_ai/adapters/eval/eval_utils/eval_utils.py +67 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/eval/g_eval.py +134 -19
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/eval/test_base_eval.py +51 -18
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/eval/test_eval_runner.py +215 -23
- kiln_ai-0.23.0/kiln_ai/adapters/eval/test_eval_utils.py +706 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/eval/test_g_eval.py +324 -15
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/eval/test_g_eval_data.py +1 -1
- kiln_ai-0.23.0/kiln_ai/adapters/extractors/__init__.py +18 -0
- kiln_ai-0.23.0/kiln_ai/adapters/extractors/base_extractor.py +76 -0
- kiln_ai-0.23.0/kiln_ai/adapters/extractors/encoding.py +20 -0
- kiln_ai-0.23.0/kiln_ai/adapters/extractors/extractor_registry.py +44 -0
- kiln_ai-0.23.0/kiln_ai/adapters/extractors/extractor_runner.py +112 -0
- kiln_ai-0.23.0/kiln_ai/adapters/extractors/litellm_extractor.py +407 -0
- kiln_ai-0.23.0/kiln_ai/adapters/extractors/test_base_extractor.py +253 -0
- kiln_ai-0.23.0/kiln_ai/adapters/extractors/test_encoding.py +54 -0
- kiln_ai-0.23.0/kiln_ai/adapters/extractors/test_extractor_registry.py +187 -0
- kiln_ai-0.23.0/kiln_ai/adapters/extractors/test_extractor_runner.py +183 -0
- kiln_ai-0.23.0/kiln_ai/adapters/extractors/test_litellm_extractor.py +1425 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/fine_tune/base_finetune.py +2 -6
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/fine_tune/dataset_formatter.py +1 -5
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/fine_tune/fireworks_finetune.py +32 -20
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/fine_tune/openai_finetune.py +14 -4
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/fine_tune/test_dataset_formatter.py +3 -3
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/fine_tune/test_fireworks_tinetune.py +31 -26
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/fine_tune/test_openai_finetune.py +108 -111
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/fine_tune/test_together_finetune.py +2 -6
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/fine_tune/test_vertex_finetune.py +28 -17
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/fine_tune/together_finetune.py +1 -1
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/fine_tune/vertex_finetune.py +11 -1
- kiln_ai-0.23.0/kiln_ai/adapters/ml_embedding_model_list.py +617 -0
- kiln_ai-0.23.0/kiln_ai/adapters/ml_model_list.py +5293 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/model_adapters/base_adapter.py +72 -40
- kiln_ai-0.23.0/kiln_ai/adapters/model_adapters/litellm_adapter.py +720 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/model_adapters/test_base_adapter.py +194 -19
- kiln_ai-0.23.0/kiln_ai/adapters/model_adapters/test_litellm_adapter.py +1283 -0
- kiln_ai-0.23.0/kiln_ai/adapters/model_adapters/test_litellm_adapter_tools.py +1219 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/model_adapters/test_saving_adapter_results.py +16 -9
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/model_adapters/test_structured_output.py +123 -17
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/ollama_tools.py +69 -12
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/parsers/__init__.py +1 -1
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/parsers/parser_registry.py +0 -2
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/parsers/r1_parser.py +0 -1
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/parsers/request_formatters.py +4 -3
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/parsers/test_r1_parser.py +1 -1
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/provider_tools.py +224 -65
- kiln_ai-0.23.0/kiln_ai/adapters/rag/deduplication.py +49 -0
- kiln_ai-0.23.0/kiln_ai/adapters/rag/progress.py +252 -0
- kiln_ai-0.23.0/kiln_ai/adapters/rag/rag_runners.py +861 -0
- kiln_ai-0.23.0/kiln_ai/adapters/rag/test_deduplication.py +195 -0
- kiln_ai-0.23.0/kiln_ai/adapters/rag/test_progress.py +785 -0
- kiln_ai-0.23.0/kiln_ai/adapters/rag/test_rag_runners.py +2435 -0
- kiln_ai-0.23.0/kiln_ai/adapters/remote_config.py +232 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/repair/repair_task.py +2 -7
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/repair/test_repair_task.py +12 -9
- kiln_ai-0.23.0/kiln_ai/adapters/reranker_list.py +117 -0
- kiln_ai-0.23.0/kiln_ai/adapters/rerankers/base_reranker.py +43 -0
- kiln_ai-0.23.0/kiln_ai/adapters/rerankers/litellm_reranker_adapter.py +102 -0
- kiln_ai-0.23.0/kiln_ai/adapters/rerankers/reranker_registry.py +26 -0
- kiln_ai-0.23.0/kiln_ai/adapters/rerankers/test_base_reranker.py +137 -0
- kiln_ai-0.23.0/kiln_ai/adapters/rerankers/test_litellm_reranker_adapter.py +428 -0
- kiln_ai-0.23.0/kiln_ai/adapters/rerankers/test_reranker_integration.py +79 -0
- kiln_ai-0.23.0/kiln_ai/adapters/rerankers/test_reranker_registry.py +44 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/run_output.py +3 -0
- kiln_ai-0.23.0/kiln_ai/adapters/test_adapter_registry.py +834 -0
- kiln_ai-0.23.0/kiln_ai/adapters/test_docker_model_runner_tools.py +305 -0
- kiln_ai-0.23.0/kiln_ai/adapters/test_ml_embedding_model_list.py +297 -0
- kiln_ai-0.23.0/kiln_ai/adapters/test_ml_model_list.py +428 -0
- kiln_ai-0.23.0/kiln_ai/adapters/test_ollama_tools.py +380 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/test_prompt_adaptors.py +13 -10
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/test_prompt_builders.py +1 -1
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/test_provider_tools.py +272 -20
- kiln_ai-0.23.0/kiln_ai/adapters/test_remote_config.py +1298 -0
- kiln_ai-0.23.0/kiln_ai/adapters/test_reranker_list.py +245 -0
- kiln_ai-0.23.0/kiln_ai/adapters/vector_store/__init__.py +1 -0
- kiln_ai-0.23.0/kiln_ai/adapters/vector_store/base_vector_store_adapter.py +83 -0
- kiln_ai-0.23.0/kiln_ai/adapters/vector_store/lancedb_adapter.py +348 -0
- kiln_ai-0.23.0/kiln_ai/adapters/vector_store/lancedb_helpers.py +95 -0
- kiln_ai-0.23.0/kiln_ai/adapters/vector_store/test_base_vector_store.py +160 -0
- kiln_ai-0.23.0/kiln_ai/adapters/vector_store/test_lancedb_adapter.py +1865 -0
- kiln_ai-0.23.0/kiln_ai/adapters/vector_store/test_lancedb_helpers.py +174 -0
- kiln_ai-0.23.0/kiln_ai/adapters/vector_store/test_vector_store_registry.py +243 -0
- kiln_ai-0.23.0/kiln_ai/adapters/vector_store/vector_store_registry.py +53 -0
- kiln_ai-0.23.0/kiln_ai/adapters/vector_store_loaders/__init__.py +0 -0
- kiln_ai-0.23.0/kiln_ai/adapters/vector_store_loaders/test_lancedb_loader.py +285 -0
- kiln_ai-0.23.0/kiln_ai/adapters/vector_store_loaders/test_vector_store_loader.py +761 -0
- kiln_ai-0.23.0/kiln_ai/adapters/vector_store_loaders/vector_store_loader.py +104 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/datamodel/__init__.py +43 -34
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/datamodel/basemodel.py +306 -31
- kiln_ai-0.23.0/kiln_ai/datamodel/chunk.py +221 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/datamodel/datamodel_enums.py +34 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/datamodel/dataset_filters.py +5 -4
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/datamodel/dataset_split.py +5 -3
- kiln_ai-0.23.0/kiln_ai/datamodel/embedding.py +58 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/datamodel/eval.py +125 -10
- kiln_ai-0.23.0/kiln_ai/datamodel/external_tool_server.py +464 -0
- kiln_ai-0.23.0/kiln_ai/datamodel/extraction.py +298 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/datamodel/finetune.py +2 -3
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/datamodel/json_schema.py +50 -20
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/datamodel/model_cache.py +17 -7
- kiln_ai-0.23.0/kiln_ai/datamodel/project.py +67 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/datamodel/prompt.py +2 -2
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/datamodel/prompt_id.py +4 -4
- kiln_ai-0.23.0/kiln_ai/datamodel/rag.py +84 -0
- kiln_ai-0.23.0/kiln_ai/datamodel/registry.py +16 -0
- kiln_ai-0.23.0/kiln_ai/datamodel/reranker.py +47 -0
- kiln_ai-0.23.0/kiln_ai/datamodel/run_config.py +62 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/datamodel/task.py +23 -86
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/datamodel/task_output.py +48 -15
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/datamodel/task_run.py +42 -2
- kiln_ai-0.23.0/kiln_ai/datamodel/test_attachment.py +649 -0
- kiln_ai-0.23.0/kiln_ai/datamodel/test_basemodel.py +1121 -0
- kiln_ai-0.23.0/kiln_ai/datamodel/test_chunk_models.py +808 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/datamodel/test_dataset_split.py +1 -1
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/datamodel/test_datasource.py +50 -0
- kiln_ai-0.23.0/kiln_ai/datamodel/test_embedding_models.py +439 -0
- kiln_ai-0.23.0/kiln_ai/datamodel/test_eval_model.py +1575 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/datamodel/test_example_models.py +175 -0
- kiln_ai-0.23.0/kiln_ai/datamodel/test_external_tool_server.py +1192 -0
- kiln_ai-0.23.0/kiln_ai/datamodel/test_extraction_chunk.py +224 -0
- kiln_ai-0.23.0/kiln_ai/datamodel/test_extraction_model.py +590 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/datamodel/test_json_schema.py +23 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/datamodel/test_model_cache.py +108 -30
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/datamodel/test_model_perf.py +1 -1
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/datamodel/test_models.py +9 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/datamodel/test_prompt_id.py +5 -1
- kiln_ai-0.23.0/kiln_ai/datamodel/test_rag.py +658 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/datamodel/test_registry.py +8 -3
- kiln_ai-0.23.0/kiln_ai/datamodel/test_reranker.py +316 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/datamodel/test_task.py +55 -48
- kiln_ai-0.23.0/kiln_ai/datamodel/test_tool_id.py +425 -0
- kiln_ai-0.23.0/kiln_ai/datamodel/test_vector_store.py +550 -0
- kiln_ai-0.23.0/kiln_ai/datamodel/tool_id.py +154 -0
- kiln_ai-0.23.0/kiln_ai/datamodel/vector_store.py +123 -0
- kiln_ai-0.23.0/kiln_ai/tools/__init__.py +8 -0
- kiln_ai-0.23.0/kiln_ai/tools/base_tool.py +116 -0
- kiln_ai-0.23.0/kiln_ai/tools/built_in_tools/__init__.py +13 -0
- kiln_ai-0.23.0/kiln_ai/tools/built_in_tools/math_tools.py +156 -0
- kiln_ai-0.23.0/kiln_ai/tools/built_in_tools/test_math_tools.py +204 -0
- kiln_ai-0.23.0/kiln_ai/tools/kiln_task_tool.py +162 -0
- kiln_ai-0.23.0/kiln_ai/tools/mcp_server_tool.py +100 -0
- kiln_ai-0.23.0/kiln_ai/tools/mcp_session_manager.py +272 -0
- kiln_ai-0.23.0/kiln_ai/tools/rag_tools.py +236 -0
- kiln_ai-0.23.0/kiln_ai/tools/test_base_tools.py +199 -0
- kiln_ai-0.23.0/kiln_ai/tools/test_kiln_task_tool.py +498 -0
- kiln_ai-0.23.0/kiln_ai/tools/test_mcp_server_tool.py +460 -0
- kiln_ai-0.23.0/kiln_ai/tools/test_mcp_session_manager.py +1560 -0
- kiln_ai-0.23.0/kiln_ai/tools/test_rag_tools.py +1396 -0
- kiln_ai-0.23.0/kiln_ai/tools/test_tool_registry.py +761 -0
- kiln_ai-0.23.0/kiln_ai/tools/tool_registry.py +117 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/utils/__init__.py +3 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/utils/async_job_runner.py +62 -17
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/utils/config.py +42 -2
- kiln_ai-0.23.0/kiln_ai/utils/env.py +15 -0
- kiln_ai-0.23.0/kiln_ai/utils/filesystem.py +14 -0
- kiln_ai-0.23.0/kiln_ai/utils/filesystem_cache.py +72 -0
- kiln_ai-0.23.0/kiln_ai/utils/litellm.py +97 -0
- kiln_ai-0.23.0/kiln_ai/utils/lock.py +100 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/utils/logging.py +4 -3
- kiln_ai-0.23.0/kiln_ai/utils/mime_type.py +38 -0
- kiln_ai-0.23.0/kiln_ai/utils/open_ai_types.py +111 -0
- kiln_ai-0.23.0/kiln_ai/utils/pdf_utils.py +93 -0
- kiln_ai-0.17.0/kiln_ai/datamodel/registry.py → kiln_ai-0.23.0/kiln_ai/utils/project_utils.py +1 -15
- kiln_ai-0.23.0/kiln_ai/utils/rag_utils.py +25 -0
- kiln_ai-0.23.0/kiln_ai/utils/test_async_job_runner.py +315 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/utils/test_config.py +138 -1
- kiln_ai-0.23.0/kiln_ai/utils/test_env.py +142 -0
- kiln_ai-0.23.0/kiln_ai/utils/test_filesystem_cache.py +392 -0
- kiln_ai-0.23.0/kiln_ai/utils/test_litellm.py +220 -0
- kiln_ai-0.23.0/kiln_ai/utils/test_lock.py +185 -0
- kiln_ai-0.23.0/kiln_ai/utils/test_mime_type.py +66 -0
- kiln_ai-0.23.0/kiln_ai/utils/test_open_ai_types.py +207 -0
- kiln_ai-0.23.0/kiln_ai/utils/test_pdf_utils.py +133 -0
- kiln_ai-0.23.0/kiln_ai/utils/test_rag_utils.py +158 -0
- kiln_ai-0.23.0/kiln_ai/utils/test_uuid.py +111 -0
- kiln_ai-0.23.0/kiln_ai/utils/test_validation.py +566 -0
- kiln_ai-0.23.0/kiln_ai/utils/uuid.py +9 -0
- kiln_ai-0.23.0/kiln_ai/utils/validation.py +99 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/pyproject.toml +12 -3
- kiln_ai-0.17.0/docs/kiln_core_docs/search.js +0 -46
- kiln_ai-0.17.0/kiln_ai/adapters/adapter_registry.py +0 -199
- kiln_ai-0.17.0/kiln_ai/adapters/data_gen/data_gen_prompts.py +0 -73
- kiln_ai-0.17.0/kiln_ai/adapters/data_gen/test_data_gen_task.py +0 -334
- kiln_ai-0.17.0/kiln_ai/adapters/ml_model_list.py +0 -2333
- kiln_ai-0.17.0/kiln_ai/adapters/model_adapters/litellm_adapter.py +0 -412
- kiln_ai-0.17.0/kiln_ai/adapters/model_adapters/test_litellm_adapter.py +0 -506
- kiln_ai-0.17.0/kiln_ai/adapters/test_adapter_registry.py +0 -234
- kiln_ai-0.17.0/kiln_ai/adapters/test_ml_model_list.py +0 -158
- kiln_ai-0.17.0/kiln_ai/adapters/test_ollama_tools.py +0 -41
- kiln_ai-0.17.0/kiln_ai/datamodel/project.py +0 -23
- kiln_ai-0.17.0/kiln_ai/datamodel/test_basemodel.py +0 -555
- kiln_ai-0.17.0/kiln_ai/datamodel/test_eval_model.py +0 -635
- kiln_ai-0.17.0/kiln_ai/utils/test_async_job_runner.py +0 -199
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/.python-version +0 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/LICENSE.txt +0 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/docs/kiln_core_docs/index.html +0 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/__init__.py +0 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/chat/__init__.py +0 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/data_gen/__init__.py +0 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/eval/__init__.py +0 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/eval/registry.py +0 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/fine_tune/__init__.py +1 -1
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/fine_tune/finetune_registry.py +0 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/fine_tune/test_base_finetune.py +0 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/model_adapters/__init__.py +0 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/model_adapters/litellm_config.py +0 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/parsers/base_parser.py +0 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/parsers/json_parser.py +0 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/parsers/test_json_parser.py +0 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/parsers/test_parser_registry.py +0 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/parsers/test_request_formatters.py +0 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/prompt_builders.py +0 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/adapters/repair/__init__.py +0 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/datamodel/strict_mode.py +0 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/datamodel/test_dataset_filters.py +0 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/datamodel/test_nested_save.py +0 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/datamodel/test_output_rating.py +0 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/utils/dataset_import.py +0 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/utils/exhaustive_error.py +0 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/utils/formatting.py +0 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/utils/name_generator.py +0 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/utils/test_dataset_import.py +0 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/kiln_ai/utils/test_name_geneator.py +0 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/setup.cfg +0 -0
- {kiln_ai-0.17.0 → kiln_ai-0.23.0}/uv.lock +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: kiln-ai
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.23.0
|
|
4
4
|
Summary: Kiln AI
|
|
5
|
-
Project-URL: Homepage, https://
|
|
5
|
+
Project-URL: Homepage, https://kiln.tech
|
|
6
6
|
Project-URL: Repository, https://github.com/Kiln-AI/kiln
|
|
7
7
|
Project-URL: Documentation, https://kiln-ai.github.io/Kiln/kiln_core_docs/kiln_ai.html
|
|
8
8
|
Project-URL: Issues, https://github.com/Kiln-AI/kiln/issues
|
|
@@ -15,14 +15,23 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.12
|
|
16
16
|
Classifier: Programming Language :: Python :: 3.13
|
|
17
17
|
Requires-Python: >=3.10
|
|
18
|
+
Requires-Dist: anyio>=4.10.0
|
|
18
19
|
Requires-Dist: boto3>=1.37.10
|
|
19
20
|
Requires-Dist: coverage>=7.6.4
|
|
21
|
+
Requires-Dist: exceptiongroup>=1.0.0; python_version < '3.11'
|
|
20
22
|
Requires-Dist: google-cloud-aiplatform>=1.84.0
|
|
23
|
+
Requires-Dist: google-genai>=1.21.1
|
|
21
24
|
Requires-Dist: jsonschema>=4.23.0
|
|
22
|
-
Requires-Dist:
|
|
25
|
+
Requires-Dist: lancedb>=0.24.2
|
|
26
|
+
Requires-Dist: litellm>=1.79.3
|
|
27
|
+
Requires-Dist: llama-index-vector-stores-lancedb>=0.4.2
|
|
28
|
+
Requires-Dist: llama-index>=0.13.3
|
|
23
29
|
Requires-Dist: openai>=1.53.0
|
|
24
30
|
Requires-Dist: pdoc>=15.0.0
|
|
31
|
+
Requires-Dist: pillow>=11.1.0
|
|
25
32
|
Requires-Dist: pydantic>=2.9.2
|
|
33
|
+
Requires-Dist: pypdf>=6.0.0
|
|
34
|
+
Requires-Dist: pypdfium2>=4.30.0
|
|
26
35
|
Requires-Dist: pytest-benchmark>=5.1.0
|
|
27
36
|
Requires-Dist: pytest-cov>=6.0.0
|
|
28
37
|
Requires-Dist: pyyaml>=6.0.2
|
|
@@ -53,7 +62,7 @@ pip install kiln_ai
|
|
|
53
62
|
|
|
54
63
|
## About
|
|
55
64
|
|
|
56
|
-
This package is the Kiln AI core library. There is also a separate desktop application and server package. Learn more about Kiln AI at [
|
|
65
|
+
This package is the Kiln AI core library. There is also a separate desktop application and server package. Learn more about Kiln AI at [kiln.tech](https://kiln.tech) and on Github: [github.com/Kiln-AI/kiln](https://github.com/Kiln-AI/kiln).
|
|
57
66
|
|
|
58
67
|
# Guide: Using the Kiln Python Library
|
|
59
68
|
|
|
@@ -65,6 +74,7 @@ The library has a [comprehensive set of docs](https://kiln-ai.github.io/Kiln/kil
|
|
|
65
74
|
|
|
66
75
|
## Table of Contents
|
|
67
76
|
|
|
77
|
+
- [Connecting AI Providers](#connecting-ai-providers-openai-openrouter-ollama-etc)
|
|
68
78
|
- [Using the Kiln Data Model](#using-the-kiln-data-model)
|
|
69
79
|
- [Understanding the Kiln Data Model](#understanding-the-kiln-data-model)
|
|
70
80
|
- [Datamodel Overview](#datamodel-overview)
|
|
@@ -73,7 +83,12 @@ The library has a [comprehensive set of docs](https://kiln-ai.github.io/Kiln/kil
|
|
|
73
83
|
- [Using your Kiln Dataset in a Notebook or Project](#using-your-kiln-dataset-in-a-notebook-or-project)
|
|
74
84
|
- [Using Kiln Dataset in Pandas](#using-kiln-dataset-in-pandas)
|
|
75
85
|
- [Building and Running a Kiln Task from Code](#building-and-running-a-kiln-task-from-code)
|
|
86
|
+
- [Tagging Task Runs Programmatically](#tagging-task-runs-programmatically)
|
|
76
87
|
- [Adding Custom Model or AI Provider from Code](#adding-custom-model-or-ai-provider-from-code)
|
|
88
|
+
- [Taking Kiln RAG to production](#taking-kiln-rag-to-production)
|
|
89
|
+
- [Load a LlamaIndex Vector Store](#load-a-llamaindex-vector-store)
|
|
90
|
+
- [Example: LanceDB Cloud](#example-lancedb-cloud)
|
|
91
|
+
- [Deploy RAG without LlamaIndex](#deploy-rag-without-llamaindex)
|
|
77
92
|
- [Full API Reference](#full-api-reference)
|
|
78
93
|
|
|
79
94
|
## Installation
|
|
@@ -82,6 +97,12 @@ The library has a [comprehensive set of docs](https://kiln-ai.github.io/Kiln/kil
|
|
|
82
97
|
pip install kiln-ai
|
|
83
98
|
```
|
|
84
99
|
|
|
100
|
+
## Connecting AI Providers (OpenAI, OpenRouter, Ollama, etc)
|
|
101
|
+
|
|
102
|
+
The easiest way to connect AI providers is to use the Kiln app UI. Once connected in the UI, credentials will be stored to `~/.kiln_ai/settings.yml`, which will be available to the library.
|
|
103
|
+
|
|
104
|
+
For configuring credentials from code or connecting custom servers/model, see [Adding Custom Model or AI Provider from Code](#adding-custom-model-or-ai-provider-from-code).
|
|
105
|
+
|
|
85
106
|
## Using the Kiln Data Model
|
|
86
107
|
|
|
87
108
|
### Understanding the Kiln Data Model
|
|
@@ -179,7 +200,10 @@ item = kiln_ai.datamodel.TaskRun(
|
|
|
179
200
|
type=kiln_ai.datamodel.DataSourceType.human,
|
|
180
201
|
properties={"created_by": "Jane Doe"},
|
|
181
202
|
),
|
|
182
|
-
rating=kiln_ai.datamodel.TaskOutputRating(
|
|
203
|
+
rating=kiln_ai.datamodel.TaskOutputRating(
|
|
204
|
+
value=5,
|
|
205
|
+
type=kiln_ai.datamodel.datamodel_enums.five_star,
|
|
206
|
+
),
|
|
183
207
|
),
|
|
184
208
|
)
|
|
185
209
|
item.save_to_file()
|
|
@@ -270,14 +294,33 @@ for run in task.runs():
|
|
|
270
294
|
|
|
271
295
|
```
|
|
272
296
|
|
|
297
|
+
## Tagging Task Runs Programmatically
|
|
298
|
+
|
|
299
|
+
You can also tag your Kiln Task runs programmatically:
|
|
300
|
+
|
|
301
|
+
```py
|
|
302
|
+
# Load your Kiln Task from disk
|
|
303
|
+
task_path = "/Users/youruser/Kiln Projects/test project/tasks/632780983478 - Joke Generator/task.kiln"
|
|
304
|
+
task = kiln_ai.datamodel.Task.load_from_file(task_path)
|
|
305
|
+
|
|
306
|
+
for run in task.runs():
|
|
307
|
+
# Parse the task output from JSON
|
|
308
|
+
output = json.loads(run.output.output)
|
|
309
|
+
|
|
310
|
+
# Add a tag if the punchline is unusually short
|
|
311
|
+
if len(output["punchline"]) < 100:
|
|
312
|
+
run.tags.append("very_short")
|
|
313
|
+
run.save_to_file() # Persist the updated tags
|
|
314
|
+
```
|
|
315
|
+
|
|
273
316
|
### Adding Custom Model or AI Provider from Code
|
|
274
317
|
|
|
275
318
|
You can add additional AI models and providers to Kiln.
|
|
276
319
|
|
|
277
320
|
See our docs for more information, including how to add these from the UI:
|
|
278
321
|
|
|
279
|
-
- [Custom Models From Existing Providers](https://docs.
|
|
280
|
-
- [Custom OpenAI Compatible Servers](https://docs.
|
|
322
|
+
- [Custom Models From Existing Providers](https://docs.kiln.tech/docs/models-and-ai-providers#custom-models-from-existing-providers)
|
|
323
|
+
- [Custom OpenAI Compatible Servers](https://docs.kiln.tech/docs/models-and-ai-providers#custom-openai-compatible-servers)
|
|
281
324
|
|
|
282
325
|
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`):
|
|
283
326
|
|
|
@@ -313,6 +356,78 @@ custom_model_ids.append(new_model)
|
|
|
313
356
|
Config.shared().custom_models = custom_model_ids
|
|
314
357
|
```
|
|
315
358
|
|
|
359
|
+
## Taking Kiln RAG to production
|
|
360
|
+
|
|
361
|
+
When you're ready to deploy your RAG system, you can export your processed documents to any vector store supported by LlamaIndex. This allows you to use your Kiln-configured chunking and embedding settings in production.
|
|
362
|
+
|
|
363
|
+
### Load a LlamaIndex Vector Store
|
|
364
|
+
|
|
365
|
+
Kiln provides a `VectorStoreLoader` that yields your processed document chunks as LlamaIndex `TextNode` objects. These nodes contain the same metadata, chunking and embedding data as your Kiln Search Tool configuration.
|
|
366
|
+
|
|
367
|
+
```py
|
|
368
|
+
from kiln_ai.datamodel import Project
|
|
369
|
+
from kiln_ai.datamodel.rag import RagConfig
|
|
370
|
+
from kiln_ai.adapters.vector_store_loaders import VectorStoreLoader
|
|
371
|
+
|
|
372
|
+
# Load your project and RAG configuration
|
|
373
|
+
project = Project.load_from_file("path/to/your/project.kiln")
|
|
374
|
+
rag_config = RagConfig.from_id_and_parent_path("rag-config-id", project.path)
|
|
375
|
+
|
|
376
|
+
# Create the loader
|
|
377
|
+
loader = VectorStoreLoader(project=project, rag_config=rag_config)
|
|
378
|
+
|
|
379
|
+
# Export chunks to any LlamaIndex vector store
|
|
380
|
+
async for batch in loader.iter_llama_index_nodes(batch_size=10):
|
|
381
|
+
# Insert into your chosen vector store
|
|
382
|
+
# Examples: LanceDB, Pinecone, Chroma, Qdrant, etc.
|
|
383
|
+
pass
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
**Supported Vector Stores:** LlamaIndex supports 20+ vector stores including LanceDB, Pinecone, Weaviate, Chroma, Qdrant, and more. See the [full list](https://developers.llamaindex.ai/python/framework/module_guides/storing/vector_stores/).
|
|
387
|
+
|
|
388
|
+
### Example: LanceDB Cloud
|
|
389
|
+
|
|
390
|
+
Internally Kiln uses LanceDB. By using LanceDB cloud you'll get the same indexing behaviour as in app.
|
|
391
|
+
|
|
392
|
+
Here's a complete example using LanceDB Cloud:
|
|
393
|
+
|
|
394
|
+
```py
|
|
395
|
+
from kiln_ai.datamodel import Project
|
|
396
|
+
from kiln_ai.datamodel.rag import RagConfig
|
|
397
|
+
from kiln_ai.datamodel.vector_store import VectorStoreConfig
|
|
398
|
+
from kiln_ai.adapters.vector_store_loaders import VectorStoreLoader
|
|
399
|
+
from kiln_ai.adapters.vector_store.lancedb_adapter import lancedb_construct_from_config
|
|
400
|
+
|
|
401
|
+
# Load configurations
|
|
402
|
+
project = Project.load_from_file("path/to/your/project.kiln")
|
|
403
|
+
rag_config = RagConfig.from_id_and_parent_path("rag-config-id", project.path)
|
|
404
|
+
vector_store_config = VectorStoreConfig.from_id_and_parent_path(
|
|
405
|
+
rag_config.vector_store_config_id, project.path,
|
|
406
|
+
)
|
|
407
|
+
|
|
408
|
+
# Create LanceDB vector store
|
|
409
|
+
lancedb_store = lancedb_construct_from_config(
|
|
410
|
+
vector_store_config=vector_store_config,
|
|
411
|
+
uri="db://my-project",
|
|
412
|
+
api_key="sk_...",
|
|
413
|
+
region="us-east-1",
|
|
414
|
+
table_name="my-documents", # Created automatically
|
|
415
|
+
)
|
|
416
|
+
|
|
417
|
+
# Export and insert your documents
|
|
418
|
+
loader = VectorStoreLoader(project=project, rag_config=rag_config)
|
|
419
|
+
async for batch in loader.iter_llama_index_nodes(batch_size=100):
|
|
420
|
+
await lancedb_store.async_add(batch)
|
|
421
|
+
|
|
422
|
+
print("Documents successfully exported to LanceDB!")
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
After export, query your data using [LlamaIndex](https://developers.llamaindex.ai/python/framework-api-reference/storage/vector_store/lancedb/) or the [LanceDB client](https://lancedb.github.io/lancedb/).
|
|
426
|
+
|
|
427
|
+
### Deploy RAG without LlamaIndex
|
|
428
|
+
|
|
429
|
+
While Kiln is designed for deploying to LlamaIndex, you don't need to use it. The `iter_llama_index_nodes` returns a `TextNode` object which includes all the data you need to build a RAG index in any stack: embedding, text, document name, chunk ID, etc.
|
|
430
|
+
|
|
316
431
|
## Full API Reference
|
|
317
432
|
|
|
318
433
|
The library can do a lot more than the examples we've shown here.
|
|
@@ -20,7 +20,7 @@ pip install kiln_ai
|
|
|
20
20
|
|
|
21
21
|
## About
|
|
22
22
|
|
|
23
|
-
This package is the Kiln AI core library. There is also a separate desktop application and server package. Learn more about Kiln AI at [
|
|
23
|
+
This package is the Kiln AI core library. There is also a separate desktop application and server package. Learn more about Kiln AI at [kiln.tech](https://kiln.tech) and on Github: [github.com/Kiln-AI/kiln](https://github.com/Kiln-AI/kiln).
|
|
24
24
|
|
|
25
25
|
# Guide: Using the Kiln Python Library
|
|
26
26
|
|
|
@@ -32,6 +32,7 @@ The library has a [comprehensive set of docs](https://kiln-ai.github.io/Kiln/kil
|
|
|
32
32
|
|
|
33
33
|
## Table of Contents
|
|
34
34
|
|
|
35
|
+
- [Connecting AI Providers](#connecting-ai-providers-openai-openrouter-ollama-etc)
|
|
35
36
|
- [Using the Kiln Data Model](#using-the-kiln-data-model)
|
|
36
37
|
- [Understanding the Kiln Data Model](#understanding-the-kiln-data-model)
|
|
37
38
|
- [Datamodel Overview](#datamodel-overview)
|
|
@@ -40,7 +41,12 @@ The library has a [comprehensive set of docs](https://kiln-ai.github.io/Kiln/kil
|
|
|
40
41
|
- [Using your Kiln Dataset in a Notebook or Project](#using-your-kiln-dataset-in-a-notebook-or-project)
|
|
41
42
|
- [Using Kiln Dataset in Pandas](#using-kiln-dataset-in-pandas)
|
|
42
43
|
- [Building and Running a Kiln Task from Code](#building-and-running-a-kiln-task-from-code)
|
|
44
|
+
- [Tagging Task Runs Programmatically](#tagging-task-runs-programmatically)
|
|
43
45
|
- [Adding Custom Model or AI Provider from Code](#adding-custom-model-or-ai-provider-from-code)
|
|
46
|
+
- [Taking Kiln RAG to production](#taking-kiln-rag-to-production)
|
|
47
|
+
- [Load a LlamaIndex Vector Store](#load-a-llamaindex-vector-store)
|
|
48
|
+
- [Example: LanceDB Cloud](#example-lancedb-cloud)
|
|
49
|
+
- [Deploy RAG without LlamaIndex](#deploy-rag-without-llamaindex)
|
|
44
50
|
- [Full API Reference](#full-api-reference)
|
|
45
51
|
|
|
46
52
|
## Installation
|
|
@@ -49,6 +55,12 @@ The library has a [comprehensive set of docs](https://kiln-ai.github.io/Kiln/kil
|
|
|
49
55
|
pip install kiln-ai
|
|
50
56
|
```
|
|
51
57
|
|
|
58
|
+
## Connecting AI Providers (OpenAI, OpenRouter, Ollama, etc)
|
|
59
|
+
|
|
60
|
+
The easiest way to connect AI providers is to use the Kiln app UI. Once connected in the UI, credentials will be stored to `~/.kiln_ai/settings.yml`, which will be available to the library.
|
|
61
|
+
|
|
62
|
+
For configuring credentials from code or connecting custom servers/model, see [Adding Custom Model or AI Provider from Code](#adding-custom-model-or-ai-provider-from-code).
|
|
63
|
+
|
|
52
64
|
## Using the Kiln Data Model
|
|
53
65
|
|
|
54
66
|
### Understanding the Kiln Data Model
|
|
@@ -146,7 +158,10 @@ item = kiln_ai.datamodel.TaskRun(
|
|
|
146
158
|
type=kiln_ai.datamodel.DataSourceType.human,
|
|
147
159
|
properties={"created_by": "Jane Doe"},
|
|
148
160
|
),
|
|
149
|
-
rating=kiln_ai.datamodel.TaskOutputRating(
|
|
161
|
+
rating=kiln_ai.datamodel.TaskOutputRating(
|
|
162
|
+
value=5,
|
|
163
|
+
type=kiln_ai.datamodel.datamodel_enums.five_star,
|
|
164
|
+
),
|
|
150
165
|
),
|
|
151
166
|
)
|
|
152
167
|
item.save_to_file()
|
|
@@ -237,14 +252,33 @@ for run in task.runs():
|
|
|
237
252
|
|
|
238
253
|
```
|
|
239
254
|
|
|
255
|
+
## Tagging Task Runs Programmatically
|
|
256
|
+
|
|
257
|
+
You can also tag your Kiln Task runs programmatically:
|
|
258
|
+
|
|
259
|
+
```py
|
|
260
|
+
# Load your Kiln Task from disk
|
|
261
|
+
task_path = "/Users/youruser/Kiln Projects/test project/tasks/632780983478 - Joke Generator/task.kiln"
|
|
262
|
+
task = kiln_ai.datamodel.Task.load_from_file(task_path)
|
|
263
|
+
|
|
264
|
+
for run in task.runs():
|
|
265
|
+
# Parse the task output from JSON
|
|
266
|
+
output = json.loads(run.output.output)
|
|
267
|
+
|
|
268
|
+
# Add a tag if the punchline is unusually short
|
|
269
|
+
if len(output["punchline"]) < 100:
|
|
270
|
+
run.tags.append("very_short")
|
|
271
|
+
run.save_to_file() # Persist the updated tags
|
|
272
|
+
```
|
|
273
|
+
|
|
240
274
|
### Adding Custom Model or AI Provider from Code
|
|
241
275
|
|
|
242
276
|
You can add additional AI models and providers to Kiln.
|
|
243
277
|
|
|
244
278
|
See our docs for more information, including how to add these from the UI:
|
|
245
279
|
|
|
246
|
-
- [Custom Models From Existing Providers](https://docs.
|
|
247
|
-
- [Custom OpenAI Compatible Servers](https://docs.
|
|
280
|
+
- [Custom Models From Existing Providers](https://docs.kiln.tech/docs/models-and-ai-providers#custom-models-from-existing-providers)
|
|
281
|
+
- [Custom OpenAI Compatible Servers](https://docs.kiln.tech/docs/models-and-ai-providers#custom-openai-compatible-servers)
|
|
248
282
|
|
|
249
283
|
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
284
|
|
|
@@ -280,6 +314,78 @@ custom_model_ids.append(new_model)
|
|
|
280
314
|
Config.shared().custom_models = custom_model_ids
|
|
281
315
|
```
|
|
282
316
|
|
|
317
|
+
## Taking Kiln RAG to production
|
|
318
|
+
|
|
319
|
+
When you're ready to deploy your RAG system, you can export your processed documents to any vector store supported by LlamaIndex. This allows you to use your Kiln-configured chunking and embedding settings in production.
|
|
320
|
+
|
|
321
|
+
### Load a LlamaIndex Vector Store
|
|
322
|
+
|
|
323
|
+
Kiln provides a `VectorStoreLoader` that yields your processed document chunks as LlamaIndex `TextNode` objects. These nodes contain the same metadata, chunking and embedding data as your Kiln Search Tool configuration.
|
|
324
|
+
|
|
325
|
+
```py
|
|
326
|
+
from kiln_ai.datamodel import Project
|
|
327
|
+
from kiln_ai.datamodel.rag import RagConfig
|
|
328
|
+
from kiln_ai.adapters.vector_store_loaders import VectorStoreLoader
|
|
329
|
+
|
|
330
|
+
# Load your project and RAG configuration
|
|
331
|
+
project = Project.load_from_file("path/to/your/project.kiln")
|
|
332
|
+
rag_config = RagConfig.from_id_and_parent_path("rag-config-id", project.path)
|
|
333
|
+
|
|
334
|
+
# Create the loader
|
|
335
|
+
loader = VectorStoreLoader(project=project, rag_config=rag_config)
|
|
336
|
+
|
|
337
|
+
# Export chunks to any LlamaIndex vector store
|
|
338
|
+
async for batch in loader.iter_llama_index_nodes(batch_size=10):
|
|
339
|
+
# Insert into your chosen vector store
|
|
340
|
+
# Examples: LanceDB, Pinecone, Chroma, Qdrant, etc.
|
|
341
|
+
pass
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
**Supported Vector Stores:** LlamaIndex supports 20+ vector stores including LanceDB, Pinecone, Weaviate, Chroma, Qdrant, and more. See the [full list](https://developers.llamaindex.ai/python/framework/module_guides/storing/vector_stores/).
|
|
345
|
+
|
|
346
|
+
### Example: LanceDB Cloud
|
|
347
|
+
|
|
348
|
+
Internally Kiln uses LanceDB. By using LanceDB cloud you'll get the same indexing behaviour as in app.
|
|
349
|
+
|
|
350
|
+
Here's a complete example using LanceDB Cloud:
|
|
351
|
+
|
|
352
|
+
```py
|
|
353
|
+
from kiln_ai.datamodel import Project
|
|
354
|
+
from kiln_ai.datamodel.rag import RagConfig
|
|
355
|
+
from kiln_ai.datamodel.vector_store import VectorStoreConfig
|
|
356
|
+
from kiln_ai.adapters.vector_store_loaders import VectorStoreLoader
|
|
357
|
+
from kiln_ai.adapters.vector_store.lancedb_adapter import lancedb_construct_from_config
|
|
358
|
+
|
|
359
|
+
# Load configurations
|
|
360
|
+
project = Project.load_from_file("path/to/your/project.kiln")
|
|
361
|
+
rag_config = RagConfig.from_id_and_parent_path("rag-config-id", project.path)
|
|
362
|
+
vector_store_config = VectorStoreConfig.from_id_and_parent_path(
|
|
363
|
+
rag_config.vector_store_config_id, project.path,
|
|
364
|
+
)
|
|
365
|
+
|
|
366
|
+
# Create LanceDB vector store
|
|
367
|
+
lancedb_store = lancedb_construct_from_config(
|
|
368
|
+
vector_store_config=vector_store_config,
|
|
369
|
+
uri="db://my-project",
|
|
370
|
+
api_key="sk_...",
|
|
371
|
+
region="us-east-1",
|
|
372
|
+
table_name="my-documents", # Created automatically
|
|
373
|
+
)
|
|
374
|
+
|
|
375
|
+
# Export and insert your documents
|
|
376
|
+
loader = VectorStoreLoader(project=project, rag_config=rag_config)
|
|
377
|
+
async for batch in loader.iter_llama_index_nodes(batch_size=100):
|
|
378
|
+
await lancedb_store.async_add(batch)
|
|
379
|
+
|
|
380
|
+
print("Documents successfully exported to LanceDB!")
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
After export, query your data using [LlamaIndex](https://developers.llamaindex.ai/python/framework-api-reference/storage/vector_store/lancedb/) or the [LanceDB client](https://lancedb.github.io/lancedb/).
|
|
384
|
+
|
|
385
|
+
### Deploy RAG without LlamaIndex
|
|
386
|
+
|
|
387
|
+
While Kiln is designed for deploying to LlamaIndex, you don't need to use it. The `iter_llama_index_nodes` returns a `TextNode` object which includes all the data you need to build a RAG index in any stack: embedding, text, document name, chunk ID, etc.
|
|
388
|
+
|
|
283
389
|
## Full API Reference
|
|
284
390
|
|
|
285
391
|
The library can do a lot more than the examples we've shown here.
|
{kiln_ai-0.17.0 → kiln_ai-0.23.0}/docs/kiln_core_docs/kiln_ai/adapters/data_gen/data_gen_task.html
RENAMED
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
<path fill-rule="evenodd" d="M4.146 8.354a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H14.5a.5.5 0 0 1 0 1H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3z"/>
|
|
23
23
|
</svg> kiln_ai.adapters.data_gen</a>
|
|
24
24
|
|
|
25
|
-
<a href="https://
|
|
25
|
+
<a href="https://kiln.tech"> <img src="https://github.com/user-attachments/assets/046f44ae-28cf-4c78-85c3-c3e5ad744fd7" class="logo" alt="project logo"/>
|
|
26
26
|
</a>
|
|
27
27
|
<input type="search" placeholder="Search..." role="searchbox" aria-label="search"
|
|
28
28
|
pattern=".+" required>
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
<path fill-rule="evenodd" d="M4.146 8.354a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H14.5a.5.5 0 0 1 0 1H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3z"/>
|
|
23
23
|
</svg> kiln_ai.adapters</a>
|
|
24
24
|
|
|
25
|
-
<a href="https://
|
|
25
|
+
<a href="https://kiln.tech"> <img src="https://github.com/user-attachments/assets/046f44ae-28cf-4c78-85c3-c3e5ad744fd7" class="logo" alt="project logo"/>
|
|
26
26
|
</a>
|
|
27
27
|
<input type="search" placeholder="Search..." role="searchbox" aria-label="search"
|
|
28
28
|
pattern=".+" required>
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
<path fill-rule="evenodd" d="M4.146 8.354a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H14.5a.5.5 0 0 1 0 1H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3z"/>
|
|
23
23
|
</svg> kiln_ai.adapters.eval</a>
|
|
24
24
|
|
|
25
|
-
<a href="https://
|
|
25
|
+
<a href="https://kiln.tech"> <img src="https://github.com/user-attachments/assets/046f44ae-28cf-4c78-85c3-c3e5ad744fd7" class="logo" alt="project logo"/>
|
|
26
26
|
</a>
|
|
27
27
|
<input type="search" placeholder="Search..." role="searchbox" aria-label="search"
|
|
28
28
|
pattern=".+" required>
|
{kiln_ai-0.17.0 → kiln_ai-0.23.0}/docs/kiln_core_docs/kiln_ai/adapters/eval/eval_runner.html
RENAMED
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
<path fill-rule="evenodd" d="M4.146 8.354a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H14.5a.5.5 0 0 1 0 1H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3z"/>
|
|
23
23
|
</svg> kiln_ai.adapters.eval</a>
|
|
24
24
|
|
|
25
|
-
<a href="https://
|
|
25
|
+
<a href="https://kiln.tech"> <img src="https://github.com/user-attachments/assets/046f44ae-28cf-4c78-85c3-c3e5ad744fd7" class="logo" alt="project logo"/>
|
|
26
26
|
</a>
|
|
27
27
|
<input type="search" placeholder="Search..." role="searchbox" aria-label="search"
|
|
28
28
|
pattern=".+" required>
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
<path fill-rule="evenodd" d="M4.146 8.354a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H14.5a.5.5 0 0 1 0 1H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3z"/>
|
|
23
23
|
</svg> kiln_ai.adapters.eval</a>
|
|
24
24
|
|
|
25
|
-
<a href="https://
|
|
25
|
+
<a href="https://kiln.tech"> <img src="https://github.com/user-attachments/assets/046f44ae-28cf-4c78-85c3-c3e5ad744fd7" class="logo" alt="project logo"/>
|
|
26
26
|
</a>
|
|
27
27
|
<input type="search" placeholder="Search..." role="searchbox" aria-label="search"
|
|
28
28
|
pattern=".+" required>
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
<path fill-rule="evenodd" d="M4.146 8.354a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H14.5a.5.5 0 0 1 0 1H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3z"/>
|
|
23
23
|
</svg> kiln_ai.adapters.eval</a>
|
|
24
24
|
|
|
25
|
-
<a href="https://
|
|
25
|
+
<a href="https://kiln.tech"> <img src="https://github.com/user-attachments/assets/046f44ae-28cf-4c78-85c3-c3e5ad744fd7" class="logo" alt="project logo"/>
|
|
26
26
|
</a>
|
|
27
27
|
<input type="search" placeholder="Search..." role="searchbox" aria-label="search"
|
|
28
28
|
pattern=".+" required>
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
<path fill-rule="evenodd" d="M4.146 8.354a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H14.5a.5.5 0 0 1 0 1H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3z"/>
|
|
23
23
|
</svg> kiln_ai.adapters</a>
|
|
24
24
|
|
|
25
|
-
<a href="https://
|
|
25
|
+
<a href="https://kiln.tech"> <img src="https://github.com/user-attachments/assets/046f44ae-28cf-4c78-85c3-c3e5ad744fd7" class="logo" alt="project logo"/>
|
|
26
26
|
</a>
|
|
27
27
|
<input type="search" placeholder="Search..." role="searchbox" aria-label="search"
|
|
28
28
|
pattern=".+" required>
|
{kiln_ai-0.17.0 → kiln_ai-0.23.0}/docs/kiln_core_docs/kiln_ai/adapters/fine_tune/base_finetune.html
RENAMED
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
<path fill-rule="evenodd" d="M4.146 8.354a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H14.5a.5.5 0 0 1 0 1H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3z"/>
|
|
23
23
|
</svg> kiln_ai.adapters.fine_tune</a>
|
|
24
24
|
|
|
25
|
-
<a href="https://
|
|
25
|
+
<a href="https://kiln.tech"> <img src="https://github.com/user-attachments/assets/046f44ae-28cf-4c78-85c3-c3e5ad744fd7" class="logo" alt="project logo"/>
|
|
26
26
|
</a>
|
|
27
27
|
<input type="search" placeholder="Search..." role="searchbox" aria-label="search"
|
|
28
28
|
pattern=".+" required>
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
<path fill-rule="evenodd" d="M4.146 8.354a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H14.5a.5.5 0 0 1 0 1H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3z"/>
|
|
23
23
|
</svg> kiln_ai.adapters.fine_tune</a>
|
|
24
24
|
|
|
25
|
-
<a href="https://
|
|
25
|
+
<a href="https://kiln.tech"> <img src="https://github.com/user-attachments/assets/046f44ae-28cf-4c78-85c3-c3e5ad744fd7" class="logo" alt="project logo"/>
|
|
26
26
|
</a>
|
|
27
27
|
<input type="search" placeholder="Search..." role="searchbox" aria-label="search"
|
|
28
28
|
pattern=".+" required>
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
<path fill-rule="evenodd" d="M4.146 8.354a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H14.5a.5.5 0 0 1 0 1H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3z"/>
|
|
23
23
|
</svg> kiln_ai.adapters.fine_tune</a>
|
|
24
24
|
|
|
25
|
-
<a href="https://
|
|
25
|
+
<a href="https://kiln.tech"> <img src="https://github.com/user-attachments/assets/046f44ae-28cf-4c78-85c3-c3e5ad744fd7" class="logo" alt="project logo"/>
|
|
26
26
|
</a>
|
|
27
27
|
<input type="search" placeholder="Search..." role="searchbox" aria-label="search"
|
|
28
28
|
pattern=".+" required>
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
<path fill-rule="evenodd" d="M4.146 8.354a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H14.5a.5.5 0 0 1 0 1H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3z"/>
|
|
23
23
|
</svg> kiln_ai.adapters.fine_tune</a>
|
|
24
24
|
|
|
25
|
-
<a href="https://
|
|
25
|
+
<a href="https://kiln.tech"> <img src="https://github.com/user-attachments/assets/046f44ae-28cf-4c78-85c3-c3e5ad744fd7" class="logo" alt="project logo"/>
|
|
26
26
|
</a>
|
|
27
27
|
<input type="search" placeholder="Search..." role="searchbox" aria-label="search"
|
|
28
28
|
pattern=".+" required>
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
<path fill-rule="evenodd" d="M4.146 8.354a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H14.5a.5.5 0 0 1 0 1H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3z"/>
|
|
23
23
|
</svg> kiln_ai.adapters</a>
|
|
24
24
|
|
|
25
|
-
<a href="https://
|
|
25
|
+
<a href="https://kiln.tech"> <img src="https://github.com/user-attachments/assets/046f44ae-28cf-4c78-85c3-c3e5ad744fd7" class="logo" alt="project logo"/>
|
|
26
26
|
</a>
|
|
27
27
|
<input type="search" placeholder="Search..." role="searchbox" aria-label="search"
|
|
28
28
|
pattern=".+" required>
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
<path fill-rule="evenodd" d="M4.146 8.354a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H14.5a.5.5 0 0 1 0 1H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3z"/>
|
|
23
23
|
</svg> kiln_ai.adapters</a>
|
|
24
24
|
|
|
25
|
-
<a href="https://
|
|
25
|
+
<a href="https://kiln.tech"> <img src="https://github.com/user-attachments/assets/046f44ae-28cf-4c78-85c3-c3e5ad744fd7" class="logo" alt="project logo"/>
|
|
26
26
|
</a>
|
|
27
27
|
<input type="search" placeholder="Search..." role="searchbox" aria-label="search"
|
|
28
28
|
pattern=".+" required>
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
<path fill-rule="evenodd" d="M4.146 8.354a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H14.5a.5.5 0 0 1 0 1H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3z"/>
|
|
23
23
|
</svg> kiln_ai.adapters.model_adapters</a>
|
|
24
24
|
|
|
25
|
-
<a href="https://
|
|
25
|
+
<a href="https://kiln.tech"> <img src="https://github.com/user-attachments/assets/046f44ae-28cf-4c78-85c3-c3e5ad744fd7" class="logo" alt="project logo"/>
|
|
26
26
|
</a>
|
|
27
27
|
<input type="search" placeholder="Search..." role="searchbox" aria-label="search"
|
|
28
28
|
pattern=".+" required>
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
<path fill-rule="evenodd" d="M4.146 8.354a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H14.5a.5.5 0 0 1 0 1H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3z"/>
|
|
23
23
|
</svg> kiln_ai.adapters.model_adapters</a>
|
|
24
24
|
|
|
25
|
-
<a href="https://
|
|
25
|
+
<a href="https://kiln.tech"> <img src="https://github.com/user-attachments/assets/046f44ae-28cf-4c78-85c3-c3e5ad744fd7" class="logo" alt="project logo"/>
|
|
26
26
|
</a>
|
|
27
27
|
<input type="search" placeholder="Search..." role="searchbox" aria-label="search"
|
|
28
28
|
pattern=".+" required>
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
<path fill-rule="evenodd" d="M4.146 8.354a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H14.5a.5.5 0 0 1 0 1H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3z"/>
|
|
23
23
|
</svg> kiln_ai.adapters</a>
|
|
24
24
|
|
|
25
|
-
<a href="https://
|
|
25
|
+
<a href="https://kiln.tech"> <img src="https://github.com/user-attachments/assets/046f44ae-28cf-4c78-85c3-c3e5ad744fd7" class="logo" alt="project logo"/>
|
|
26
26
|
</a>
|
|
27
27
|
<input type="search" placeholder="Search..." role="searchbox" aria-label="search"
|
|
28
28
|
pattern=".+" required>
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
<path fill-rule="evenodd" d="M4.146 8.354a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H14.5a.5.5 0 0 1 0 1H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3z"/>
|
|
23
23
|
</svg> kiln_ai.adapters</a>
|
|
24
24
|
|
|
25
|
-
<a href="https://
|
|
25
|
+
<a href="https://kiln.tech"> <img src="https://github.com/user-attachments/assets/046f44ae-28cf-4c78-85c3-c3e5ad744fd7" class="logo" alt="project logo"/>
|
|
26
26
|
</a>
|
|
27
27
|
<input type="search" placeholder="Search..." role="searchbox" aria-label="search"
|
|
28
28
|
pattern=".+" required>
|
{kiln_ai-0.17.0 → kiln_ai-0.23.0}/docs/kiln_core_docs/kiln_ai/adapters/repair/repair_task.html
RENAMED
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
<path fill-rule="evenodd" d="M4.146 8.354a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H14.5a.5.5 0 0 1 0 1H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3z"/>
|
|
23
23
|
</svg> kiln_ai.adapters.repair</a>
|
|
24
24
|
|
|
25
|
-
<a href="https://
|
|
25
|
+
<a href="https://kiln.tech"> <img src="https://github.com/user-attachments/assets/046f44ae-28cf-4c78-85c3-c3e5ad744fd7" class="logo" alt="project logo"/>
|
|
26
26
|
</a>
|
|
27
27
|
<input type="search" placeholder="Search..." role="searchbox" aria-label="search"
|
|
28
28
|
pattern=".+" required>
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
<path fill-rule="evenodd" d="M4.146 8.354a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H14.5a.5.5 0 0 1 0 1H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3z"/>
|
|
23
23
|
</svg> kiln_ai.adapters</a>
|
|
24
24
|
|
|
25
|
-
<a href="https://
|
|
25
|
+
<a href="https://kiln.tech"> <img src="https://github.com/user-attachments/assets/046f44ae-28cf-4c78-85c3-c3e5ad744fd7" class="logo" alt="project logo"/>
|
|
26
26
|
</a>
|
|
27
27
|
<input type="search" placeholder="Search..." role="searchbox" aria-label="search"
|
|
28
28
|
pattern=".+" required>
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
<path fill-rule="evenodd" d="M4.146 8.354a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H14.5a.5.5 0 0 1 0 1H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3z"/>
|
|
23
23
|
</svg> kiln_ai</a>
|
|
24
24
|
|
|
25
|
-
<a href="https://
|
|
25
|
+
<a href="https://kiln.tech"> <img src="https://github.com/user-attachments/assets/046f44ae-28cf-4c78-85c3-c3e5ad744fd7" class="logo" alt="project logo"/>
|
|
26
26
|
</a>
|
|
27
27
|
<input type="search" placeholder="Search..." role="searchbox" aria-label="search"
|
|
28
28
|
pattern=".+" required>
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
<path fill-rule="evenodd" d="M4.146 8.354a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H14.5a.5.5 0 0 1 0 1H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3z"/>
|
|
23
23
|
</svg> kiln_ai.datamodel</a>
|
|
24
24
|
|
|
25
|
-
<a href="https://
|
|
25
|
+
<a href="https://kiln.tech"> <img src="https://github.com/user-attachments/assets/046f44ae-28cf-4c78-85c3-c3e5ad744fd7" class="logo" alt="project logo"/>
|
|
26
26
|
</a>
|
|
27
27
|
<input type="search" placeholder="Search..." role="searchbox" aria-label="search"
|
|
28
28
|
pattern=".+" required>
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
<path fill-rule="evenodd" d="M4.146 8.354a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H14.5a.5.5 0 0 1 0 1H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3z"/>
|
|
23
23
|
</svg> kiln_ai.datamodel</a>
|
|
24
24
|
|
|
25
|
-
<a href="https://
|
|
25
|
+
<a href="https://kiln.tech"> <img src="https://github.com/user-attachments/assets/046f44ae-28cf-4c78-85c3-c3e5ad744fd7" class="logo" alt="project logo"/>
|
|
26
26
|
</a>
|
|
27
27
|
<input type="search" placeholder="Search..." role="searchbox" aria-label="search"
|
|
28
28
|
pattern=".+" required>
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
<path fill-rule="evenodd" d="M4.146 8.354a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H14.5a.5.5 0 0 1 0 1H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3z"/>
|
|
23
23
|
</svg> kiln_ai.datamodel</a>
|
|
24
24
|
|
|
25
|
-
<a href="https://
|
|
25
|
+
<a href="https://kiln.tech"> <img src="https://github.com/user-attachments/assets/046f44ae-28cf-4c78-85c3-c3e5ad744fd7" class="logo" alt="project logo"/>
|
|
26
26
|
</a>
|
|
27
27
|
<input type="search" placeholder="Search..." role="searchbox" aria-label="search"
|
|
28
28
|
pattern=".+" required>
|