1. Đặt vấn đề
Python là ngôn ngữ rất phù hợp để tích hợp Ollama trong các tác vụ AI local. Phần lớn pipeline xử lý tài liệu, RAG, FAISS, embedding, phân tích dữ liệu, đọc PDF/Word/Excel, tự động hóa và thử nghiệm model đều có thể thực hiện thuận lợi bằng Python. Trong bệnh viện, Python có thể dùng để xây dựng backend AI, script xử lý tài liệu, công cụ tạo embedding, API trung gian hoặc job chạy nền.
Tích hợp Ollama với Python là bước thực tế để biến model local thành một phần của workflow xử lý tài liệu và dữ liệu nội bộ.
2. Các cách tích hợp
Có hai cách phổ biến:
2.1. Gọi HTTP API trực tiếp
Dùng thư viện như requests để gửi request đến Ollama API.
2.2. Dùng thư viện client
Có thể dùng các thư viện hỗ trợ Ollama nếu phù hợp. Tuy nhiên, gọi HTTP trực tiếp giúp hiểu rõ request/response và dễ kiểm soát.
Trong môi trường bệnh viện, gọi HTTP qua API trung gian vẫn là kiến trúc tốt hơn nếu ứng dụng có người dùng cuối.
3. Ví dụ gọi API sinh văn bản bằng Python
Ví dụ đơn giản:
import requestsOLLAMA_URL = "http://127.0.0.1:11434/api/generate"payload = {"model": "assistant-qlcl","prompt": "Hãy viết 5 mục tiêu cải tiến chất lượng bệnh viện trong năm tới.","stream": False}response = requests.post(OLLAMA_URL, json=payload, timeout=120)response.raise_for_status()data = response.json()print(data.get("response", ""))
Đây là cách gọi cơ bản. Trong ứng dụng thật cần xử lý lỗi, timeout, log và bảo mật.
4. Ví dụ gọi API chat bằng Python
import requestsOLLAMA_URL = "http://127.0.0.1:11434/api/chat"payload = {"model": "assistant-hanhchinh","messages": [{"role": "user","content": "Hãy viết thông báo nội bộ về việc triển khai khảo sát hài lòng người bệnh."}],"stream": False}response = requests.post(OLLAMA_URL, json=payload, timeout=120)response.raise_for_status()data = response.json()print(data["message"]["content"])
API chat phù hợp khi cần hội thoại nhiều lượt.
5. Ví dụ tạo embedding bằng Python
import requestsOLLAMA_URL = "http://127.0.0.1:11434/api/embed"payload = {"model": "embedding-model","input": "Quy trình báo cáo sự cố y khoa tại bệnh viện"}response = requests.post(OLLAMA_URL, json=payload, timeout=120)response.raise_for_status()data = response.json()embedding = data["embeddings"][0]print(len(embedding))
Tên endpoint và cấu trúc response có thể thay đổi theo phiên bản Ollama, nên cần kiểm tra thực tế trên hệ thống.
6. Python trong pipeline RAG
Python rất phù hợp để xây pipeline:
- Đọc file PDF/DOCX.
- Tách text.
- Làm sạch text.
- Chia chunk.
- Gọi embedding API.
- Lưu vector vào FAISS.
- Lưu metadata.
- Khi có câu hỏi, tạo embedding.
- Tìm chunk liên quan.
- Tạo prompt.
- Gọi Ollama generate/chat.
- Trả câu trả lời kèm nguồn.
Đây là hướng triển khai rất thực tế cho bệnh viện.
7. Xử lý timeout
Model có thể trả lời lâu. Python request nên đặt timeout hợp lý. Với câu trả lời dài hoặc RAG, timeout có thể cần 120–300 giây tùy tác vụ. Nhưng không nên để request treo vô hạn.
Cần xử lý:
- Timeout.
- Lỗi kết nối.
- Ollama service dừng.
- Model chưa tải.
- Response không đúng định dạng.
- GPU quá tải.
- Request bị hủy.
8. Ghi log trong Python
Nên ghi log:
- User hoặc service gọi.
- Model.
- Tác vụ.
- Thời gian bắt đầu/kết thúc.
- Thời gian phản hồi.
- Lỗi.
- Số token hoặc độ dài prompt nếu đo được.
- Không ghi dữ liệu nhạy cảm nếu không cần.
Log giúp giám sát và debug.
9. Không hard-code thông tin nhạy cảm
Nếu Python app có API key, database password hoặc cấu hình nhạy cảm, không hard-code vào script. Dùng biến môi trường hoặc file cấu hình được phân quyền.
Với hệ thống bệnh viện, đây là nguyên tắc bắt buộc.
10. Kết luận
Python là lựa chọn rất mạnh để tích hợp Ollama với hệ thống AI local bệnh viện, đặc biệt cho RAG, FAISS, xử lý tài liệu và backend AI. Tuy nhiên, khi đưa vào vận hành thật, cần xử lý lỗi, timeout, log, bảo mật, phân quyền và dữ liệu nhạy cảm. Python nên gọi Ollama trong kiến trúc có kiểm soát, tốt nhất qua API trung gian nếu phục vụ người dùng cuối.
- Đăng nhập để gửi ý kiến