Я скачал 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.
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.
Вот что я сделал, чтобы заставить его работать:
#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'])
возможно, вам стоит попробовать запустить его на локальном компьютере вместо
Kaggle
. В конце концов вы должны проверить, будет ли это работатьGoogle Colab