CLI 0.0.13, Configurable Template Demo (#12796)

pull/12624/head^2
Erick Friis 11 months ago committed by GitHub
parent d1c6ad7769
commit 49e283a0cd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -6,7 +6,7 @@ from typing_extensions import Annotated
from langchain_cli.namespaces import app as app_namespace from langchain_cli.namespaces import app as app_namespace
from langchain_cli.namespaces import template as template_namespace from langchain_cli.namespaces import template as template_namespace
__version__ = "0.0.12" __version__ = "0.0.13"
app = typer.Typer(no_args_is_help=True, add_completion=False) app = typer.Typer(no_args_is_help=True, add_completion=False)
app.add_typer( app.add_typer(

@ -2,6 +2,8 @@
Development Scripts for template packages Development Scripts for template packages
""" """
from typing import Sequence
from fastapi import FastAPI from fastapi import FastAPI
from langserve import add_routes from langserve import add_routes
from langserve.packages import get_langserve_export from langserve.packages import get_langserve_export
@ -9,7 +11,10 @@ from langserve.packages import get_langserve_export
from langchain_cli.utils.packages import get_package_root from langchain_cli.utils.packages import get_package_root
def create_demo_server(): def create_demo_server(
*,
config_keys: Sequence[str] = (),
):
""" """
Creates a demo server for the current template. Creates a demo server for the current template.
""" """
@ -22,10 +27,18 @@ def create_demo_server():
mod = __import__(package["module"], fromlist=[package["attr"]]) mod = __import__(package["module"], fromlist=[package["attr"]])
chain = getattr(mod, package["attr"]) chain = getattr(mod, package["attr"])
add_routes(app, chain) add_routes(
app,
chain,
config_keys=config_keys,
)
except KeyError as e: except KeyError as e:
raise KeyError("Missing fields from pyproject.toml") from e raise KeyError("Missing fields from pyproject.toml") from e
except ImportError as e: except ImportError as e:
raise ImportError("Could not import module defined in pyproject.toml") from e raise ImportError("Could not import module defined in pyproject.toml") from e
return app return app
def create_demo_server_configurable():
return create_demo_server(config_keys=["configurable"])

@ -90,6 +90,13 @@ def serve(
host: Annotated[ host: Annotated[
Optional[str], typer.Option(help="The host to run the server on") Optional[str], typer.Option(help="The host to run the server on")
] = None, ] = None,
configurable: Annotated[
bool,
typer.Option(
"--configurable/--no-configurable",
help="Whether to include a configurable route",
),
] = True,
) -> None: ) -> None:
""" """
Starts a demo app for this template. Starts a demo app for this template.
@ -104,10 +111,16 @@ def serve(
port_str = str(port) if port is not None else "8000" port_str = str(port) if port is not None else "8000"
host_str = host if host is not None else "127.0.0.1" host_str = host if host is not None else "127.0.0.1"
script = (
"langchain_cli.dev_scripts:create_demo_server"
if not configurable
else "langchain_cli.dev_scripts:create_demo_server_configurable"
)
command = [ command = [
"uvicorn", "uvicorn",
"--factory", "--factory",
"langchain_cli.dev_scripts:create_demo_server", script,
"--reload", "--reload",
"--port", "--port",
port_str, port_str,

@ -1,6 +1,6 @@
[tool.poetry] [tool.poetry]
name = "langchain-cli" name = "langchain-cli"
version = "0.0.12" version = "0.0.13"
description = "CLI for interacting with LangChain" description = "CLI for interacting with LangChain"
authors = ["Erick Friis <erick@langchain.dev>"] authors = ["Erick Friis <erick@langchain.dev>"]
readme = "README.md" readme = "README.md"

Loading…
Cancel
Save