nixpkgs/pkgs/servers/search/khoj/default.nix

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

143 lines
3.2 KiB
Nix
Raw Normal View History

2023-02-07 13:39:21 +00:00
{ lib
2023-03-16 20:42:28 +00:00
, stdenv
2023-02-07 13:39:21 +00:00
, fetchFromGitHub
, python3
, postgresql
, postgresqlTestHook
2023-02-07 13:39:21 +00:00
}:
python3.pkgs.buildPythonApplication rec {
2023-02-07 13:39:21 +00:00
pname = "khoj";
version = "1.0.1";
pyproject = true;
2023-02-07 13:39:21 +00:00
src = fetchFromGitHub {
owner = "debanjum";
repo = "khoj";
2023-02-15 20:48:34 +00:00
rev = "refs/tags/${version}";
hash = "sha256-lvOeYTrvW5MfhuJ3lj9n9TRlvpRwVP2vFeaEeJdqIec=";
2023-02-07 13:39:21 +00:00
};
env = {
DJANGO_SETTINGS_MODULE = "khoj.app.settings";
postgresqlEnableTCP = 1;
};
nativeBuildInputs = with python3.pkgs; [
hatch-vcs
hatchling
];
propagatedBuildInputs = with python3.pkgs; [
aiohttp
anyio
authlib
beautifulsoup4
2023-02-07 13:39:21 +00:00
dateparser
defusedxml
django
2023-02-07 13:39:21 +00:00
fastapi
google-auth
# gpt4all
gunicorn
httpx
itsdangerous
2023-02-07 13:39:21 +00:00
jinja2
langchain
lxml
2023-02-07 13:39:21 +00:00
openai
openai-whisper
pgvector
2023-02-07 13:39:21 +00:00
pillow
psycopg2
2023-02-07 13:39:21 +00:00
pydantic
pymupdf
python-multipart
2023-02-07 13:39:21 +00:00
pyyaml
# rapidocr-onnxruntime
requests
rich
2023-02-07 13:39:21 +00:00
schedule
sentence-transformers
stripe
tenacity
tiktoken
2023-02-07 13:39:21 +00:00
torch
transformers
tzdata
2023-02-07 13:39:21 +00:00
uvicorn
];
nativeCheckInputs = with python3.pkgs; [
freezegun
factory-boy
pytest-xdist
trio
psutil
pytest-django
pytestCheckHook
] ++ [
(postgresql.withPackages (p: with p; [ pgvector ]))
postgresqlTestHook
2023-02-07 13:39:21 +00:00
];
preCheck = ''
export HOME=$(mktemp -d)
'';
2023-02-07 13:39:21 +00:00
pythonImportsCheck = [
"khoj"
2023-02-07 13:39:21 +00:00
];
disabledTests = [
# Tests require network access
"test_different_user_data_not_accessed"
"test_get_api_config_types"
"test_get_configured_types_via_api"
"test_image_metadata"
"test_image_search"
"test_image_search_by_filepath"
"test_image_search_query_truncated"
"test_index_update"
"test_index_update_with_no_auth_key"
"test_notes_search"
"test_notes_search_with_exclude_filter"
"test_notes_search_with_include_filter"
"test_parse_html_plaintext_file"
"test_regenerate_index_with_new_entry"
"test_regenerate_with_github_fails_without_pat"
"test_regenerate_with_invalid_content_type"
"test_regenerate_with_valid_content_type"
"test_search_for_user2_returns_empty"
"test_search_with_invalid_auth_key"
"test_search_with_invalid_content_type"
"test_search_with_no_auth_key"
"test_search_with_valid_content_type"
"test_text_index_same_if_content_unchanged"
"test_text_indexer_deletes_embedding_before_regenerate"
"test_text_search"
"test_text_search_setup_batch_processes"
"test_update_with_invalid_content_type"
"test_user_no_data_returns_empty"
# Tests require rapidocr-onnxruntime
"test_multi_page_pdf_to_jsonl"
"test_single_page_pdf_to_jsonl"
"test_ocr_page_pdf_to_jsonl"
];
disabledTestPaths = [
# Tests require network access
"tests/test_conversation_utils.py"
];
2023-02-07 13:39:21 +00:00
meta = with lib; {
description = "Natural Language Search Assistant for your Org-Mode and Markdown notes, Beancount transactions and Photos";
homepage = "https://github.com/debanjum/khoj";
2023-02-27 10:18:41 +00:00
changelog = "https://github.com/debanjum/khoj/releases/tag/${version}";
license = licenses.agpl3Plus;
2023-02-07 13:39:21 +00:00
maintainers = with maintainers; [ dit7ya ];
2024-04-05 18:52:14 +00:00
broken = true; # last successful build 2024-01-10
2023-02-07 13:39:21 +00:00
};
}