Integracja Ollama z Pythonem: Przykłady REST API i klienta Pythona
+ Konkretne Przykłady Używania Myślących LLMów
W tym wpisie omówimy dwa sposoby połączenia swojej aplikacji Python z Ollama: 1. Poprzez HTTP REST API; 2. Poprzez oficjalną bibliotekę Pythona do Ollama.
Omówimy zarówno chat, jak i generate, a następnie porozmawiamy o tym, jak skutecznie korzystać z „modeli myślenia”.

Ollama staje się bardzo szybko jednym z najwygodniejszych sposobów uruchamiania dużych modeli językowych (LLM) lokalnie. Aby zobaczyć, jak Ollama porównuje się do vLLM, Docker Model Runner, LocalAI i dostawców chmurowych — w tym kiedy wybrać każdy z nich — zobacz Hostowanie LLM: Porównanie lokalnego, samodzielnie hostowanego i infrastruktury chmurowej. Z powodu prostego interfejsu i wsparcia dla popularnych otwartych modeli takich jak Llama 3, Mistral, Qwen2.5, a nawet „wariantów myślenia” takich jak qwen3, łatwo jest wgrać możliwości AI bezpośrednio do swoich projektów Pythona — bez konieczności korzystania z zewnętrznego API chmurowego.
🧩 Wymagania wstępne
Przed rozpoczęciem upewnij się, że masz:
pip install requests ollama
Potwierdź, że Ollama działa, wykonując:
ollama list
Powinieneś zobaczyć dostępne modele takie jak llama3, mistral lub qwen3.
⚙️ Opcja 1: Użycie REST API Ollama
REST API jest idealny, gdy chcesz mieć maksymalny kontrolę lub gdy integrujesz się z ramami, które już obsługują żądania HTTP.
Przykład 1: API Chat
import requests
import json
url = "http://localhost:11434/api/chat"
payload = {
"model": "llama3.1",
"messages": [
{"role": "system", "content": "Jesteś asystentem Pythona."},
{"role": "user", "content": "Napisz funkcję, która odwraca ciąg znaków."}
]
}
response = requests.post(url, json=payload, stream=True)
for line in response.iter_lines():
if line:
data = json.loads(line)
print(data.get("message", {}).get("content", ""), end="")
👉 REST API Ollama przesyła odpowiedzi linia po linii (podobnie jak API przesyłania OpenAI). Możesz gromadzić treść lub wyświetlać ją w czasie rzeczywistym w przypadku botów rozmachowych lub narzędzi CLI.
Przykład 2: API Generate
Jeśli nie potrzebujesz kontekstu rozmowy ani ról, użyj prostszego punktu końcowego /api/generate:
import requests
url = "http://localhost:11434/api/generate"
payload = {
"model": "llama3.1",
"prompt": "Wyjaśnij rekurencję w jednym zdaniu."
}
response = requests.post(url, json=payload, stream=True)
for line in response.iter_lines():
if line:
print(line.decode("utf-8"))
Ten punkt końcowy jest świetny do jednorazowych zadań generowania tekstu — streszczeń, fragmentów kodu itp.
🐍 Opcja 2: Użycie biblioteki Pythona Ollama
Klient Pythona Ollama oferuje czystszy interfejs dla programistów, którzy preferują pełną pracę w Pythonie.
Przykład 1: API Chat
import ollama
response = ollama.chat(
model="llama3.1",
messages=[
{"role": "system", "content": "Jesteś asystentem kodowym."},
{"role": "user", "content": "Wygeneruj skrypt Pythona, który wyświetla wszystkie pliki w katalogu."}
]
)
print(response['message']['content'])
To zwraca końcową wiadomość jako słownik. Jeśli chcesz przesyłanie, możesz iterować po strumieniu rozmowy:
stream = ollama.chat(
model="llama3.1",
messages=[
{"role": "user", "content": "Napisz haiku o rekurencji."}
],
stream=True
)
for chunk in stream:
print(chunk['message']['content'], end='', flush=True)
Przykład 2: API Generate
import ollama
output = ollama.generate(
model="llama3.1",
prompt="Streszczenie koncepcji dekoratorów w Pythonie."
)
print(output['response'])
Lub przesyłaj wynik:
stream = ollama.generate(
model="llama3.1",
prompt="Wymień trzy zalety korzystania z Pythona w projektach AI.",
stream=True
)
for chunk in stream:
print(chunk['response'], end='', flush=True)
🧠 Praca z „modelami myślenia”
Ollama obsługuje „modele myślenia” takie jak qwen3, zaprojektowane do pokazywania ich kroków rozumowania. Te modele generują strukturalny output, często w formacie takim jak:
🧠
Kroki rozumowania tutaj...
</think>
Ostateczna odpowiedź tutaj.
To czyni je przydatnymi do:
- Debugowania rozumowania modelu
- Badania interpretowalności
- Budowania narzędzi, które oddzielają myśl od wyjścia
Przykład: Użycie modelu myślenia
import ollama
response = ollama.chat(
model="qwen3",
messages=[
{"role": "user", "content": "Jaka jest stolica Australii?"}
]
)
content = response['message']['content']
# Opcjonalnie wyodrębnij „część myślenia”
import re
thinking = re.findall(r"🧠(.*?)✅", content, re.DOTALL)
answer = re.sub(r"🧠.*?✅", "", content, flags=re.DOTALL)
print("🧠 Proces myślenia:\n", thinking[0].strip() if thinking else "N/A")
print("\n✅ Ostateczna odpowiedź:\n", answer.strip())
Kiedy używać modeli myślenia
| Przypadek użycia | Zalecany model | Dlaczego |
|---|---|---|
| Interpretowalność / Debugowanie | qwen3 |
Widoczne śladowanie rozumowania |
| Aplikacje wrażliwe na wydajność | qwen3 tryb bez myślenia |
Szybsze, mniej rozbudowane |
| Edukacyjne / Wyjaśniające | qwen3 |
Pokazuje krok po kroku logikę |
✅ Podsumowanie
| Zadanie | REST API | Klient Pythona |
|---|---|---|
| Proste generowanie tekstu | /api/generate |
ollama.generate() |
| Konwersacyjny chat | /api/chat |
ollama.chat() |
| Obsługa strumienia | Tak | Tak |
| Działa z modelami myślenia | Tak | Tak |
Lokalny design Ollama sprawia, że jest idealny do zastosowań AI bezpiecznych, offline lub wrażliwych na prywatność. Niezależnie od tego, czy budujesz interaktywnego chatbota, czy usługę w tle do wzbogacania danych, możesz bezproblemowo wgrać LLM do swojego przepływu pracy Pythona — z pełną kontrolą nad modelami, opóźnieniem i danymi. Dla szerszego porównania Ollama z inną lokalną i chmurową infrastrukturą LLM, sprawdź nasz Hostowanie LLM: Lokalne, samodzielnie hostowane i infrastruktura chmurowa – Porównanie.
Przydatne linki
- https://pypi.org/project/ollama/
- Ollama cheatsheet
- Python Cheatsheet
- Zainstaluj i skonfiguruj Ollama
- Ograniczanie LLM z Strukturalnym Outputem: Ollama, Qwen3 & Python lub Go
- Porównanie strukturalnego outputu wśród popularnych dostawców LLM - OpenAI, Gemini, Anthropic, Mistral i AWS Bedrock
- Problemy z Strukturalnym Outputem w Ollama GPT-OSS
- Jak Ollama Obsługuje Wątki Wątków
- Test: Przydział pamięci i planowanie modeli w nowej wersji Ollama - v0.12.1