Почему я могу использовать ollama в виртуальной среде, созданной nix-shell, но не в виртуальной среде, созданной флейком

команда 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

Вы используете аргумент -i/--ignore-env для nix develop? Не делайте этого, если вы не хотите, чтобы он делал то, что написано в документации. :)

Charles Duffy 15.03.2024 12:14

...есть переопределение, которое позволяет вам пометить переменные среды, чтобы они сохранялись, если вы предпочитаете идти по этому пути; --keep HOME, повторите для любых других переменных, которые вы не хотите выбрасывать.

Charles Duffy 15.03.2024 12:15

(кстати, если бы вы показали нам, какие именно аргументы вы передали при вызове nix develop, нам не пришлось бы гадать).

Charles Duffy 15.03.2024 12:16

@CharlesDuffy Вы правы, я использовал -i. В следующий раз я точно покажу, какой аргумент я передал. Но это не решило проблему. Теперь у меня есть это сообщение об ошибке. «Ошибка: демаршал: недопустимый символ 'p' после значения верхнего уровня». И как ни странно, когда я попробовал еще раз с -i и I, предыдущая проблема исчезла, но у меня тоже появилась «Ошибка: демаршал: недопустимый символ 'p' после значения верхнего уровня». Я прочитал это (github.com/ollama/ollama/issues/2293), но это не помогло

Pierre-olivier Gendraud 15.03.2024 12:39

@CharlesDuffy Думаю, теперь это работает. Я опубликую ответ позже. Спасибо за вашу помощь. Я дам ответ на этот вопрос позже

Pierre-olivier Gendraud 15.03.2024 13:28
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
5
528
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Тебе придется бежать 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

теперь Оллама запускает Мистраль, работает

Другие вопросы по теме