nixpkgs/pkgs/by-name/ch/chatgpt-retrieval-plugin/package.nix
aleksana 571c71e6f7 treewide: migrate packages to pkgs/by-name, take 1
We are migrating packages that meet below requirements:

1. using `callPackage`
2. called path is a directory
3. overriding set is empty (`{ }`)
4. not containing path expressions other than relative path (to
makenixpkgs-vet happy)
5. not referenced by nix files outside of the directory, other
than`pkgs/top-level/all-packages.nix`
6. not referencing nix files outside of the directory
7. not referencing `default.nix` (since it's changed to `package.nix`)
8. `outPath` doesn't change after migration

The tool is here: https://github.com/Aleksanaa/by-name-migrate.
2024-11-09 20:04:51 +08:00

73 lines
2.2 KiB
Nix

{ lib
, python3Packages
, fetchFromGitHub
, python3
, nix-update-script
, dasel
}:
python3Packages.buildPythonApplication {
pname = "chatgpt-retrieval-plugin";
version = "unstable-2023-03-28";
format = "pyproject";
src = fetchFromGitHub {
owner = "openai";
repo = "chatgpt-retrieval-plugin";
rev = "958bb787bf34823538482a9eb3157c5bf994a182";
hash = "sha256-fCNGzK5Uji6wGDTEwAf4FF/i+RC7ny3v4AsvQwIbehY=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace 'fastapi = "^0.92.0"' 'fastapi = ">=0.92.0"' \
--replace 'python-dotenv = "^0.21.1"' 'python-dotenv = "*"' \
--replace 'python-multipart = "^0.0.6"' 'python-multipart = "^0.0.5"' \
--replace 'redis = "4.5.1"' 'redis = "^4.5.1"' \
--replace 'tiktoken = "^0.2.0"' 'tiktoken = "^0.3.0"' \
--replace 'packages = [{include = "server"}]' 'packages = [{include = "server"}, {include = "models"}, {include = "datastore"}, {include = "services"}]'
substituteInPlace server/main.py \
--replace 'directory=".well-known"' 'directory="/var/lib/chatgpt-retrieval-plugin/.well-known"' \
--replace '0.0.0.0' '127.0.0.1' \
--replace '8000' '8080'
${dasel}/bin/dasel put -t string -f pyproject.toml -v '.well-known/*' '.tool.poetry.include.[]'
'';
nativeBuildInputs = with python3Packages; [
poetry-core
];
propagatedBuildInputs = with python3.pkgs; [
fastapi
arrow
tiktoken
python-multipart
python-dotenv
openai
weaviate-client
pinecone-client
pymilvus
uvicorn
python-pptx
tenacity
pypdf2
qdrant-client
redis
docx2txt
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
broken = true; # dependencies are not up to date, the project doesn't look well maintained, this doesn't look like it's going in the right direction. I'm happy to handle maintainership to whoever wants to.
homepage = "https://github.com/openai/chatgpt-retrieval-plugin";
description = "Tool to search and find personal or work documents by asking questions in everyday language";
license = licenses.mit;
maintainers = with maintainers; [ happysalada ];
};
}