mirror of
https://github.com/hwchase17/langchain
synced 2024-11-06 03:20:49 +00:00
bc7e56e8df
Supporting asyncio in langchain primitives allows for users to run them concurrently and creates more seamless integration with asyncio-supported frameworks (FastAPI, etc.) Summary of changes: **LLM** * Add `agenerate` and `_agenerate` * Implement in OpenAI by leveraging `client.Completions.acreate` **Chain** * Add `arun`, `acall`, `_acall` * Implement them in `LLMChain` and `LLMMathChain` for now **Agent** * Refactor and leverage async chain and llm methods * Add ability for `Tools` to contain async coroutine * Implement async SerpaPI `arun` Create demo notebook. Open questions: * Should all the async stuff go in separate classes? I've seen both patterns (keeping the same class and having async and sync methods vs. having class separation)
106 lines
3.1 KiB
TOML
106 lines
3.1 KiB
TOML
[tool.poetry]
|
|
name = "langchain"
|
|
version = "0.0.79"
|
|
description = "Building applications with LLMs through composability"
|
|
authors = []
|
|
license = "MIT"
|
|
readme = "README.md"
|
|
repository = "https://www.github.com/hwchase17/langchain"
|
|
|
|
[tool.poetry.scripts]
|
|
langchain-server = "langchain.server:main"
|
|
|
|
[tool.poetry.dependencies]
|
|
python = ">=3.8.1,<4.0"
|
|
pydantic = "^1"
|
|
SQLAlchemy = "^1"
|
|
requests = "^2"
|
|
PyYAML = "^6"
|
|
numpy = "^1"
|
|
faiss-cpu = {version = "^1", optional = true}
|
|
wikipedia = {version = "^1", optional = true}
|
|
elasticsearch = {version = "^8", optional = true}
|
|
redis = {version = "^4", optional = true}
|
|
manifest-ml = {version = "^0.0.1", optional = true}
|
|
spacy = {version = "^3", optional = true}
|
|
nltk = {version = "^3", optional = true}
|
|
transformers = {version = "^4", optional = true}
|
|
beautifulsoup4 = {version = "^4", optional = true}
|
|
torch = {version = "^1", optional = true}
|
|
jinja2 = {version = "^3", optional = true}
|
|
tiktoken = {version = "^0", optional = true, python="^3.9"}
|
|
pinecone-client = {version = "^2", optional = true}
|
|
weaviate-client = {version = "^3", optional = true}
|
|
google-api-python-client = {version = "2.70.0", optional = true}
|
|
wolframalpha = {version = "5.0.0", optional = true}
|
|
qdrant-client = {version = "^0.11.7", optional = true}
|
|
dataclasses-json = "^0.5.7"
|
|
tensorflow-text = {version = "^2.11.0", optional = true, python = "^3.10, <3.12"}
|
|
tenacity = "^8.1.0"
|
|
aiohttp = "^3.8.3"
|
|
|
|
[tool.poetry.group.docs.dependencies]
|
|
autodoc_pydantic = "^1.8.0"
|
|
myst_parser = "^0.18.1"
|
|
nbsphinx = "^0.8.9"
|
|
sphinx = "^4.5.0"
|
|
sphinx-autobuild = "^2021.3.14"
|
|
sphinx_book_theme = "^0.3.3"
|
|
sphinx_rtd_theme = "^1.0.0"
|
|
sphinx-typlog-theme = "^0.8.0"
|
|
sphinx-panels = "^0.6.0"
|
|
toml = "^0.10.2"
|
|
myst-nb = "^0.17.1"
|
|
linkchecker = "^10.2.1"
|
|
|
|
[tool.poetry.group.test.dependencies]
|
|
pytest = "^7.2.0"
|
|
pytest-cov = "^4.0.0"
|
|
pytest-dotenv = "^0.5.2"
|
|
duckdb-engine = "^0.6.6"
|
|
pytest-watcher = "^0.2.6"
|
|
freezegun = "^1.2.2"
|
|
responses = "^0.22.0"
|
|
pytest-asyncio = "^0.20.3"
|
|
|
|
[tool.poetry.group.lint.dependencies]
|
|
flake8-docstrings = "^1.6.0"
|
|
black = "^22.10.0"
|
|
isort = "^5.10.1"
|
|
flake8 = "^6.0.0"
|
|
types-toml = "^0.10.8.1"
|
|
types-redis = "^4.3.21.6"
|
|
|
|
[tool.poetry.group.typing.dependencies]
|
|
mypy = "^0.991"
|
|
types-pyyaml = "^6.0.12.2"
|
|
types-requests = "^2.28.11.5"
|
|
|
|
[tool.poetry.group.dev]
|
|
optional = true
|
|
|
|
[tool.poetry.group.dev.dependencies]
|
|
jupyter = "^1.0.0"
|
|
playwright = "^1.28.0"
|
|
|
|
[tool.poetry.extras]
|
|
llms = ["cohere", "openai", "nlpcloud", "huggingface_hub", "manifest-ml", "torch", "transformers"]
|
|
all = ["cohere", "openai", "nlpcloud", "huggingface_hub", "manifest-ml", "elasticsearch", "google-search-results", "faiss-cpu", "sentence_transformers", "transformers", "spacy", "nltk", "wikipedia", "beautifulsoup4", "tiktoken", "torch", "jinja2", "pinecone-client", "weaviate-client", "redis", "google-api-python-client", "wolframalpha", "qdrant-client", "tensorflow-text"]
|
|
|
|
[tool.isort]
|
|
profile = "black"
|
|
|
|
[tool.mypy]
|
|
ignore_missing_imports = "True"
|
|
disallow_untyped_defs = "True"
|
|
exclude = ["notebooks"]
|
|
|
|
[tool.coverage.run]
|
|
omit = [
|
|
"tests/*",
|
|
]
|
|
|
|
[build-system]
|
|
requires = ["poetry-core"]
|
|
build-backend = "poetry.core.masonry.api"
|