kiln-ai 0.22.0__py3-none-any.whl → 0.22.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of kiln-ai might be problematic. Click here for more details.

@@ -7,7 +7,11 @@ from kiln_ai.datamodel.external_tool_server import ExternalToolServer
7
7
  from kiln_ai.datamodel.task import TaskRunConfig
8
8
  from kiln_ai.datamodel.task_output import DataSource, DataSourceType
9
9
  from kiln_ai.datamodel.tool_id import ToolId
10
- from kiln_ai.tools.base_tool import KilnToolInterface, ToolCallContext
10
+ from kiln_ai.tools.base_tool import (
11
+ KilnToolInterface,
12
+ ToolCallContext,
13
+ ToolCallDefinition,
14
+ )
11
15
  from kiln_ai.utils.project_utils import project_from_id
12
16
 
13
17
 
@@ -48,7 +52,7 @@ class KilnTaskTool(KilnToolInterface):
48
52
  async def description(self) -> str:
49
53
  return self._description
50
54
 
51
- async def toolcall_definition(self) -> Dict[str, Any]:
55
+ async def toolcall_definition(self) -> ToolCallDefinition:
52
56
  """Generate OpenAI-compatible tool definition."""
53
57
  return {
54
58
  "type": "function",
@@ -1,11 +1,13 @@
1
- from typing import Any, Dict
2
-
3
1
  from mcp.types import CallToolResult, TextContent
4
2
  from mcp.types import Tool as MCPTool
5
3
 
6
4
  from kiln_ai.datamodel.external_tool_server import ExternalToolServer
7
5
  from kiln_ai.datamodel.tool_id import MCP_REMOTE_TOOL_ID_PREFIX, ToolId
8
- from kiln_ai.tools.base_tool import KilnToolInterface, ToolCallContext
6
+ from kiln_ai.tools.base_tool import (
7
+ KilnToolInterface,
8
+ ToolCallContext,
9
+ ToolCallDefinition,
10
+ )
9
11
  from kiln_ai.tools.mcp_session_manager import MCPSessionManager
10
12
 
11
13
 
@@ -26,7 +28,7 @@ class MCPServerTool(KilnToolInterface):
26
28
  await self._load_tool_properties()
27
29
  return self._description
28
30
 
29
- async def toolcall_definition(self) -> Dict[str, Any]:
31
+ async def toolcall_definition(self) -> ToolCallDefinition:
30
32
  """Generate OpenAI-compatible tool definition."""
31
33
  await self._load_tool_properties()
32
34
  return {
@@ -1,5 +1,5 @@
1
1
  from functools import cached_property
2
- from typing import Any, Dict, List, TypedDict
2
+ from typing import List, TypedDict
3
3
 
4
4
  from pydantic import BaseModel
5
5
 
@@ -18,7 +18,11 @@ from kiln_ai.datamodel.project import Project
18
18
  from kiln_ai.datamodel.rag import RagConfig
19
19
  from kiln_ai.datamodel.tool_id import ToolId
20
20
  from kiln_ai.datamodel.vector_store import VectorStoreConfig, VectorStoreType
21
- from kiln_ai.tools.base_tool import KilnToolInterface, ToolCallContext
21
+ from kiln_ai.tools.base_tool import (
22
+ KilnToolInterface,
23
+ ToolCallContext,
24
+ ToolCallDefinition,
25
+ )
22
26
  from kiln_ai.utils.exhaustive_error import raise_exhaustive_enum_error
23
27
 
24
28
 
@@ -119,7 +123,7 @@ class RagTool(KilnToolInterface):
119
123
  async def description(self) -> str:
120
124
  return self._description
121
125
 
122
- async def toolcall_definition(self) -> Dict[str, Any]:
126
+ async def toolcall_definition(self) -> ToolCallDefinition:
123
127
  """Return the OpenAI-compatible tool definition for this tool."""
124
128
  return {
125
129
  "type": "function",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kiln-ai
3
- Version: 0.22.0
3
+ Version: 0.22.1
4
4
  Summary: Kiln AI
5
5
  Project-URL: Homepage, https://kiln.tech
6
6
  Project-URL: Repository, https://github.com/Kiln-AI/kiln
@@ -85,6 +85,10 @@ The library has a [comprehensive set of docs](https://kiln-ai.github.io/Kiln/kil
85
85
  - [Building and Running a Kiln Task from Code](#building-and-running-a-kiln-task-from-code)
86
86
  - [Tagging Task Runs Programmatically](#tagging-task-runs-programmatically)
87
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)t
88
92
  - [Full API Reference](#full-api-reference)
89
93
 
90
94
  ## Installation
@@ -352,6 +356,78 @@ custom_model_ids.append(new_model)
352
356
  Config.shared().custom_models = custom_model_ids
353
357
  ```
354
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
+
355
431
  ## Full API Reference
356
432
 
357
433
  The library can do a lot more than the examples we've shown here.
@@ -77,7 +77,7 @@ kiln_ai/adapters/fine_tune/together_finetune.py,sha256=KpJBZt0NBNUNLsVEYYC4Dzob1
77
77
  kiln_ai/adapters/fine_tune/vertex_finetune.py,sha256=Ik6Ov711-oruJnMHpVZTPimWJY2W_JnfdKIdR2djGrc,8545
78
78
  kiln_ai/adapters/model_adapters/__init__.py,sha256=m5GRtOHwVVvp_XDOss8c1X3NFf1wQQlC2eBgI4tXQhM,212
79
79
  kiln_ai/adapters/model_adapters/base_adapter.py,sha256=6aktTD3vSTLxVYVpKK0IhhLpjQCHgvBFSpo8T2hJ6To,14749
80
- kiln_ai/adapters/model_adapters/litellm_adapter.py,sha256=MAZwQVdQ4UaV0B03T3o67-JLP4zlm_i4V0Y7BiJlOxY,29984
80
+ kiln_ai/adapters/model_adapters/litellm_adapter.py,sha256=-i8zOQzCMW-JZJ8l3a4j4A6TLGQIr42EFSJf9D67tKI,30035
81
81
  kiln_ai/adapters/model_adapters/litellm_config.py,sha256=zOQEkYKeoQ0FIbxTkyyoaGtaQiB9eYK3IuyUgqSwzLE,485
82
82
  kiln_ai/adapters/model_adapters/test_base_adapter.py,sha256=jCsBnhScr1jurugm80Bf_7w26A7RMb2uIUW8MndN4p8,22191
83
83
  kiln_ai/adapters/model_adapters/test_litellm_adapter.py,sha256=3k8LZJ4ouQzT3l5-jRuYYxOk06S8Pc1ogsyuHvw-ggI,37351
@@ -105,11 +105,17 @@ kiln_ai/adapters/repair/repair_task.py,sha256=ziOKNo2dT0a4ggLIDk5ETfSTbuxn_xgI60
105
105
  kiln_ai/adapters/repair/test_repair_task.py,sha256=GLrEZsVt5Z-62NanVEtIvnI57YlS9GyhyNAr3ezW57o,8770
106
106
  kiln_ai/adapters/vector_store/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
107
107
  kiln_ai/adapters/vector_store/base_vector_store_adapter.py,sha256=_Ba6iJEpuQplji3LBkkfcy9edkxCF3pUaKMS4PeAuPY,2524
108
- kiln_ai/adapters/vector_store/lancedb_adapter.py,sha256=K70sCGqf5fAD7h3qY4_3daKewaDp8AWb0myn-UFICsA,16750
108
+ kiln_ai/adapters/vector_store/lancedb_adapter.py,sha256=TuuV5x0MiIQmTKJQo-St6Dxd0I5yKgVfbVqrQEiZqbQ,14049
109
+ kiln_ai/adapters/vector_store/lancedb_helpers.py,sha256=fMzXA3OW5c0s2TAsrxKghWYitQbevR0G1lvhChVvAog,3841
109
110
  kiln_ai/adapters/vector_store/test_base_vector_store.py,sha256=t-qCfYipfBRqRs5J6e0VaqVvcRRL7YZuCqOOG8lOViA,5811
110
- kiln_ai/adapters/vector_store/test_lancedb_adapter.py,sha256=wtRaj0675YBJokkrGrYKFVidwFPrbH5RKHjyAKtZusk,63576
111
+ kiln_ai/adapters/vector_store/test_lancedb_adapter.py,sha256=R-wZsJTm8nF4TWCyBkWWgKkIkXy11xCqpCsyAY_0B-M,63339
112
+ kiln_ai/adapters/vector_store/test_lancedb_helpers.py,sha256=P8MKttQEKSh-sXW5gAiuAL4CLmlWCJiMd9B8g2m1kOc,4559
111
113
  kiln_ai/adapters/vector_store/test_vector_store_registry.py,sha256=w0hpXte0XnxbkWYFGWfFuu33GgQUPcY2HE7habpZ_C4,6809
112
114
  kiln_ai/adapters/vector_store/vector_store_registry.py,sha256=jsE1OS964Ai7cJ5tlrp_PZuxEImHQSSR8DGAqEgDavc,1123
115
+ kiln_ai/adapters/vector_store_loaders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
116
+ kiln_ai/adapters/vector_store_loaders/test_lancedb_loader.py,sha256=CJTcdRuuKjz9Pq65OFV9CzbZi48sB0uBsmxOt3FGmlQ,9088
117
+ kiln_ai/adapters/vector_store_loaders/test_vector_store_loader.py,sha256=axOAQQg_URkXRZObbJlQ1AQTSsgLPlO5EjSVkHqy-Mo,17905
118
+ kiln_ai/adapters/vector_store_loaders/vector_store_loader.py,sha256=_lW_cLId0b8Huv80Psl_zCh9XtE0S6wvlPRV2zfdAMU,3505
113
119
  kiln_ai/datamodel/__init__.py,sha256=uxLwjHxWTbYw9LVRJtK02cUrbDZCKyfYxgYJxrOjFoA,2091
114
120
  kiln_ai/datamodel/basemodel.py,sha256=GZhZkDF6y9xN3Gn4h63FE3tEjcyGqoVJrC5QNfBXpsQ,32076
115
121
  kiln_ai/datamodel/chunk.py,sha256=LfBjaJEsPLBXfsFEofVLAfaISmfvsvzAmmCYVtosV7U,5535
@@ -157,14 +163,14 @@ kiln_ai/datamodel/test_registry.py,sha256=Y3dReO13QwGBaW9p7qUiTc0H-WaJ3pgapaN35k
157
163
  kiln_ai/datamodel/test_task.py,sha256=POxcfZErop8IXS5nVVA09BmpQLIQkeMnPHDhVlAJNxM,11928
158
164
  kiln_ai/datamodel/test_tool_id.py,sha256=MKSAb_SwPc4_dYcS9aoKJf3VatBL7FDIgixTsDQ3bos,17015
159
165
  kiln_ai/datamodel/test_vector_store.py,sha256=Qg7BNMPoG3Egj_nUoWvnxf43r99Q8Y9c7ra9k2M9X68,11629
160
- kiln_ai/datamodel/tool_id.py,sha256=bPimreWkBdqVQf7Zy5g0NFCXwLNVaHZQq2TK5OXJ7pU,4854
166
+ kiln_ai/datamodel/tool_id.py,sha256=OJ98ZMfczTq8gBap35W0xHz8eSCBcShn-K0N9NmU_6w,5233
161
167
  kiln_ai/datamodel/vector_store.py,sha256=VugXwAzBDOIn3ZznwGbYbka7RVPTlwJMxVf9wUakEIs,4937
162
168
  kiln_ai/tools/__init__.py,sha256=BaonknPnB9Z0QZligayytgrd8lqKXVOxX357YLW4Qw8,193
163
- kiln_ai/tools/base_tool.py,sha256=Q_ndeADMO8vJTFcRE80EJtVMv4MFKLdexdw7B0YtGTE,2799
164
- kiln_ai/tools/kiln_task_tool.py,sha256=PUJKLMm7wATPXKWwdnBbzA0ujopl71Tv-Z6-7_OJr0I,5542
165
- kiln_ai/tools/mcp_server_tool.py,sha256=mIgEa8v715sG15WNuuEaCkYAuGurF5pNmelsA2fuUXc,3301
169
+ kiln_ai/tools/base_tool.py,sha256=cUHQMrydDb4RxzujdJ6MqngsCyyfQQwsEixIy7g-3gE,3167
170
+ kiln_ai/tools/kiln_task_tool.py,sha256=XD-aLPbVozR_HbhErLgVEFAa6PR736djaxP5I9nq9Mk,5583
171
+ kiln_ai/tools/mcp_server_tool.py,sha256=KGFj9zPuI6h1K9ht2f0j1vcAX-sbaX_OZnXHErQY4Kc,3312
166
172
  kiln_ai/tools/mcp_session_manager.py,sha256=27l6GxQw84zmJw_Y6fJeH5OT9og3xtiS87UmA3yOv7c,10730
167
- kiln_ai/tools/rag_tools.py,sha256=K_JnQ6po2T-gbebHVNen67CuAYmM2RzuyzivjYVjSlQ,5819
173
+ kiln_ai/tools/rag_tools.py,sha256=3t0Lt6OSY89EZaSzi177csUIyP2BxfpDcpL-7BbgFAg,5849
168
174
  kiln_ai/tools/test_base_tools.py,sha256=L0hziYZ2poMhF9_NOwycXS0WBdw41VF1cEN8kemGZtg,6542
169
175
  kiln_ai/tools/test_kiln_task_tool.py,sha256=t5eMUDKSQZwRySLRcCKod_KkrAZL7IZ8bb3mcOxAlqU,19405
170
176
  kiln_ai/tools/test_mcp_server_tool.py,sha256=Kcd0jEhPwNg4EbTYB4drN0OHUXKYal6pSrXhP4QFo54,16920
@@ -207,7 +213,7 @@ kiln_ai/utils/test_uuid.py,sha256=g5CX_IAu5y-iNXQaFOoPrbr0hEmqmWPMSM_U4vw64Zc,41
207
213
  kiln_ai/utils/test_validation.py,sha256=FOCRj8OgePIi_YjkfbFC4wr_HeQAa1lK5e6uRoUWZgE,20275
208
214
  kiln_ai/utils/uuid.py,sha256=v46fW_xjN7gEyRM5yNv68azp6_QnmcTe-fHpvecpNYQ,315
209
215
  kiln_ai/utils/validation.py,sha256=s6_eRprkjZhA00M7UDfCkhIz2gk-DBroOpW0b6_Xolw,3005
210
- kiln_ai-0.22.0.dist-info/METADATA,sha256=FysJ3gzIkphxDbtRafuehO3ruyNyZpQji6HYip4cD7E,13842
211
- kiln_ai-0.22.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
212
- kiln_ai-0.22.0.dist-info/licenses/LICENSE.txt,sha256=_NA5pnTYgRRr4qH6lE3X-TuZJ8iRcMUi5ASoGr-lEx8,1209
213
- kiln_ai-0.22.0.dist-info/RECORD,,
216
+ kiln_ai-0.22.1.dist-info/METADATA,sha256=fHXPMoa6vpIJQezN8fycep3pyALcXUVPRRWsw3mO0S4,17295
217
+ kiln_ai-0.22.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
218
+ kiln_ai-0.22.1.dist-info/licenses/LICENSE.txt,sha256=_NA5pnTYgRRr4qH6lE3X-TuZJ8iRcMUi5ASoGr-lEx8,1209
219
+ kiln_ai-0.22.1.dist-info/RECORD,,