vumichien commited on
Commit
0187d9a
·
1 Parent(s): 21ab486
Files changed (3) hide show
  1. Dockerfile +36 -0
  2. main.py +46 -0
  3. requirements.txt +19 -0
Dockerfile ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.9-slim
2
+
3
+ WORKDIR /app
4
+
5
+ # Cài đặt các dependencies cần thiết
6
+ RUN apt-get update && apt-get install -y \
7
+ build-essential \
8
+ git \
9
+ && rm -rf /var/lib/apt/lists/*
10
+
11
+ # Copy requirements từ project hiện tại
12
+ COPY requirements.txt .
13
+
14
+ # Clone repository meisai-check-ai từ Bitbucket sử dụng biến môi trường
15
+ ARG BITBUCKET_APP_PW
16
+ RUN git clone https://vumichien:${BITBUCKET_APP_PW}@bitbucket.org/dtm-partners/meisai-check-ai.git
17
+
18
+ # Cài đặt dependencies
19
+ RUN pip install --no-cache-dir -r requirements.txt
20
+ RUN pip install --no-cache-dir -r meisai-check-ai/requirements.txt
21
+
22
+ # Cài đặt FastAPI và Uvicorn
23
+ RUN pip install --no-cache-dir fastapi uvicorn
24
+
25
+ # Copy code của API vào container
26
+ COPY . .
27
+
28
+ # Thêm đường dẫn meisai-check-ai vào PYTHONPATH
29
+ ENV PYTHONPATH="${PYTHONPATH}:/app/meisai-check-ai"
30
+
31
+ # Expose port
32
+ EXPOSE 7860
33
+
34
+ # Chạy ứng dụng với Uvicorn
35
+ # Lưu ý: Hugging Face Spaces sử dụng port 7860
36
+ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"]
main.py ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import sys
2
+ import os
3
+ import time
4
+ from fastapi import FastAPI
5
+ import uvicorn
6
+ import traceback
7
+
8
+ # Điều chỉnh đường dẫn để import từ thư mục meisai-check-ai
9
+ current_dir = os.path.dirname(os.path.abspath(__file__))
10
+ sys.path.append(os.path.join(current_dir, "meisai-check-ai"))
11
+
12
+ from sentence_transformer_lib.sentence_transformer_helper import (
13
+ SentenceTransformerHelper,
14
+ )
15
+ from data_lib.base_data import BaseData
16
+ from data_lib.input_name_data import InputNameData
17
+
18
+ app = FastAPI()
19
+
20
+
21
+ @app.get("/")
22
+ async def root():
23
+ return {"message": "Hello World"}
24
+
25
+
26
+ @app.get("/health")
27
+ async def health_check():
28
+ return {"status": "ok", "timestamp": time.time()}
29
+
30
+
31
+ @app.get("/test-dependencies")
32
+ async def test_dependencies():
33
+ try:
34
+ # Kiểm tra các dependencies đã được import thành công
35
+ transformer_helper = SentenceTransformerHelper()
36
+ return {"status": "success", "message": "All dependencies loaded successfully"}
37
+ except Exception as e:
38
+ return {
39
+ "status": "error",
40
+ "message": str(e),
41
+ "traceback": traceback.format_exc(),
42
+ }
43
+
44
+
45
+ if __name__ == "__main__":
46
+ uvicorn.run(app, host="0.0.0.0", port=8000)
requirements.txt ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ sentence-transformers
2
+ fugashi
3
+ unidic_lite
4
+ fastapi
5
+ uvicorn
6
+ sortedcontainers
7
+ jaconv
8
+ oauth2client
9
+ gspread
10
+ scikit-learn
11
+ datasets
12
+ unidic-lit
13
+ sortedcontainers
14
+ gspread-dataframe
15
+ oauth2client
16
+ wandb
17
+ scikit-learn
18
+ fastapi
19
+ uvicorn