2023-02-16 02:02:30 +01:00
|
|
|
[build-system]
|
2023-02-18 00:08:05 +01:00
|
|
|
requires = ["hatchling", "hatch-vcs"]
|
2023-02-16 02:02:30 +01:00
|
|
|
build-backend = "hatchling.build"
|
|
|
|
|
|
|
|
[project]
|
|
|
|
name = "khoj-assistant"
|
2023-10-14 05:22:33 +02:00
|
|
|
description = "An AI copilot for your Second Brain"
|
2023-02-16 02:02:30 +01:00
|
|
|
readme = "README.md"
|
2024-01-29 13:33:43 +01:00
|
|
|
license = "AGPL-3.0-or-later"
|
2024-03-28 07:49:07 +01:00
|
|
|
requires-python = ">=3.9"
|
2023-02-16 02:02:30 +01:00
|
|
|
authors = [
|
2023-02-16 10:12:04 +01:00
|
|
|
{ name = "Debanjum Singh Solanky, Saba Imran" },
|
2023-02-16 02:02:30 +01:00
|
|
|
]
|
|
|
|
keywords = [
|
|
|
|
"search",
|
|
|
|
"semantic-search",
|
|
|
|
"productivity",
|
|
|
|
"NLP",
|
|
|
|
"AI",
|
|
|
|
"org-mode",
|
|
|
|
"markdown",
|
|
|
|
"images",
|
2023-06-01 06:25:48 +02:00
|
|
|
"pdf",
|
2023-02-16 02:02:30 +01:00
|
|
|
]
|
|
|
|
classifiers = [
|
2024-03-28 19:28:15 +01:00
|
|
|
"Development Status :: 5 - Production/Stable",
|
|
|
|
"License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)",
|
2023-02-16 02:02:30 +01:00
|
|
|
"Operating System :: OS Independent",
|
|
|
|
"Programming Language :: Python :: 3",
|
|
|
|
"Programming Language :: Python :: 3.9",
|
|
|
|
"Programming Language :: Python :: 3.10",
|
2023-06-29 23:54:51 +02:00
|
|
|
"Programming Language :: Python :: 3.11",
|
2024-04-07 07:07:54 +02:00
|
|
|
"Programming Language :: Python :: 3.12",
|
2023-02-16 02:02:30 +01:00
|
|
|
"Topic :: Internet :: WWW/HTTP :: Indexing/Search",
|
|
|
|
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
|
|
"Topic :: Scientific/Engineering :: Human Machine Interfaces",
|
2024-03-28 19:28:15 +01:00
|
|
|
"Intended Audience :: Information Technology",
|
2023-02-16 02:02:30 +01:00
|
|
|
]
|
|
|
|
dependencies = [
|
2024-03-09 19:38:48 +01:00
|
|
|
"beautifulsoup4 ~= 4.12.3",
|
2023-08-07 07:48:40 +02:00
|
|
|
"dateparser >= 1.1.1",
|
2023-02-16 02:02:30 +01:00
|
|
|
"defusedxml == 0.7.1",
|
2023-11-18 03:22:45 +01:00
|
|
|
"fastapi >= 0.104.1",
|
2024-02-14 13:02:47 +01:00
|
|
|
"python-multipart >= 0.0.7",
|
2024-01-14 19:29:00 +01:00
|
|
|
"jinja2 == 3.1.3",
|
2023-12-04 00:16:00 +01:00
|
|
|
"openai >= 1.0.0",
|
2023-08-09 08:00:40 +02:00
|
|
|
"tiktoken >= 0.3.2",
|
2023-03-25 06:36:51 +01:00
|
|
|
"tenacity >= 8.2.2",
|
2024-04-03 06:54:16 +02:00
|
|
|
"magika ~= 0.5.1",
|
2023-11-29 01:57:07 +01:00
|
|
|
"pillow ~= 9.5.0",
|
2023-11-20 23:52:37 +01:00
|
|
|
"pydantic >= 2.0.0",
|
2024-04-07 07:07:54 +02:00
|
|
|
"pyyaml ~= 6.0",
|
2023-02-16 02:02:30 +01:00
|
|
|
"rich >= 13.3.1",
|
|
|
|
"schedule == 1.1.0",
|
2024-02-14 14:07:53 +01:00
|
|
|
"sentence-transformers == 2.5.1",
|
2023-08-02 18:10:14 +02:00
|
|
|
"transformers >= 4.28.0",
|
2024-04-07 07:07:54 +02:00
|
|
|
"torch == 2.2.2",
|
2023-02-16 02:02:30 +01:00
|
|
|
"uvicorn == 0.17.6",
|
2023-11-29 01:57:07 +01:00
|
|
|
"aiohttp ~= 3.9.0",
|
2024-01-11 21:02:46 +01:00
|
|
|
"langchain <= 0.2.0",
|
2024-01-29 09:46:50 +01:00
|
|
|
"langchain-openai >= 0.0.5",
|
2023-06-17 10:39:57 +02:00
|
|
|
"requests >= 2.26.0",
|
2023-08-31 23:14:13 +02:00
|
|
|
"anyio == 3.7.1",
|
2023-10-26 18:42:29 +02:00
|
|
|
"pymupdf >= 1.23.5",
|
2024-02-14 13:02:47 +01:00
|
|
|
"django == 4.2.10",
|
2023-10-15 04:39:13 +02:00
|
|
|
"authlib == 1.2.1",
|
Use llama.cpp for offline chat models
- Benefits of moving to llama-cpp-python from gpt4all:
- Support for all GGUF format chat models
- Support for AMD, Nvidia, Mac, Vulcan GPU machines (instead of just Vulcan, Mac)
- Supports models with more capabilities like tools, schema
enforcement, speculative ddecoding, image gen etc.
- Upgrade default chat model, prompt size, tokenizer for new supported
chat models
- Load offline chat model when present on disk without requiring internet
- Load model onto GPU if not disabled and device has GPU
- Load model onto CPU if loading model onto GPU fails
- Create helper function to check and load model from disk, when model
glob is present on disk.
`Llama.from_pretrained' needs internet to get repo info from
HuggingFace. This isn't required, if the model is already downloaded
Didn't find any existing HF or llama.cpp method that looked for model
glob on disk without internet
2024-03-15 21:19:44 +01:00
|
|
|
"llama-cpp-python == 0.2.56",
|
2023-10-15 04:39:13 +02:00
|
|
|
"itsdangerous == 2.1.2",
|
|
|
|
"httpx == 0.25.0",
|
2023-12-20 08:55:43 +01:00
|
|
|
"pgvector == 0.2.4",
|
2023-10-26 18:42:29 +02:00
|
|
|
"psycopg2-binary == 2.9.9",
|
2023-11-01 01:59:53 +01:00
|
|
|
"lxml == 4.9.3",
|
2023-11-03 07:02:38 +01:00
|
|
|
"tzdata == 2023.3",
|
2024-04-07 07:07:54 +02:00
|
|
|
"rapidocr-onnxruntime == 1.3.11; python_version<'3.12'",
|
2023-11-26 12:37:45 +01:00
|
|
|
"openai-whisper >= 20231117",
|
2024-01-18 14:54:14 +01:00
|
|
|
"django-phonenumber-field == 7.3.0",
|
|
|
|
"phonenumbers == 8.13.27",
|
2024-03-09 19:38:48 +01:00
|
|
|
"markdownify ~= 0.11.6",
|
2024-03-20 09:41:18 +01:00
|
|
|
"websockets == 12.0",
|
2024-04-13 18:45:34 +02:00
|
|
|
"psutil >= 5.8.0",
|
2024-04-16 21:39:36 +02:00
|
|
|
"huggingface-hub >= 0.22.2",
|
2023-02-16 02:02:30 +01:00
|
|
|
]
|
2023-02-18 00:08:05 +01:00
|
|
|
dynamic = ["version"]
|
2023-02-16 02:02:30 +01:00
|
|
|
|
|
|
|
[project.urls]
|
2024-03-14 23:33:39 +01:00
|
|
|
Homepage = "https://khoj.dev"
|
|
|
|
Documentation = "https://docs.khoj.dev"
|
|
|
|
Code = "https://github.com/khoj-ai/khoj"
|
2023-02-16 02:02:30 +01:00
|
|
|
|
|
|
|
[project.scripts]
|
|
|
|
khoj = "khoj.main:run"
|
|
|
|
|
|
|
|
[project.optional-dependencies]
|
2024-02-14 10:50:27 +01:00
|
|
|
prod = [
|
2024-04-24 07:58:55 +02:00
|
|
|
"gunicorn == 22.0.0",
|
2024-02-14 10:50:27 +01:00
|
|
|
"google-auth == 2.23.3",
|
|
|
|
"stripe == 7.3.0",
|
|
|
|
"twilio == 8.11",
|
2024-03-08 06:24:13 +01:00
|
|
|
"boto3 >= 1.34.57",
|
2024-04-10 16:27:33 +02:00
|
|
|
"resend >= 0.8.0",
|
2024-02-14 10:50:27 +01:00
|
|
|
]
|
2024-02-14 11:27:32 +01:00
|
|
|
dev = [
|
|
|
|
"khoj-assistant[prod]",
|
2023-02-17 19:07:59 +01:00
|
|
|
"pytest >= 7.1.2",
|
2024-02-14 11:27:32 +01:00
|
|
|
"pytest-xdist[psutil]",
|
|
|
|
"pytest-django == 4.5.2",
|
|
|
|
"pytest-asyncio == 0.21.1",
|
2023-06-29 07:04:34 +02:00
|
|
|
"freezegun >= 1.2.0",
|
|
|
|
"factory-boy >= 3.2.1",
|
2023-02-17 19:07:59 +01:00
|
|
|
"mypy >= 1.0.1",
|
|
|
|
"black >= 23.1.0",
|
|
|
|
"pre-commit >= 3.0.4",
|
2023-02-16 02:02:30 +01:00
|
|
|
]
|
|
|
|
|
2023-02-18 00:08:05 +01:00
|
|
|
[tool.hatch.version]
|
|
|
|
source = "vcs"
|
|
|
|
raw-options.local_scheme = "no-local-version" # PEP440 compliant version for PyPi
|
|
|
|
|
2023-02-16 02:02:30 +01:00
|
|
|
[tool.hatch.build.targets.sdist]
|
|
|
|
include = ["src/khoj"]
|
|
|
|
|
|
|
|
[tool.hatch.build.targets.wheel]
|
2023-02-16 10:33:08 +01:00
|
|
|
packages = ["src/khoj"]
|
|
|
|
|
|
|
|
[tool.mypy]
|
|
|
|
files = "src/khoj"
|
|
|
|
pretty = true
|
|
|
|
strict_optional = false
|
|
|
|
install_types = true
|
2023-02-17 19:07:59 +01:00
|
|
|
ignore_missing_imports = true
|
2023-02-16 10:33:08 +01:00
|
|
|
non_interactive = true
|
|
|
|
show_error_codes = true
|
2023-02-17 23:11:17 +01:00
|
|
|
warn_unused_ignores = false
|
2023-02-17 17:04:26 +01:00
|
|
|
|
|
|
|
[tool.black]
|
2023-02-17 19:07:59 +01:00
|
|
|
line-length = 120
|
2023-03-15 01:56:14 +01:00
|
|
|
|
2023-11-21 21:48:12 +01:00
|
|
|
[tool.isort]
|
|
|
|
profile = "black"
|
|
|
|
|
2023-03-15 01:56:14 +01:00
|
|
|
[tool.pytest.ini_options]
|
|
|
|
addopts = "--strict-markers"
|
|
|
|
markers = [
|
|
|
|
"chatquality: Evaluate chatbot capabilities and quality",
|
|
|
|
]
|