langchain/libs/langserve/pyproject.toml
Eugene Yurtsev b05bb9e136
LangServe (#11046)
Adds LangServe package

* Integrate Runnables with Fast API creating Server and a RemoteRunnable
client
* Support multiple runnables for a given server
* Support sync/async/batch/abatch/stream/astream/astream_log on the
client side (using async implementations on server)
* Adds validation using annotations (relying on pydantic under the hood)
-- this still has some rough edges -- e.g., open api docs do NOT
generate correctly at the moment
* Uses pydantic v1 namespace

Known issues: type translation code doesn't handle a lot of types (e.g.,
TypedDicts)

---------

Co-authored-by: Bagatur <22008038+baskaryan@users.noreply.github.com>
2023-09-28 10:52:44 +01:00

78 lines
1.8 KiB
TOML

[tool.poetry]
name = "langserve"
version = "0.0.1"
description = ""
readme = "README.md"
authors = ["LangChain"]
license = "MIT"
repository = "https://github.com/langchain-ai/langchain"
[tool.poetry.dependencies]
python = ">3.8.1,<4"
httpx = "^0.25.0"
langchain = { git = "https://github.com/langchain-ai/langchain", subdirectory = "libs/langchain" }
fastapi = {version = ">0.90.1", optional = true}
sse-starlette = {version = "^1.6.5", optional = true}
httpx-sse = {version = "^0.3.1", optional = true}
pydantic = "^1"
[tool.poetry.group.dev.dependencies]
jupyterlab = "^3.6.1"
[tool.poetry.group.typing.dependencies]
[tool.poetry.group.lint.dependencies]
black = { version="^23.1.0", extras=["jupyter"] }
ruff = "^0.0.255"
codespell = "^2.2.0"
[tool.poetry.group.test.dependencies]
pytest = "^7.2.1"
pytest-cov = "^4.0.0"
pytest-asyncio = "^0.21.1"
pytest-mock = "^3.11.1"
pytest-socket = "^0.6.0"
[tool.poetry.group.examples.dependencies]
openai = "^0.28.0"
uvicorn = {extras = ["standard"], version = "^0.23.2"}
[tool.poetry.extras]
# Extras that are used for client
client = ["httpx-sse"]
# Extras that are used for server
server = ["sse-starlette", "fastapi"]
# All
all = ["httpx-sse", "sse-starlette", "fastapi"]
[tool.ruff]
select = [
"E", # pycodestyle
"F", # pyflakes
"I", # isort
]
# Same as Black.
line-length = 88
[tool.ruff.isort]
# TODO(Team): Temporary to make isort work with examples.
# examples assume langserve is available as a 3rd party package
# For simplicity we'll define it as first party for now can update later.
known-first-party = ["langserve"]
[tool.mypy]
disallow_untyped_defs = "True"
ignore_missing_imports = "True"
[tool.coverage.run]
omit = [
"tests/*",
]
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"