Full Stack Web Developer
Dodane: 05-04-2025 07:23:07
Jeśli masz odpowiednią kartę graficzną, z pewnością przyszło Ci do głowy, żeby uruchomić lokalny model AI przy użyciu prostego w obsłudze API — np. przez Ollama. Może jednak napotkałeś po drodze kilka problemów. Ten wpis pomoże Ci je rozwiązać i w prosty sposób wystawić lokalne API.
Zakładam, że masz już zainstalowane Ollama i udało Ci się uruchomić jakiś model lokalnie.
Najpierw sprawdźmy, jakie modele są dostępne w Twojej lokalnej kolekcji:
ollama list
U mnie pojawiła się taka lista:
NAME ID SIZE MODIFIED llama3:8b 365c0bd3c000 4.7 GB 2 hours ago phi4:latest ac896e5b8b34 9.1 GB 37 hours ago deepseek-v2:16b 7c8c332f2df7 8.9 GB 3 days ago
Zdecydowałem się korzystać z modelu deepseek-v2:16b.
Następnie ustawiamy odpowiednie zmienne środowiskowe, które powiedzą Ollamie, gdzie znajdują się modele i na jakim porcie ma działać API:
export OLLAMA_MODELS=/usr/share/ollama/.ollama/models export OLLAMA_HOST=0.0.0.0:11434
⚠️ Port
11434
to domyślny port, z którego będzie korzystać API. Możesz go zmienić, jeśli jest zajęty.
Na koniec uruchamiamy serwer API:
ollama serve
Błąd: Error: listen tcp 0.0.0.0:11434: bind: address already in use
Ten błąd oznacza, że port jest już zajęty. Wystarczy zatrzymać działający proces Ollamy:
systemctl stop ollama ps aux | grep ollama kill -9 [PID]
Błąd: Model not found
Najczęściej oznacza to, że nie ustawiono poprawnie zmiennej OLLAMA_MODELS
, lub modele znajdują się w innej lokalizacji. W takim wypadku znajdź odpowiednią ścieżkę i ustaw ją ponownie:
export OLLAMA_MODELS=/ścieżka/do/twoich/modeli
Ja postawiłem API na zewnętrznej maszynie z kartą graficzną. Jeśli chcesz używać API tylko lokalnie, ustaw OLLAMA_HOST
na:
export OLLAMA_HOST=127.0.0.1:11434
Dzięki temu API nie będzie widoczne w Twojej sieci lokalnej.
Endpoint:
http://192.168.1.100:11434/api/generate
Payload (JSON):
{ "model": "deepseek-v2:16b", "prompt": "Why is the sky blue?", "stream": false }
Przykładowa odpowiedź:
{ "model": "deepseek-v2:16b", "created_at": "2025-04-05T19:01:39.249976559Z", "response": "The color of the sky, which appears to be predominantly blue during daylight hours, can primarily be attributed to a phenomenon called Rayleigh scattering...", "done": true, "done_reason": "stop", "context": [...] }
To wszystko! Masz teraz w pełni działające lokalne API z modelem AI.
Przydatne linki:
https://ollama.com/
https://www.postman.com/postman-student-programs/ollama-api/documentation/suc47x8/ollama-rest-api