forked from Archives/langchain
6dc86ad48f
Using `pytest-vcr` in integration tests has several benefits. Firstly, it removes the need to mock external services, as VCR records and replays HTTP interactions on the fly. Secondly, it simplifies the integration test setup by eliminating the need to set up and tear down external services in some cases. Finally, it allows for more reliable and deterministic integration tests by ensuring that HTTP interactions are always replayed with the same response. Overall, `pytest-vcr` is a valuable tool for simplifying integration test setup and improving their reliability This commit adds the `pytest-vcr` package as a dependency for integration tests in the `pyproject.toml` file. It also introduces two new fixtures in `tests/integration_tests/conftest.py` files for managing cassette directories and VCR configurations. In addition, the `tests/integration_tests/vectorstores/test_elasticsearch.py` file has been updated to use the `@pytest.mark.vcr` decorator for recording and replaying HTTP interactions. Finally, this commit removes the `documents` fixture from the `test_elasticsearch.py` file and replaces it with a new fixture defined in `tests/integration_tests/vectorstores/conftest.py` that yields a list of documents to use in any other tests. This also includes my second attempt to fix issue : https://github.com/hwchase17/langchain/issues/2386 Maybe related https://github.com/hwchase17/langchain/issues/2484
142 lines
4.6 KiB
TOML
142 lines
4.6 KiB
TOML
[tool.poetry]
|
|
name = "langchain"
|
|
version = "0.0.133"
|
|
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 = ">=5.4.1"
|
|
numpy = "^1"
|
|
openapi-schema-pydantic = "^1.2"
|
|
faiss-cpu = {version = "^1", optional = true}
|
|
wikipedia = {version = "^1", optional = true}
|
|
elasticsearch = {version = "^8", optional = true}
|
|
opensearch-py = {version = "^2.0.0", 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.3.2", 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}
|
|
anthropic = {version = "^0.2.4", optional = true}
|
|
qdrant-client = {version = "^1.1.1", optional = true, python = ">=3.8.1,<3.12"}
|
|
dataclasses-json = "^0.5.7"
|
|
tensorflow-text = {version = "^2.11.0", optional = true, python = "^3.10, <3.12"}
|
|
tenacity = "^8.1.0"
|
|
cohere = {version = "^3", optional = true}
|
|
openai = {version = "^0", optional = true}
|
|
nlpcloud = {version = "^1", optional = true}
|
|
nomic = {version = "^1.0.43", optional = true}
|
|
huggingface_hub = {version = "^0", optional = true}
|
|
jina = {version = "^3.14", optional = true}
|
|
google-search-results = {version = "^2", optional = true}
|
|
sentence-transformers = {version = "^2", optional = true}
|
|
aiohttp = "^3.8.3"
|
|
pypdf = {version = "^3.4.0", optional = true}
|
|
networkx = {version="^2.6.3", optional = true}
|
|
aleph-alpha-client = {version="^2.15.0", optional = true}
|
|
deeplake = {version = "^3.2.9", optional = true}
|
|
pgvector = {version = "^0.1.6", optional = true}
|
|
psycopg2-binary = {version = "^2.9.5", optional = true}
|
|
boto3 = {version = "^1.26.96", optional = true}
|
|
pyowm = {version = "^3.3.0", optional = true}
|
|
async-timeout = {version = "^4.0.0", python = "<3.11"}
|
|
|
|
[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"
|
|
sphinx-copybutton = "^0.5.1"
|
|
|
|
[tool.poetry.group.test.dependencies]
|
|
pytest = "^7.2.0"
|
|
pytest-cov = "^4.0.0"
|
|
pytest-dotenv = "^0.5.2"
|
|
duckdb-engine = "^0.7.0"
|
|
pytest-watcher = "^0.2.6"
|
|
freezegun = "^1.2.2"
|
|
responses = "^0.22.0"
|
|
pytest-asyncio = "^0.20.3"
|
|
|
|
[tool.poetry.group.test_integration]
|
|
optional = true
|
|
|
|
[tool.poetry.group.test_integration.dependencies]
|
|
openai = "^0.27.4"
|
|
elasticsearch = {extras = ["async"], version = "^8.6.2"}
|
|
pytest-vcr = "^1.0.2"
|
|
wrapt = "^1.15.0"
|
|
|
|
[tool.poetry.group.lint.dependencies]
|
|
ruff = "^0.0.249"
|
|
types-toml = "^0.10.8.1"
|
|
types-redis = "^4.3.21.6"
|
|
black = "^23.1.0"
|
|
|
|
[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"
|
|
setuptools = "^67.6.1"
|
|
|
|
[tool.poetry.extras]
|
|
llms = ["anthropic", "cohere", "openai", "nlpcloud", "huggingface_hub", "manifest-ml", "torch", "transformers"]
|
|
qdrant = ["qdrant-client"]
|
|
openai = ["openai"]
|
|
cohere = ["cohere"]
|
|
all = ["anthropic", "cohere", "openai", "nlpcloud", "huggingface_hub", "jina", "manifest-ml", "elasticsearch", "opensearch-py", "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", "pypdf", "networkx", "nomic", "aleph-alpha-client", "deeplake", "pgvector", "psycopg2-binary", "boto3", "pyowm"]
|
|
|
|
[tool.ruff]
|
|
select = [
|
|
"E", # pycodestyle
|
|
"F", # pyflakes
|
|
"I", # isort
|
|
]
|
|
|
|
[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"
|