mirror of
https://github.com/hwchase17/langchain.git
synced 2025-09-02 03:26:17 +00:00
cli updates oct27 (#12436)
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
import subprocess
|
||||
from typing import Optional
|
||||
|
||||
import typer
|
||||
@@ -24,12 +23,12 @@ def start(
|
||||
"""
|
||||
Start the LangServe instance, whether it's a hub package or a serve project.
|
||||
"""
|
||||
cmd = ["poetry", "run", "poe", "start"]
|
||||
if port is not None:
|
||||
cmd += ["--port", str(port)]
|
||||
if host is not None:
|
||||
cmd += ["--host", host]
|
||||
subprocess.run(cmd)
|
||||
|
||||
# try starting hub package, if error, try langserve
|
||||
try:
|
||||
hub.start(port=port, host=host)
|
||||
except KeyError:
|
||||
serve.start(port=port, host=host)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
@@ -9,8 +9,11 @@ from pathlib import Path
|
||||
from typing import Optional
|
||||
|
||||
import typer
|
||||
from langserve.packages import get_langserve_export
|
||||
from typing_extensions import Annotated
|
||||
|
||||
from langchain_cli.utils.packages import get_package_root
|
||||
|
||||
hub = typer.Typer(no_args_is_help=True, add_completion=False)
|
||||
|
||||
|
||||
@@ -19,9 +22,7 @@ def new(
|
||||
name: Annotated[str, typer.Argument(help="The name of the folder to create")],
|
||||
with_poetry: Annotated[
|
||||
bool,
|
||||
typer.Option(
|
||||
"--with-poetry/--no-poetry", help="Don't run poetry install"
|
||||
),
|
||||
typer.Option("--with-poetry/--no-poetry", help="Don't run poetry install"),
|
||||
] = False,
|
||||
):
|
||||
"""
|
||||
@@ -82,9 +83,23 @@ def start(
|
||||
"""
|
||||
Starts a demo LangServe instance for this hub package.
|
||||
"""
|
||||
cmd = ["poetry", "run", "poe", "start"]
|
||||
if port is not None:
|
||||
cmd += ["--port", str(port)]
|
||||
if host is not None:
|
||||
cmd += ["--host", host]
|
||||
subprocess.run(cmd)
|
||||
# load pyproject.toml
|
||||
project_dir = get_package_root()
|
||||
pyproject = project_dir / "pyproject.toml"
|
||||
|
||||
# get langserve export - throws KeyError if invalid
|
||||
get_langserve_export(pyproject)
|
||||
|
||||
port_str = str(port) if port is not None else "8000"
|
||||
host_str = host if host is not None else "127.0.0.1"
|
||||
|
||||
command = [
|
||||
"uvicorn",
|
||||
"langchain_cli.dev_scripts:create_demo_server",
|
||||
"--reload",
|
||||
"--port",
|
||||
port_str,
|
||||
"--host",
|
||||
host_str,
|
||||
]
|
||||
subprocess.run(command)
|
||||
|
@@ -218,13 +218,15 @@ def start(
|
||||
host: Annotated[
|
||||
Optional[str], typer.Option(help="The host to run the server on")
|
||||
] = None,
|
||||
app: Annotated[Optional[str], typer.Option(help="The app to run")] = None,
|
||||
) -> None:
|
||||
"""
|
||||
Starts the LangServe instance.
|
||||
"""
|
||||
cmd = ["poetry", "run", "poe", "start"]
|
||||
if port is not None:
|
||||
cmd += ["--port", str(port)]
|
||||
if host is not None:
|
||||
cmd += ["--host", host]
|
||||
|
||||
app_str = app if app is not None else "app.server:app"
|
||||
port_str = str(port) if port is not None else "8000"
|
||||
host_str = host if host is not None else "127.0.0.1"
|
||||
|
||||
cmd = ["uvicorn", app_str, "--reload", "--port", port_str, "--host", host_str]
|
||||
subprocess.run(cmd)
|
||||
|
@@ -11,7 +11,6 @@ langchain = ">=0.0.313, <0.1"
|
||||
openai = "^0.28.1"
|
||||
|
||||
[tool.poetry.group.dev.dependencies]
|
||||
poethepoet = "^0.24.1"
|
||||
langchain-cli = ">=0.0.4"
|
||||
fastapi = "^0.104.0"
|
||||
sse-starlette = "^1.6.5"
|
||||
@@ -20,13 +19,6 @@ sse-starlette = "^1.6.5"
|
||||
export_module = "__package_name__.chain"
|
||||
export_attr = "chain"
|
||||
|
||||
[tool.poe.tasks.start]
|
||||
cmd="uvicorn langchain_cli.dev_scripts:create_demo_server --reload --port $port --host $host"
|
||||
args = [
|
||||
{name = "port", help = "port to run on", default = "8000"},
|
||||
{name = "host", help = "host to run on", default = "127.0.0.1"}
|
||||
]
|
||||
|
||||
[build-system]
|
||||
requires = ["poetry-core"]
|
||||
build-backend = "poetry.core.masonry.api"
|
||||
|
@@ -9,4 +9,4 @@ add_routes(app, NotImplemented)
|
||||
if __name__ == "__main__":
|
||||
import uvicorn
|
||||
|
||||
uvicorn.run(app, host="0.0.0.0", port=8001)
|
||||
uvicorn.run(app, host="0.0.0.0", port=8000)
|
||||
|
@@ -14,17 +14,9 @@ fastapi = "^0.103.2"
|
||||
langserve = ">=0.0.16"
|
||||
|
||||
[tool.poetry.group.dev.dependencies]
|
||||
poethepoet = "^0.24.1"
|
||||
uvicorn = "^0.23.2"
|
||||
pygithub = "^2.1.1"
|
||||
|
||||
[tool.poe.tasks.start]
|
||||
cmd="uvicorn app.server:app --reload --port $port --host $host"
|
||||
args = [
|
||||
{name = "port", help = "port to run on", default = "8000"},
|
||||
{name = "host", help = "host to run on", default = "127.0.0.1"}
|
||||
]
|
||||
|
||||
|
||||
[build-system]
|
||||
requires = ["poetry-core"]
|
||||
|
Reference in New Issue
Block a user