From 0a669c70162422d5e22774786c28c1265e336b7b Mon Sep 17 00:00:00 2001 From: huanghuoguoguo <1051233107@qq.com> Date: Sat, 16 May 2026 11:20:32 +0800 Subject: [PATCH] fix(utils): handle missing funcschema parameter docs (#2186) --- src/langbot/pkg/utils/funcschema.py | 2 +- tests/unit_tests/utils/test_funcschema.py | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 tests/unit_tests/utils/test_funcschema.py diff --git a/src/langbot/pkg/utils/funcschema.py b/src/langbot/pkg/utils/funcschema.py index f18b9e6b..bbe8b77b 100644 --- a/src/langbot/pkg/utils/funcschema.py +++ b/src/langbot/pkg/utils/funcschema.py @@ -83,7 +83,7 @@ def get_func_schema(function: typing.Callable) -> dict: parameters['properties'][param.name] = { 'type': param_type, - 'description': args_doc[param.name], + 'description': args_doc.get(param.name, ''), } # add schema for array diff --git a/tests/unit_tests/utils/test_funcschema.py b/tests/unit_tests/utils/test_funcschema.py new file mode 100644 index 00000000..76159851 --- /dev/null +++ b/tests/unit_tests/utils/test_funcschema.py @@ -0,0 +1,15 @@ +from langbot.pkg.utils.funcschema import get_func_schema + + +def test_get_func_schema_uses_empty_description_for_undocumented_parameter(): + def sample_function(documented: str, undocumented: int): + """Sample function. + + Args: + documented(str): documented parameter description + """ + + schema = get_func_schema(sample_function) + + assert schema['parameters']['properties']['documented']['description'] == 'documented parameter description' + assert schema['parameters']['properties']['undocumented']['description'] == ''