koh1018 commited on
Commit
34f160a
ยท
1 Parent(s): ab57525
Files changed (2) hide show
  1. Dockerfile +17 -0
  2. app.py +3 -6
Dockerfile ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # 1. ๊ธฐ๋ฐ˜์ด ๋  ๊ณต์‹ ํŒŒ์ด์ฌ ์ด๋ฏธ์ง€๋ฅผ ์ง€์ •. 3.9 ๋ฒ„์ „ ์ด์ƒ์ด๋ฉด ์•ˆ์ •์ .
2
+ FROM python:3.9
3
+
4
+ # 2. ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•  ์ž‘์—… ํด๋”๋ฅผ ๋งŒ๋“ฆ.
5
+ WORKDIR /code
6
+
7
+ # 3. requirements.txt ํŒŒ์ผ์„ ๋จผ์ € ๋ณต์‚ฌํ•ด์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜.
8
+ # ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ๋ฐ”๋€” ๋•Œ๋งˆ๋‹ค ๋งค๋ฒˆ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ƒˆ๋กœ ์„ค์น˜ํ•˜๋Š” ๋น„ํšจ์œจ์„ ๋ง‰์„ ์ˆ˜ ์žˆ์Œ.
9
+ COPY ./requirements.txt /code/requirements.txt
10
+ RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
11
+
12
+ # 4. ํ˜„์žฌ ํด๋”์˜ ๋ชจ๋“  ํŒŒ์ผ(app.py ๋“ฑ)์„ ์ž‘์—… ํด๋”๋กœ ๋ณต์‚ฌ.
13
+ COPY . .
14
+
15
+ # 5. ๋ชจ๋“  ์ค€๋น„๊ฐ€ ๋๋‚˜๋ฉด, ์ด ๋ช…๋ น์–ด๋กœ ์„œ๋ฒ„๋ฅผ ์‹คํ–‰.
16
+ # ํŒŒ์ผ ์ด๋ฆ„์ด app.py ์ด๋ฏ€๋กœ 'app:app'์„ ์‚ฌ์šฉ.
17
+ CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]
app.py CHANGED
@@ -1,5 +1,3 @@
1
- # app.py
2
-
3
  import torch
4
  from fastapi import FastAPI
5
  from pydantic import BaseModel
@@ -9,8 +7,7 @@ import uvicorn
9
  # 1. FastAPI ์•ฑ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ
10
  app = FastAPI()
11
 
12
- # 2. AI ๋ชจ๋ธ๊ณผ ํ† ํฌ๋‚˜์ด์ €๋ฅผ ์•ฑ ์‹œ์ž‘ ์‹œ ํ•œ๋ฒˆ๋งŒ ๋กœ๋”ฉ (๋งค์šฐ ์ค‘์š”!)
13
- # ์š”์ฒญ์ด ์˜ฌ ๋•Œ๋งˆ๋‹ค ๋กœ๋”ฉํ•˜๋ฉด ์„œ๋ฒ„๊ฐ€ ํ„ฐ์ ธ๋ฒ„๋ฆด ๊ฑฐ์•ผ.
14
  MODEL_ID = "Qwen/Qwen1.5-1.8B-Chat"
15
 
16
  # ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์„ ์œ„ํ•ด bfloat16 ์‚ฌ์šฉํ•˜๊ณ , accelerate ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ํ•˜๋“œ์›จ์–ด ์ž๋™ ํ• ๋‹น
@@ -21,7 +18,7 @@ model = AutoModelForCausalLM.from_pretrained(
21
  device_map="auto",
22
  )
23
 
24
- # Transformers ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ pipeline์„ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ”๋“œ๊ฐ€ ๋” ๊ฐ„๊ฒฐํ•ด์ ธ.
25
  pipe = pipeline(
26
  "text-generation",
27
  model=model,
@@ -35,7 +32,7 @@ class TranslationRequest(BaseModel):
35
  target_lang: str # 'english' ๋˜๋Š” 'japanese'
36
 
37
  # 4. API ์—”๋“œํฌ์ธํŠธ(Endpoint) ์ƒ์„ฑ
38
- # "/translate" ๋ผ๋Š” ์ฃผ์†Œ๋กœ POST ์š”์ฒญ์ด ๋“ค์–ด์™”์„ ๋•Œ ์ด ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋ผ.
39
  @app.post("/translate")
40
  async def translate(request: TranslationRequest):
41
  korean_text = request.text
 
 
 
1
  import torch
2
  from fastapi import FastAPI
3
  from pydantic import BaseModel
 
7
  # 1. FastAPI ์•ฑ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ
8
  app = FastAPI()
9
 
10
+ # 2. AI ๋ชจ๋ธ๊ณผ ํ† ํฌ๋‚˜์ด์ €๋ฅผ ์•ฑ ์‹œ์ž‘ ์‹œ ํ•œ๋ฒˆ๋งŒ ๋กœ๋”ฉ (๋งค์šฐ ์ค‘์š”)
 
11
  MODEL_ID = "Qwen/Qwen1.5-1.8B-Chat"
12
 
13
  # ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์„ ์œ„ํ•ด bfloat16 ์‚ฌ์šฉํ•˜๊ณ , accelerate ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ํ•˜๋“œ์›จ์–ด ์ž๋™ ํ• ๋‹น
 
18
  device_map="auto",
19
  )
20
 
21
+ # Transformers ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ pipeline์„ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ”๋“œ๊ฐ€ ๋” ๊ฐ„๊ฒฐํ•ด์ง
22
  pipe = pipeline(
23
  "text-generation",
24
  model=model,
 
32
  target_lang: str # 'english' ๋˜๋Š” 'japanese'
33
 
34
  # 4. API ์—”๋“œํฌ์ธํŠธ(Endpoint) ์ƒ์„ฑ
35
+ # "/translate" ๋ผ๋Š” ์ฃผ์†Œ๋กœ POST ์š”์ฒญ์ด ๋“ค์–ด์™”์„ ๋•Œ ์ด ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋จ.
36
  @app.post("/translate")
37
  async def translate(request: TranslationRequest):
38
  korean_text = request.text