команда nix-shell -p ollama
работает нормально. В виртуальной среде я могу это сделать.
ollama start &
ollama run mistral
Теперь я могу использовать чат-бота Mistral llm.
Но когда я использую такие чешуйки.
{
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; inputs.flake-utils.url = "github:numtide/flake-utils";
outputs = { self, nixpkgs, flake-utils }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = nixpkgs.legacyPackages.${system};
ollama=pkgs.ollama;
in {
devShells.default = pkgs.mkShell {
buildInputs = [
pkgs.curl
ollama
];
};
}); }
это не работает. хотя команда создания среды
Nix разрабатывает работы
отлично
Проблема возникает, когда я пытаюсь использовать олламу внутри среды.
ollama.start # if don't do that before ollama.run I get a message that say that ollama hasn't started yet.
возвращает эту ошибку:
Ошибка: $HOME не определен.
У меня такая же проблема ollama.serve
...есть переопределение, которое позволяет вам пометить переменные среды, чтобы они сохранялись, если вы предпочитаете идти по этому пути; --keep HOME
, повторите для любых других переменных, которые вы не хотите выбрасывать.
(кстати, если бы вы показали нам, какие именно аргументы вы передали при вызове nix develop
, нам не пришлось бы гадать).
@CharlesDuffy Вы правы, я использовал -i. В следующий раз я точно покажу, какой аргумент я передал. Но это не решило проблему. Теперь у меня есть это сообщение об ошибке. «Ошибка: демаршал: недопустимый символ 'p' после значения верхнего уровня». И как ни странно, когда я попробовал еще раз с -i и I, предыдущая проблема исчезла, но у меня тоже появилась «Ошибка: демаршал: недопустимый символ 'p' после значения верхнего уровня». Я прочитал это (github.com/ollama/ollama/issues/2293), но это не помогло
@CharlesDuffy Думаю, теперь это работает. Я опубликую ответ позже. Спасибо за вашу помощь. Я дам ответ на этот вопрос позже
Тебе придется бежать nix develop
одному, а не nix develop -i
или хотя бы написать --keep HOME
Если вы пытались использовать ollama с nix-shell. Убедитесь, что процесс ollama больше не работает в фоновом режиме.
В противном случае у вас есть эта ошибка:
Ошибка: прослушивание TCP 127.0.0.1:11434: привязка: адрес уже используется
чтобы решить эту ошибку:
netstat -ltnup | grep ':11434'
Вы получаете 51454/ollama
kill 51454
теперь Оллама запускает Мистраль, работает
Вы используете аргумент
-i
/--ignore-env
дляnix develop
? Не делайте этого, если вы не хотите, чтобы он делал то, что написано в документации. :)