Spaces:
Runtime error
Runtime error
| import importlib | |
| from typing import Optional | |
| import typer | |
| from typing_extensions import Annotated | |
| from langchain_cli.namespaces import app as app_namespace | |
| from langchain_cli.namespaces import integration as integration_namespace | |
| from langchain_cli.namespaces import template as template_namespace | |
| from langchain_cli.utils.packages import get_langserve_export, get_package_root | |
| __version__ = "0.0.22rc0" | |
| app = typer.Typer(no_args_is_help=True, add_completion=False) | |
| app.add_typer( | |
| template_namespace.package_cli, name="template", help=template_namespace.__doc__ | |
| ) | |
| app.add_typer(app_namespace.app_cli, name="app", help=app_namespace.__doc__) | |
| app.add_typer( | |
| integration_namespace.integration_cli, | |
| name="integration", | |
| help=integration_namespace.__doc__, | |
| ) | |
| # If libcst is installed, add the migrate namespace | |
| if importlib.util.find_spec("libcst"): | |
| from langchain_cli.namespaces.migrate import main as migrate_namespace | |
| app.add_typer(migrate_namespace.app, name="migrate", help=migrate_namespace.__doc__) | |
| def version_callback(show_version: bool) -> None: | |
| if show_version: | |
| typer.echo(f"langchain-cli {__version__}") | |
| raise typer.Exit() | |
| def main( | |
| version: bool = typer.Option( | |
| False, | |
| "--version", | |
| "-v", | |
| help="Print the current CLI version.", | |
| callback=version_callback, | |
| is_eager=True, | |
| ), | |
| ): | |
| pass | |
| def serve( | |
| *, | |
| port: Annotated[ | |
| Optional[int], typer.Option(help="The port to run the server on") | |
| ] = None, | |
| host: Annotated[ | |
| Optional[str], typer.Option(help="The host to run the server on") | |
| ] = None, | |
| ) -> None: | |
| """ | |
| Start the LangServe app, whether it's a template or an app. | |
| """ | |
| # see if is a template | |
| try: | |
| project_dir = get_package_root() | |
| pyproject = project_dir / "pyproject.toml" | |
| get_langserve_export(pyproject) | |
| except KeyError: | |
| # not a template | |
| app_namespace.serve(port=port, host=host) | |
| else: | |
| # is a template | |
| template_namespace.serve(port=port, host=host) | |
| if __name__ == "__main__": | |
| app() | |