257 lines
6.4 KiB
TOML
257 lines
6.4 KiB
TOML
[tool.poetry]
|
|
name = "langchain-chatchat"
|
|
version = "0.3.1.3"
|
|
description = "Langchain-Chatchat (formerly langchain-ChatGLM), local knowledge based LLM (like ChatGLM, Qwen and Llama) RAG and Agent app with langchain"
|
|
authors = ["chatchat"]
|
|
readme = "README.md"
|
|
packages = [
|
|
{include = "chatchat"},
|
|
{include = "langchain_chatchat"}
|
|
]
|
|
|
|
[tool.poetry.scripts]
|
|
chatchat = 'chatchat.cli:main'
|
|
|
|
[tool.poetry.dependencies]
|
|
python = ">=3.8.1,<3.12,!=3.9.7"
|
|
langchain = { version = "0.1.17", python = ">=3.8.1,<3.12,!=3.9.7" }
|
|
langchainhub = "0.1.14"
|
|
langchain-community = "0.0.36"
|
|
langchain-openai = { version = "0.0.6", python = ">=3.8.1,<3.12,!=3.9.7" }
|
|
langchain-experimental = "0.0.58"
|
|
fastapi = "~0.109.2"
|
|
sse_starlette = "~1.8.2"
|
|
nltk = "~3.8.1"
|
|
uvicorn = ">=0.27.0.post1"
|
|
unstructured = "~0.11.0"
|
|
python-magic-bin = {version = "*", platform = "win32"}
|
|
SQLAlchemy = "~2.0.25"
|
|
faiss-cpu = "~1.7.4"
|
|
jieba = "0.42.1"
|
|
rank_bm25 = "0.2.2"
|
|
openpyxl = "3.1.4"
|
|
networkx = "3.1"
|
|
opencv-python = "4.10.0.84"
|
|
PyMuPDF = "~1.23.16"
|
|
rapidocr_onnxruntime = "~1.3.8"
|
|
requests = "~2.31.0"
|
|
pathlib = "~1.0.1"
|
|
pyjwt = "~2.8.0"
|
|
elasticsearch = "*"
|
|
numexpr = ">=1" #test
|
|
strsimpy = ">=0.2.1"
|
|
markdownify = ">=0.11.6"
|
|
tqdm = ">=4.66.1"
|
|
websockets = ">=12.0"
|
|
numpy = "~1.24.4"
|
|
pandas = "~1" # test
|
|
pydantic = "~2.7.4"
|
|
httpx = {version = ">=0.25.2", extras = ["brotli", "http2", "socks"]}
|
|
python-multipart = "0.0.9"
|
|
# webui
|
|
streamlit = "1.34.0"
|
|
streamlit-option-menu = "0.3.12"
|
|
streamlit-antd-components = "0.3.1"
|
|
streamlit-chatbox = "1.1.12.post4"
|
|
streamlit-modal = "0.1.0"
|
|
streamlit-aggrid = "1.0.5"
|
|
streamlit-extras = "0.4.2"
|
|
xinference_client = { version = "^0.13.0", optional = true }
|
|
zhipuai = { version = "^2.1.0", optional = true }
|
|
pymysql = "^1.1.0"
|
|
memoization = "0.4.0"
|
|
pydantic_settings = "2.3.4"
|
|
ruamel_yaml = "0.18.6"
|
|
loguru = "^0.7.2"
|
|
streamlit-paste-button = "0.1.2"
|
|
python-docx = "1.1.2"
|
|
|
|
[tool.poetry.extras]
|
|
xinference = ["xinference_client"]
|
|
zhipuai = ["zhipuai"]
|
|
ollama = ["ollama"]
|
|
|
|
# An extra used to be able to add extended testing.
|
|
# Please use new-line on formatting to make it easier to add new packages without
|
|
# merge-conflicts
|
|
extended_testing = [
|
|
"aleph-alpha-client",
|
|
"aiosqlite",
|
|
"assemblyai",
|
|
"beautifulsoup4",
|
|
"bibtexparser",
|
|
"cassio",
|
|
"datasets",
|
|
"google-cloud-documentai",
|
|
"esprima",
|
|
"pdfminer-six",
|
|
"pgvector",
|
|
"pypdf",
|
|
"pypdfium2",
|
|
"lxml",
|
|
"atlassian-python-api",
|
|
"mwparserfromhell",
|
|
"mwxml",
|
|
"msal",
|
|
"telethon",
|
|
"psychicapi",
|
|
"gql",
|
|
"gradientai",
|
|
"requests-toolbelt",
|
|
"html2text",
|
|
"py-trello",
|
|
"scikit-learn",
|
|
"pyspark",
|
|
"sympy",
|
|
"rapidfuzz",
|
|
"jsonschema",
|
|
"geopandas",
|
|
"gitpython",
|
|
"newspaper3k",
|
|
"nvidia-riva-client",
|
|
"feedparser",
|
|
"xata",
|
|
"xmltodict",
|
|
"openapi-pydantic",
|
|
"arxiv",
|
|
"sqlite-vss",
|
|
"motor",
|
|
"timescale-vector",
|
|
"anthropic",
|
|
"upstash-redis",
|
|
"rspace_client",
|
|
"fireworks-ai",
|
|
"javelin-sdk",
|
|
"hologres-vector",
|
|
"praw",
|
|
"databricks-vectorsearch",
|
|
"cloudpickle",
|
|
"dgml-utils",
|
|
"cohere",
|
|
"tree-sitter",
|
|
"tree-sitter-languages",
|
|
"azure-ai-documentintelligence",
|
|
"oracle-ads",
|
|
"elasticsearch",
|
|
"hdbcli",
|
|
"oci",
|
|
"rdflib",
|
|
"tidb-vector",
|
|
"cloudpickle",
|
|
"friendli-client"
|
|
]
|
|
|
|
[tool.poetry.group.test]
|
|
optional = true
|
|
|
|
[tool.poetry.group.test.dependencies]
|
|
# The only dependencies that should be added are
|
|
# dependencies used for running tests (e.g., pytest, freezegun, response).
|
|
# Any dependencies that do not meet that criteria will be removed.
|
|
pytest = "^7.3.0"
|
|
pytest-cov = "^4.0.0"
|
|
pytest-dotenv = "^0.5.2"
|
|
duckdb-engine = "^0.9.2"
|
|
pytest-watcher = "^0.2.6"
|
|
freezegun = "^1.2.2"
|
|
responses = "^0.22.0"
|
|
pytest-asyncio = "^0.23.2"
|
|
lark = "^1.1.5"
|
|
pytest-mock = "^3.10.0"
|
|
pytest-socket = "^0.6.0"
|
|
syrupy = "^4.0.2"
|
|
requests-mock = "^1.11.0"
|
|
|
|
|
|
[tool.poetry.group.lint]
|
|
optional = true
|
|
|
|
[tool.poetry.group.lint.dependencies]
|
|
ruff = "^0.1.5"
|
|
|
|
|
|
[tool.poetry.group.codespell]
|
|
optional = true
|
|
|
|
[tool.poetry.group.codespell.dependencies]
|
|
codespell = "^2.2.0"
|
|
|
|
|
|
[tool.poetry.group.dev]
|
|
optional = true
|
|
|
|
[tool.poetry.group.dev.dependencies]
|
|
jupyter = "^1.0.0"
|
|
setuptools = "^67.6.1"
|
|
|
|
|
|
|
|
[tool.ruff]
|
|
exclude = [
|
|
"tests/examples/non-utf8-encoding.py",
|
|
"tests/integration_tests/examples/non-utf8-encoding.py",
|
|
]
|
|
|
|
[tool.ruff.lint]
|
|
select = [
|
|
"E", # pycodestyle
|
|
"F", # pyflakes
|
|
"I", # isort
|
|
"T201", # print
|
|
]
|
|
|
|
[tool.mypy]
|
|
ignore_missing_imports = "True"
|
|
disallow_untyped_defs = "True"
|
|
exclude = ["notebooks", "examples", "example_data"]
|
|
|
|
[tool.coverage.run]
|
|
omit = [
|
|
"tests/*",
|
|
]
|
|
|
|
[build-system]
|
|
requires = ["poetry-core>=1.0.0", "poetry-plugin-pypi-mirror==0.4.2"]
|
|
build-backend = "poetry.core.masonry.api"
|
|
|
|
[tool.pytest.ini_options]
|
|
# --strict-markers will raise errors on unknown marks.
|
|
# https://docs.pytest.org/en/7.1.x/how-to/mark.html#raising-errors-on-unknown-marks
|
|
#
|
|
# https://docs.pytest.org/en/7.1.x/reference/reference.html
|
|
# --strict-config any warnings encountered while parsing the `pytest`
|
|
# section of the configuration file raise errors.
|
|
#
|
|
# https://github.com/tophat/syrupy
|
|
# --snapshot-warn-unused Prints a warning on unused snapshots rather than fail the test suite.
|
|
addopts = "--strict-markers --strict-config --durations=5 --snapshot-warn-unused -svv"
|
|
# Registering custom markers.
|
|
# https://docs.pytest.org/en/7.1.x/example/markers.html#registering-markers
|
|
markers = [
|
|
"requires: mark tests as requiring a specific library",
|
|
"scheduled: mark tests to run in scheduled testing",
|
|
"compile: mark placeholder test used to compile integration tests without running them"
|
|
]
|
|
asyncio_mode = "auto"
|
|
|
|
|
|
[tool.codespell]
|
|
skip = '.git,*.pdf,*.svg,*.pdf,*.yaml,*.ipynb,poetry.lock,*.min.js,*.css,package-lock.json,example_data,_dist,examples,*.trig,*.json,*.md,*.html,*.txt,*.csv'
|
|
# Ignore latin etc
|
|
ignore-regex = '.*(Stati Uniti|Tense=Pres).*'
|
|
# whats is a typo but used frequently in queries so kept as is
|
|
# aapply - async apply
|
|
# unsecure - typo but part of API, decided to not bother for now
|
|
ignore-words-list = 'momento,collison,ned,foor,reworkd,parth,whats,aapply,mysogyny,unsecure,damon,crate,aadd,symbl,precesses,accademia,nin'
|
|
|
|
[tool.poetry.plugins.dotenv]
|
|
ignore = "false"
|
|
dotenv = "dotenv:plugin"
|
|
|
|
|
|
# https://python-poetry.org/docs/repositories/
|
|
#[[tool.poetry.source]]
|
|
#name = "tsinghua"
|
|
#url = "https://pypi.tuna.tsinghua.edu.cn/simple/"
|
|
#priority = "primary"
|