From 83162649bb1ac0e1d1d5b402acc2f005c9fc2944 Mon Sep 17 00:00:00 2001 From: Eugene Yurtsev Date: Tue, 17 Oct 2023 11:46:08 -0400 Subject: [PATCH] Add runnables to api reference (#11520) Need to look at preview whether this works. --- docs/api_reference/create_api_rst.py | 52 ++++++++++++++++++++-------- 1 file changed, 37 insertions(+), 15 deletions(-) diff --git a/docs/api_reference/create_api_rst.py b/docs/api_reference/create_api_rst.py index dbe7f4b757..f84c093bd5 100644 --- a/docs/api_reference/create_api_rst.py +++ b/docs/api_reference/create_api_rst.py @@ -122,8 +122,7 @@ def _merge_module_members( def _load_package_modules( - package_directory: Union[str, Path], - submodule: Optional[str] = None + package_directory: Union[str, Path], submodule: Optional[str] = None ) -> Dict[str, ModuleMembers]: """Recursively load modules of a package based on the file system. @@ -171,7 +170,8 @@ def _load_package_modules( # different way if submodule is not None: module_members = _load_module_members( - f"{package_name}.{submodule}.{namespace}", f"{submodule}.{namespace}" + f"{package_name}.{submodule}.{namespace}", + f"{submodule}.{namespace}", ) else: module_members = _load_module_members( @@ -280,18 +280,9 @@ Functions return full_doc -def main() -> None: - """Generate the reference.rst file for each package.""" - lc_members = _load_package_modules(PKG_DIR) - # Put some packages at top level - tools = _load_package_modules(PKG_DIR, "tools") - lc_members['tools.render'] = tools['render'] - agents = _load_package_modules(PKG_DIR, "agents") - lc_members['agents.output_parsers'] = agents['output_parsers'] - lc_members['agents.format_scratchpad'] = agents['format_scratchpad'] - lc_doc = ".. _api_reference:\n\n" + _construct_doc("langchain", lc_members) - with open(WRITE_FILE, "w") as f: - f.write(lc_doc) +def _document_langchain_experimental() -> None: + """Document the langchain_experimental package.""" + # Generate experimental_api_reference.rst exp_members = _load_package_modules(EXP_DIR) exp_doc = ".. _experimental_api_reference:\n\n" + _construct_doc( "langchain_experimental", exp_members @@ -300,5 +291,36 @@ def main() -> None: f.write(exp_doc) +def _document_langchain_core() -> None: + """Document the main langchain package.""" + # load top level module members + lc_members = _load_package_modules(PKG_DIR) + + # Add additional packages + tools = _load_package_modules(PKG_DIR, "tools") + agents = _load_package_modules(PKG_DIR, "agents") + schema = _load_package_modules(PKG_DIR, "schema") + + lc_members.update( + { + "agents.output_parsers": agents["output_parsers"], + "agents.format_scratchpad": agents["format_scratchpad"], + "tools.render": tools["render"], + "schema.runnable": schema["runnable"], + } + ) + + lc_doc = ".. _api_reference:\n\n" + _construct_doc("langchain", lc_members) + + with open(WRITE_FILE, "w") as f: + f.write(lc_doc) + + +def main() -> None: + """Generate the reference.rst file for each package.""" + _document_langchain_core() + _document_langchain_experimental() + + if __name__ == "__main__": main()