Запуск олламы на Kaggle

Я скачал ollama на ноутбук Kaggle (Linux). Я хочу взаимодействовать с ним, используя скрипт Python. Следуя инструкциям в репозитории GitHub и запустив: ollama run llama3, я получил результат: Error: could not connect to ollama app, is it running?.

Похоже, мне нужно запустить ollama serve перед запуском llama3. Однако весь основной поток занят ollama serve, поэтому после него вы не можете запускать что-либо еще.

Обходные пути, которые я пробовал:

  • Пытаюсь создать фоновый процесс: ollama serve & который вернулся OSError: Background processes not supported.
  • Попытка запустить его через Python, используя subprocess.run('ollama', 'serve'), который возвращает TypeError: bufsize must be an integer

Полные логи второго метода:

TypeError                                 Traceback (most recent call last)
Cell In[29], line 1
----> 1 subprocess.run('ollama', 'serve')

File /opt/conda/lib/python3.10/subprocess.py:503, in run(input, capture_output, timeout, check, *popenargs, **kwargs)
    500     kwargs['stdout'] = PIPE
    501     kwargs['stderr'] = PIPE
--> 503 with Popen(*popenargs, **kwargs) as process:
    504     try:
    505         stdout, stderr = process.communicate(input, timeout=timeout)

File /opt/conda/lib/python3.10/subprocess.py:780, in Popen.__init__(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, user, group, extra_groups, encoding, errors, text, umask, pipesize)
    778     bufsize = -1  # Restore default
    779 if not isinstance(bufsize, int):
--> 780     raise TypeError("bufsize must be an integer")
    782 if pipesize is None:
    783     pipesize = -1  # Restore default

TypeError: bufsize must be an integer

Я выбрал олламу, потому что настройка была простой (просто запуск одной команды). Я согласен использовать другой метод, кроме ollama, однако я хочу запустить его на Python без особой настройки, поскольку он работает на Kaggle.

возможно, вам стоит попробовать запустить его на локальном компьютере вместо Kaggle. В конце концов вы должны проверить, будет ли это работать Google Colab

furas 27.04.2024 17:52
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
1
707
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Вот что я сделал, чтобы заставить его работать:

#Download ollama
!curl -fsSL https://ollama.com/install.sh | sh
import subprocess
process = subprocess.Popen("ollama serve", shell=True) #runs on a different thread
#Download model
!ollama pull llama3
!pip install ollama
import ollama

#Then everytime you want to chat
response = ollama.chat(model='llama3', messages=[
  {
    'role': 'user',
    'content': 'Why is the sky blue?',
  },
])
print(response['message']['content'])

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