Ứng dụng nhẹ được đóng gói bằng Docker, tích hợp FastAPI và Ollama để phân tích cảm xúc của văn bản. Dự án sử dụng mô hình llama3.2:1b
để phân loại cảm xúc thành ba nhãn: Trung lập (NEU), Tích cực (POS), và Tiêu cực (NEG).
fuutoru-docker-api-ollama/
├── docker-compose.yml # Cấu hình Docker Compose
├── fastapi/ # Thư mục dịch vụ FastAPI
│ ├── app.py # Ứng dụng FastAPI chính
│ ├── Dockerfile # Dockerfile cho dịch vụ FastAPI
│ └── requirements.txt # Các phụ thuộc Python
└── ollama/ # Thư mục dịch vụ Ollama
├── Dockerfile # Dockerfile cho dịch vụ Ollama
└── pull-llama3.sh # Script để tải và chạy mô hình llama3.2:1b
- Phân tích cảm xúc: Phân tích văn bản đầu vào để xác định cảm xúc (NEU, POS, NEG) bằng mô hình
llama3.2:1b
. - Dịch vụ Docker: Chạy FastAPI và Ollama trong các container độc lập để dễ triển khai và mở rộng.
- Điểm cuối API: Cung cấp điểm cuối GET đơn giản (
/ask
) để xử lý văn bản và trả về nhãn cảm xúc.
-
Sao chép kho lưu trữ:
git clone https://github.com/fuutoru/docker-api-ollama.git cd docker-api-ollama
-
Xây dựng và chạy dịch vụ:
docker-compose up --build
Lệnh này xây dựng hình ảnh FastAPI và Ollama, sau đó khởi động các container. Dịch vụ Ollama sẽ tự động tải mô hình
llama3.2:1b
trong lần chạy đầu tiên. -
Kiểm tra dịch vụ:
- FastAPI sẽ khả dụng tại
http://localhost:8000
. - Ollama sẽ khả dụng tại
http://localhost:11434
.
- FastAPI sẽ khả dụng tại
-
Kiểm tra trạng thái:
- Điểm cuối:
GET /
- Phản hồi:
{"status": "Ok"}
- Mô tả: Kiểm tra xem dịch vụ FastAPI có đang chạy không.
Ví dụ:
curl http://localhost:8000/
- Điểm cuối:
-
Phân tích cảm xúc:
- Điểm cuối:
GET /ask?prompt=<văn-bản-của-bạn>
- Phản hồi: Một trong
NEU
,POS
, hoặcNEG
- Mô tả: Phân tích cảm xúc của văn bản được cung cấp.
Ví dụ:
curl "http://localhost:8000/ask?prompt=rất%20tuyệt%20vời"
Phản hồi:
POS
- Điểm cuối:
- Đầu vào:
"kém hiệu quả"
- Đầu ra:
NEG
- Đầu ra:
- Đầu vào:
"Tôi không có ý kiến gì"
- Đầu ra:
NEU
- Đầu ra:
- Đầu vào:
"đang phát triển mạnh mẽ"
- Đầu ra:
POS
- Đầu ra:
- Cổng:
- FastAPI:
8000
- Ollama:
11434
- FastAPI:
- Volume:
- Mã nguồn FastAPI được gắn kết để hỗ trợ tải lại trực tiếp trong quá trình phát triển.
- Ollama lưu trữ dữ liệu mô hình trong volume Docker
ollama_volume
.
Để chỉnh sửa ứng dụng FastAPI:
- Sửa đổi
fastapi/app.py
. - Các thay đổi sẽ được tải lại tự động nhờ cờ
--reload
trong Dockerfile của FastAPI.
Để sử dụng mô hình khác:
- Cập nhật trường
model
trongfastapi/app.py
(ví dụ: thayllama3.2:1b
bằng mô hình khác). - Sửa đổi
ollama/pull-llama3.sh
để tải mô hình mong muốn.
- Dịch vụ không khởi động: Kiểm tra nhật ký Docker bằng
docker-compose logs
. - Mô hình không tải được: Đảm bảo container Ollama có kết nối internet để tải mô hình
llama3.2:1b
. - Lỗi API: Xác minh dịch vụ Ollama đang chạy và có thể truy cập tại
http://ollama:11434
.
Hãy thoải mái gửi vấn đề hoặc yêu cầu kéo để cải thiện dự án này. Vui lòng tuân theo quy trình làm việc tiêu chuẩn của GitHub khi đóng góp.
Dự án này được cấp phép theo Giấy phép MIT. Xem tệp LICENSE để biết chi tiết.