refactor: Update baml client

This commit is contained in:
Igor Ilic 2025-09-08 16:36:28 +02:00
parent 6231882c24
commit 236776a69f
13 changed files with 137 additions and 58 deletions

View file

@ -10,7 +10,7 @@
# BAML files and re-generate this code using: baml-cli generate
# baml-cli is available with the baml package.
__version__ = "0.206.1"
__version__ = "0.206.0"
try:
from baml_py.safe_import import EnsureBamlPyImport

View file

@ -85,7 +85,7 @@ class BamlAsyncClient:
system_prompt: str,
user_prompt: str,
baml_options: BamlCallOptions = {},
) -> types.DynamicModel:
) -> types.DynamicOutputModel:
# Check if on_tick is provided
if "on_tick" in baml_options:
# Use streaming internally when on_tick is provided
@ -107,7 +107,8 @@ class BamlAsyncClient:
},
)
return typing.cast(
types.DynamicModel, result.cast_to(types, types, stream_types, False, __runtime__)
types.DynamicOutputModel,
result.cast_to(types, types, stream_types, False, __runtime__),
)
async def ExtractCategories(
@ -270,7 +271,7 @@ class BamlStreamClient:
system_prompt: str,
user_prompt: str,
baml_options: BamlCallOptions = {},
) -> baml_py.BamlStream[stream_types.DynamicModel, types.DynamicModel]:
) -> baml_py.BamlStream[stream_types.DynamicOutputModel, types.DynamicOutputModel]:
ctx, result = self.__options.merge_options(baml_options).create_async_stream(
function_name="AcreateStructuredOutput",
args={
@ -279,13 +280,14 @@ class BamlStreamClient:
"user_prompt": user_prompt,
},
)
return baml_py.BamlStream[stream_types.DynamicModel, types.DynamicModel](
return baml_py.BamlStream[stream_types.DynamicOutputModel, types.DynamicOutputModel](
result,
lambda x: typing.cast(
stream_types.DynamicModel, x.cast_to(types, types, stream_types, True, __runtime__)
stream_types.DynamicOutputModel,
x.cast_to(types, types, stream_types, True, __runtime__),
),
lambda x: typing.cast(
types.DynamicModel, x.cast_to(types, types, stream_types, False, __runtime__)
types.DynamicOutputModel, x.cast_to(types, types, stream_types, False, __runtime__)
),
ctx,
)

File diff suppressed because one or more lines are too long

View file

@ -27,11 +27,11 @@ class LlmResponseParser:
self,
llm_response: str,
baml_options: BamlCallOptions = {},
) -> types.DynamicModel:
) -> types.DynamicOutputModel:
result = self.__options.merge_options(baml_options).parse_response(
function_name="AcreateStructuredOutput", llm_response=llm_response, mode="request"
)
return typing.cast(types.DynamicModel, result)
return typing.cast(types.DynamicOutputModel, result)
def ExtractCategories(
self,
@ -94,11 +94,11 @@ class LlmStreamParser:
self,
llm_response: str,
baml_options: BamlCallOptions = {},
) -> stream_types.DynamicModel:
) -> stream_types.DynamicOutputModel:
result = self.__options.merge_options(baml_options).parse_response(
function_name="AcreateStructuredOutput", llm_response=llm_response, mode="stream"
)
return typing.cast(stream_types.DynamicModel, result)
return typing.cast(stream_types.DynamicOutputModel, result)
def ExtractCategories(
self,

View file

@ -27,7 +27,7 @@ class StreamState(BaseModel, typing.Generic[StreamStateValueT]):
# #########################################################################
# Generated classes (18)
# Generated classes (19)
# #########################################################################
@ -46,11 +46,16 @@ class DefaultContentPrediction(BaseModel):
label: typing.Optional["ContentLabel"] = None
class DynamicInputModel(BaseModel):
model_config = ConfigDict(extra="allow")
test: typing.Optional[str] = None
class DynamicKnowledgeGraph(BaseModel):
model_config = ConfigDict(extra="allow")
class DynamicModel(BaseModel):
class DynamicOutputModel(BaseModel):
model_config = ConfigDict(extra="allow")
test: typing.Optional[str] = None

View file

@ -98,7 +98,7 @@ class BamlSyncClient:
system_prompt: str,
user_prompt: str,
baml_options: BamlCallOptions = {},
) -> types.DynamicModel:
) -> types.DynamicOutputModel:
# Check if on_tick is provided
if "on_tick" in baml_options:
stream = self.stream.AcreateStructuredOutput(
@ -119,7 +119,8 @@ class BamlSyncClient:
},
)
return typing.cast(
types.DynamicModel, result.cast_to(types, types, stream_types, False, __runtime__)
types.DynamicOutputModel,
result.cast_to(types, types, stream_types, False, __runtime__),
)
def ExtractCategories(
@ -277,7 +278,7 @@ class BamlStreamClient:
system_prompt: str,
user_prompt: str,
baml_options: BamlCallOptions = {},
) -> baml_py.BamlSyncStream[stream_types.DynamicModel, types.DynamicModel]:
) -> baml_py.BamlSyncStream[stream_types.DynamicOutputModel, types.DynamicOutputModel]:
ctx, result = self.__options.merge_options(baml_options).create_sync_stream(
function_name="AcreateStructuredOutput",
args={
@ -286,13 +287,14 @@ class BamlStreamClient:
"user_prompt": user_prompt,
},
)
return baml_py.BamlSyncStream[stream_types.DynamicModel, types.DynamicModel](
return baml_py.BamlSyncStream[stream_types.DynamicOutputModel, types.DynamicOutputModel](
result,
lambda x: typing.cast(
stream_types.DynamicModel, x.cast_to(types, types, stream_types, True, __runtime__)
stream_types.DynamicOutputModel,
x.cast_to(types, types, stream_types, True, __runtime__),
),
lambda x: typing.cast(
types.DynamicModel, x.cast_to(types, types, stream_types, False, __runtime__)
types.DynamicOutputModel, x.cast_to(types, types, stream_types, False, __runtime__)
),
ctx,
)

View file

@ -27,8 +27,9 @@ class TypeBuilder(type_builder.TypeBuilder):
"AudioContent",
"ContentLabel",
"DefaultContentPrediction",
"DynamicInputModel",
"DynamicKnowledgeGraph",
"DynamicModel",
"DynamicOutputModel",
"Edge",
"ImageContent",
"KnowledgeGraph",
@ -53,7 +54,7 @@ class TypeBuilder(type_builder.TypeBuilder):
# #########################################################################
# #########################################################################
# Generated classes 18
# Generated classes 19
# #########################################################################
@property
@ -68,13 +69,17 @@ class TypeBuilder(type_builder.TypeBuilder):
def DefaultContentPrediction(self) -> "DefaultContentPredictionViewer":
return DefaultContentPredictionViewer(self)
@property
def DynamicInputModel(self) -> "DynamicInputModelBuilder":
return DynamicInputModelBuilder(self)
@property
def DynamicKnowledgeGraph(self) -> "DynamicKnowledgeGraphBuilder":
return DynamicKnowledgeGraphBuilder(self)
@property
def DynamicModel(self) -> "DynamicModelBuilder":
return DynamicModelBuilder(self)
def DynamicOutputModel(self) -> "DynamicOutputModelBuilder":
return DynamicOutputModelBuilder(self)
@property
def Edge(self) -> "EdgeViewer":
@ -135,7 +140,7 @@ class TypeBuilder(type_builder.TypeBuilder):
# #########################################################################
# Generated classes 18
# Generated classes 19
# #########################################################################
@ -274,6 +279,59 @@ class DefaultContentPredictionProperties:
return type_builder.ClassPropertyViewer(self.__bldr.property("label"))
class DynamicInputModelAst:
def __init__(self, tb: type_builder.TypeBuilder):
_tb = tb._tb # type: ignore (we know how to use this private attribute)
self._bldr = _tb.class_("DynamicInputModel")
self._properties: typing.Set[str] = set(
[
"test",
]
)
self._props = DynamicInputModelProperties(self._bldr, self._properties)
def type(self) -> baml_py.FieldType:
return self._bldr.field()
@property
def props(self) -> "DynamicInputModelProperties":
return self._props
class DynamicInputModelBuilder(DynamicInputModelAst):
def __init__(self, tb: type_builder.TypeBuilder):
super().__init__(tb)
def add_property(self, name: str, type: baml_py.FieldType) -> baml_py.ClassPropertyBuilder:
if name in self._properties:
raise ValueError(f"Property {name} already exists.")
return self._bldr.property(name).type(type)
def list_properties(self) -> typing.List[typing.Tuple[str, baml_py.ClassPropertyBuilder]]:
return self._bldr.list_properties()
def remove_property(self, name: str) -> None:
self._bldr.remove_property(name)
def reset(self) -> None:
self._bldr.reset()
class DynamicInputModelProperties:
def __init__(self, bldr: baml_py.ClassBuilder, properties: typing.Set[str]):
self.__bldr = bldr
self.__properties = properties # type: ignore (we know how to use this private attribute) # noqa: F821
def __getattr__(self, name: str) -> baml_py.ClassPropertyBuilder:
if name not in self.__properties:
raise AttributeError(f"Property {name} not found.")
return self.__bldr.property(name)
@property
def test(self) -> baml_py.ClassPropertyBuilder:
return self.__bldr.property("test")
class DynamicKnowledgeGraphAst:
def __init__(self, tb: type_builder.TypeBuilder):
_tb = tb._tb # type: ignore (we know how to use this private attribute)
@ -319,26 +377,26 @@ class DynamicKnowledgeGraphProperties:
return self.__bldr.property(name)
class DynamicModelAst:
class DynamicOutputModelAst:
def __init__(self, tb: type_builder.TypeBuilder):
_tb = tb._tb # type: ignore (we know how to use this private attribute)
self._bldr = _tb.class_("DynamicModel")
self._bldr = _tb.class_("DynamicOutputModel")
self._properties: typing.Set[str] = set(
[
"test",
]
)
self._props = DynamicModelProperties(self._bldr, self._properties)
self._props = DynamicOutputModelProperties(self._bldr, self._properties)
def type(self) -> baml_py.FieldType:
return self._bldr.field()
@property
def props(self) -> "DynamicModelProperties":
def props(self) -> "DynamicOutputModelProperties":
return self._props
class DynamicModelBuilder(DynamicModelAst):
class DynamicOutputModelBuilder(DynamicOutputModelAst):
def __init__(self, tb: type_builder.TypeBuilder):
super().__init__(tb)
@ -357,7 +415,7 @@ class DynamicModelBuilder(DynamicModelAst):
self._bldr.reset()
class DynamicModelProperties:
class DynamicOutputModelProperties:
def __init__(self, bldr: baml_py.ClassBuilder, properties: typing.Set[str]):
self.__bldr = bldr
self.__properties = properties # type: ignore (we know how to use this private attribute) # noqa: F821

View file

@ -21,10 +21,12 @@ type_map = {
"stream_types.ContentLabel": stream_types.ContentLabel,
"types.DefaultContentPrediction": types.DefaultContentPrediction,
"stream_types.DefaultContentPrediction": stream_types.DefaultContentPrediction,
"types.DynamicInputModel": types.DynamicInputModel,
"stream_types.DynamicInputModel": stream_types.DynamicInputModel,
"types.DynamicKnowledgeGraph": types.DynamicKnowledgeGraph,
"stream_types.DynamicKnowledgeGraph": stream_types.DynamicKnowledgeGraph,
"types.DynamicModel": types.DynamicModel,
"stream_types.DynamicModel": stream_types.DynamicModel,
"types.DynamicOutputModel": types.DynamicOutputModel,
"stream_types.DynamicOutputModel": stream_types.DynamicOutputModel,
"types.Edge": types.Edge,
"stream_types.Edge": stream_types.Edge,
"types.ImageContent": types.ImageContent,

View file

@ -48,7 +48,7 @@ def all_succeeded(checks: typing.Dict[CheckName, Check]) -> bool:
# #########################################################################
# #########################################################################
# Generated classes (18)
# Generated classes (19)
# #########################################################################
@ -75,11 +75,16 @@ class DefaultContentPrediction(BaseModel):
label: "ContentLabel"
class DynamicInputModel(BaseModel):
model_config = ConfigDict(extra="allow")
test: str
class DynamicKnowledgeGraph(BaseModel):
model_config = ConfigDict(extra="allow")
class DynamicModel(BaseModel):
class DynamicOutputModel(BaseModel):
model_config = ConfigDict(extra="allow")
test: str

View file

@ -1,4 +1,9 @@
class DynamicModel {
class DynamicInputModel {
test string
@@dynamic
}
class DynamicOutputModel {
test string
@@dynamic
}
@ -7,7 +12,7 @@ function AcreateStructuredOutput(
content: string,
system_prompt: string,
user_prompt: string,
) -> DynamicModel {
) -> DynamicOutputModel {
client OpenAI
prompt #"

20
poetry.lock generated
View file

@ -587,20 +587,20 @@ extras = ["regex"]
[[package]]
name = "baml-py"
version = "0.201.0"
version = "0.206.0"
description = "BAML python bindings (pyproject.toml)"
optional = false
python-versions = "*"
groups = ["main"]
files = [
{file = "baml_py-0.201.0-cp38-abi3-macosx_10_12_x86_64.whl", hash = "sha256:83228d2af2b0e845bbbb4e14f7cbd3376cec385aee01210ac522ab6076e07bec"},
{file = "baml_py-0.201.0-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:2a9d016139e3ae5b5ce98c7b05b5fbd53d5d38f04dc810ec4d70fb17dd6c10e4"},
{file = "baml_py-0.201.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b5058505b1a3c5f04fc1679aec4d730fa9bef2cbd96209b3ed50152f60b96baf"},
{file = "baml_py-0.201.0-cp38-abi3-manylinux_2_24_aarch64.whl", hash = "sha256:36289d548581ba4accd5eaaab3246872542dd32dc6717e537654fa0cad884071"},
{file = "baml_py-0.201.0-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:5ab70e7bd6481d71edca8a33313347b29faccec78b9960138aa437522813ac9a"},
{file = "baml_py-0.201.0-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:7efc5c693a7142c230a4f3d6700415127fee0b9f5fdbb36db63e04e27ac4c0f1"},
{file = "baml_py-0.201.0-cp38-abi3-win_amd64.whl", hash = "sha256:56499857b7a27ae61a661c8ce0dddd0fb567a45c0b826157e44048a14cf586f9"},
{file = "baml_py-0.201.0-cp38-abi3-win_arm64.whl", hash = "sha256:1e52dc1151db84a302b746590fe2bc484bdd794f83fa5da7216d9394c559f33a"},
{file = "baml_py-0.206.0-cp38-abi3-macosx_10_12_x86_64.whl", hash = "sha256:d9e95f0b481a18ae6936d720b8fc609baec4ea1eabbdde48f1536ffc94ebf39f"},
{file = "baml_py-0.206.0-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:0f698127da030b728c7aa2641c3164a3ab19779594019234361dd48f0784f195"},
{file = "baml_py-0.206.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:095a4039851fd6a2f2b516446aa9c04d633a7f4ddc72aa70c6805af007a62ce0"},
{file = "baml_py-0.206.0-cp38-abi3-manylinux_2_24_aarch64.whl", hash = "sha256:4df110271c4861850fc58f30c49d7c3ca68cde28dd4d6f613a64c80d281e3c02"},
{file = "baml_py-0.206.0-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:ecfae45310a47e669a5b00ba7f51bece300da1fe0df39ad687fd590a7bc8ff44"},
{file = "baml_py-0.206.0-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:a104969f7fc04932f9ab6976f7fdd173097d6e8fc64b3faa5ad4b3ad5f870c65"},
{file = "baml_py-0.206.0-cp38-abi3-win_amd64.whl", hash = "sha256:efbff3f4b49639f25a52433a7eacda039d3118e7965124ced0705017f9847916"},
{file = "baml_py-0.206.0-cp38-abi3-win_arm64.whl", hash = "sha256:5560becf0c8af22b415d3eb6000629727ad1eb6cde4a6bdd9584c112c42f966d"},
]
[[package]]
@ -11728,4 +11728,4 @@ posthog = ["posthog"]
[metadata]
lock-version = "2.1"
python-versions = ">=3.10,<=3.13"
content-hash = "576318d370b89d128a7c3e755fe3c898fef4e359acdd3f05f952ae497751fb04"
content-hash = "03cd2dee06a9e89967b9287499956bcc18c6eb1849daddeb9504ff71d2453152"

View file

@ -56,7 +56,7 @@ dependencies = [
"dlt[sqlalchemy]>=1.9.0,<2",
"sentry-sdk[fastapi]>=2.9.0,<3",
"structlog>=25.2.0,<26",
"baml-py (>=0.201.0,<0.202.0)",
"baml-py (==0.206.0)",
"pympler>=1.1,<2.0.0",
"onnxruntime>=1.0.0,<2.0.0",
"pylance>=0.22.0,<1.0.0",

20
uv.lock generated
View file

@ -422,17 +422,17 @@ wheels = [
[[package]]
name = "baml-py"
version = "0.201.0"
version = "0.206.0"
source = { registry = "https://pypi.org/simple" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/54/54/2b0edb3d22e95ce56f36610391c11108a4ef26ba2837736a32001687ae34/baml_py-0.201.0-cp38-abi3-macosx_10_12_x86_64.whl", hash = "sha256:83228d2af2b0e845bbbb4e14f7cbd3376cec385aee01210ac522ab6076e07bec", size = 17387971, upload-time = "2025-07-03T19:29:05.844Z" },
{ url = "https://files.pythonhosted.org/packages/c9/08/1d48c28c63eadea2c04360cbb7f64968599e99cd6b8fc0ec0bd4424d3cf1/baml_py-0.201.0-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:2a9d016139e3ae5b5ce98c7b05b5fbd53d5d38f04dc810ec4d70fb17dd6c10e4", size = 16191010, upload-time = "2025-07-03T19:29:09.323Z" },
{ url = "https://files.pythonhosted.org/packages/73/1a/20b2d46501e3dd0648af339825106a6ac5eeb5d22d7e6a10cf16b9aa1cb8/baml_py-0.201.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b5058505b1a3c5f04fc1679aec4d730fa9bef2cbd96209b3ed50152f60b96baf", size = 19950249, upload-time = "2025-07-03T19:29:11.974Z" },
{ url = "https://files.pythonhosted.org/packages/38/24/bc871059e905159ae1913c2e3032dd6ef2f5c3d0983999d2c2f1eebb65a4/baml_py-0.201.0-cp38-abi3-manylinux_2_24_aarch64.whl", hash = "sha256:36289d548581ba4accd5eaaab3246872542dd32dc6717e537654fa0cad884071", size = 19231310, upload-time = "2025-07-03T19:29:14.857Z" },
{ url = "https://files.pythonhosted.org/packages/0e/11/4268a0b82b02c7202fe5aa0d7175712158d998c491cac723b2bac3d5d495/baml_py-0.201.0-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:5ab70e7bd6481d71edca8a33313347b29faccec78b9960138aa437522813ac9a", size = 19490012, upload-time = "2025-07-03T19:29:18.512Z" },
{ url = "https://files.pythonhosted.org/packages/31/21/c9f9aea1adba2a5978ffab11ba0948a9f3f81ec6ed3056067713260e93a1/baml_py-0.201.0-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:7efc5c693a7142c230a4f3d6700415127fee0b9f5fdbb36db63e04e27ac4c0f1", size = 20090620, upload-time = "2025-07-03T19:29:21.072Z" },
{ url = "https://files.pythonhosted.org/packages/99/cf/92123d8d753f1d1473e080c4c182139bfe3b9a6418e891cf1d96b6c33848/baml_py-0.201.0-cp38-abi3-win_amd64.whl", hash = "sha256:56499857b7a27ae61a661c8ce0dddd0fb567a45c0b826157e44048a14cf586f9", size = 17253005, upload-time = "2025-07-03T19:29:23.722Z" },
{ url = "https://files.pythonhosted.org/packages/59/88/5056aa1bc9480f758cd6e210d63bd1f9ad90b44c87f4121285906526495e/baml_py-0.201.0-cp38-abi3-win_arm64.whl", hash = "sha256:1e52dc1151db84a302b746590fe2bc484bdd794f83fa5da7216d9394c559f33a", size = 15612701, upload-time = "2025-07-03T19:29:26.712Z" },
{ url = "https://files.pythonhosted.org/packages/16/e6/b14c0892281fe40560420674be85b50a6849370819185919f4a951ff77f0/baml_py-0.206.0-cp38-abi3-macosx_10_12_x86_64.whl", hash = "sha256:d9e95f0b481a18ae6936d720b8fc609baec4ea1eabbdde48f1536ffc94ebf39f", size = 19198123, upload-time = "2025-08-28T04:40:13.4Z" },
{ url = "https://files.pythonhosted.org/packages/72/b4/7eff7673fe47803cd369d6732e94244c7cb343ca425671227603b6cb91f0/baml_py-0.206.0-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:0f698127da030b728c7aa2641c3164a3ab19779594019234361dd48f0784f195", size = 17937150, upload-time = "2025-08-28T04:40:15.932Z" },
{ url = "https://files.pythonhosted.org/packages/ff/f5/fdaf5839693f60e48f7736f29b255f57b9b611edff83703873232855ac36/baml_py-0.206.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:095a4039851fd6a2f2b516446aa9c04d633a7f4ddc72aa70c6805af007a62ce0", size = 21779193, upload-time = "2025-08-28T04:40:18.141Z" },
{ url = "https://files.pythonhosted.org/packages/6e/82/53747e5cb911f33a0f44d6e23669b050dc55a4581e28831f2bd5ff376831/baml_py-0.206.0-cp38-abi3-manylinux_2_24_aarch64.whl", hash = "sha256:4df110271c4861850fc58f30c49d7c3ca68cde28dd4d6f613a64c80d281e3c02", size = 21019066, upload-time = "2025-08-28T04:40:20.568Z" },
{ url = "https://files.pythonhosted.org/packages/26/9f/a1d456af11551dd277c3c7445bfb7eec7f6d5a9f399123d72a3348ccac18/baml_py-0.206.0-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:ecfae45310a47e669a5b00ba7f51bece300da1fe0df39ad687fd590a7bc8ff44", size = 21257819, upload-time = "2025-08-28T04:40:22.708Z" },
{ url = "https://files.pythonhosted.org/packages/ae/97/f8f4f2cc298f44c01c2fc2a99f216805538c92bfc4ec81e13bd38b9e05df/baml_py-0.206.0-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:a104969f7fc04932f9ab6976f7fdd173097d6e8fc64b3faa5ad4b3ad5f870c65", size = 21938777, upload-time = "2025-08-28T04:40:25.174Z" },
{ url = "https://files.pythonhosted.org/packages/eb/6a/e9edf5c9e244fac7f33c515da4507e0f9561037670d36b92bb671cda2437/baml_py-0.206.0-cp38-abi3-win_amd64.whl", hash = "sha256:efbff3f4b49639f25a52433a7eacda039d3118e7965124ced0705017f9847916", size = 19015250, upload-time = "2025-08-28T04:40:27.212Z" },
{ url = "https://files.pythonhosted.org/packages/9a/62/7bc8227374790761e6482d77aa9b702422ba3efaccd014f57488091b1fb6/baml_py-0.206.0-cp38-abi3-win_arm64.whl", hash = "sha256:5560becf0c8af22b415d3eb6000629727ad1eb6cde4a6bdd9584c112c42f966d", size = 17289275, upload-time = "2025-08-28T04:40:29.755Z" },
]
[[package]]
@ -972,7 +972,7 @@ requires-dist = [
{ name = "anthropic", marker = "extra == 'anthropic'", specifier = ">=0.26.1,<0.27" },
{ name = "asyncpg", marker = "extra == 'postgres'", specifier = ">=0.30.0,<1.0.0" },
{ name = "asyncpg", marker = "extra == 'postgres-binary'", specifier = ">=0.30.0,<1.0.0" },
{ name = "baml-py", specifier = ">=0.201.0,<0.202.0" },
{ name = "baml-py", specifier = "==0.206.0" },
{ name = "chromadb", marker = "extra == 'chromadb'", specifier = ">=0.3.0,<0.7" },
{ name = "coverage", marker = "extra == 'dev'", specifier = ">=7.3.2,<8" },
{ name = "debugpy", marker = "extra == 'debug'", specifier = ">=1.8.9,<2.0.0" },