| { | |
| description = "RustLean FIM Space — local dev shell (CUDA + llama-cpp-python) for RTX 2070 Super"; | |
| inputs = { | |
| nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; | |
| flake-utils.url = "github:numtide/flake-utils"; | |
| }; | |
| outputs = { self, nixpkgs, flake-utils }: | |
| flake-utils.lib.eachDefaultSystem (system: | |
| let | |
| pkgs = import nixpkgs { | |
| inherit system; | |
| config.allowUnfree = true; | |
| }; | |
| cuda = pkgs.cudaPackages; | |
| py = pkgs.python312; | |
| in { | |
| devShells.default = pkgs.mkShell { | |
| packages = [ | |
| py | |
| py.pkgs.pip | |
| py.pkgs.virtualenv | |
| pkgs.cmake | |
| pkgs.ninja | |
| pkgs.gcc | |
| pkgs.gnumake | |
| pkgs.git | |
| cuda.cudatoolkit | |
| cuda.cudnn | |
| ]; | |
| env = { | |
| CUDA_HOME = "${cuda.cudatoolkit}"; | |
| CMAKE_ARGS = "-DGGML_CUDA=on -DCMAKE_CUDA_ARCHITECTURES=75"; | |
| }; | |
| shellHook = '' | |
| export PATH="$CUDA_HOME/bin:$PATH" | |
| export LD_LIBRARY_PATH="${cuda.cudatoolkit}/lib:${cuda.cudnn}/lib:$LD_LIBRARY_PATH" | |
| export LIBRARY_PATH="${cuda.cudatoolkit}/lib:${cuda.cudnn}/lib:$LIBRARY_PATH" | |
| if [ ! -d .venv ]; then | |
| ${py}/bin/python -m venv .venv | |
| ./.venv/bin/pip install --upgrade pip wheel setuptools | |
| fi | |
| source .venv/bin/activate | |
| pip install -r requirements.txt | |
| pip install --force-reinstall --no-binary llama-cpp-python llama-cpp-python | |
| echo "" | |
| echo "RustLean dev shell ready. RTX 2070 Super = sm_75 (Turing)." | |
| echo "Put your token in .env (HF_TOKEN), then run: python app.py" | |
| ''; | |
| }; | |
| }); | |
| } | |