m00913563 commited on
Commit
a9df982
·
0 Parent(s):
Files changed (5) hide show
  1. Dockerfile +15 -0
  2. app.py +29 -0
  3. extractor.py +3 -0
  4. models.py +9 -0
  5. requirements.txt +6 -0
Dockerfile ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.11-slim
2
+ COPY . .
3
+ WORKDIR /
4
+ RUN apt-get update && apt-get install -y ffmpeg
5
+
6
+ RUN ffmpeg -version
7
+ RUN pip install --upgrade pip setuptools wheel
8
+ RUN pip install -r requirements.txt
9
+
10
+ ENV OPENAI_API_KEY=${OPENAI_API_KEY}
11
+
12
+ ENV TRANSFORMERS_CACHE=/transformers_cache
13
+ RUN mkdir -p /transformers_cache && chmod -R 777 /transformers_cache
14
+
15
+ CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]
app.py ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ from fastapi import FastAPI, HTTPException
3
+ from io import BytesIO
4
+ import requests
5
+ from models import InsertedLink, ExtractedText
6
+ import extractor
7
+
8
+ os.environ['TRANSFORMERS_CACHE'] = '/transformers_cache'
9
+ os.environ['HF_HOME'] = '/transformers_cache'
10
+
11
+
12
+ app = FastAPI()
13
+ @app.get("/", response_model=dict[str, str])
14
+ def getall():
15
+ return {"hello":"world"}
16
+
17
+
18
+ @app.post("/speech2text", response_model=ExtractedText)
19
+ async def extract(link: InsertedLink):
20
+ response = requests.get(link.link)
21
+ if response.status_code == 200:
22
+ # Open the PDF from bytes in memory
23
+ mp3 = (BytesIO(response.content))
24
+ else:
25
+ #return error, make 500 because file server error
26
+ raise HTTPException(status_code=response.status_code, detail="File server error")
27
+
28
+ dictresult = extractor.speech2text(mp3)
29
+ return dictresult
extractor.py ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+
2
+ def speech2ytext(mp3):
3
+ return {"text": "text"}
models.py ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ from pydantic import BaseModel, Field
2
+ from typing import List, Optional, Any
3
+
4
+
5
+ class InsertedLink(BaseModel):
6
+ link: str
7
+
8
+ class ExtractedText(BaseModel):
9
+ text: str
requirements.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ fastapi
2
+ transformers
3
+ uvicorn[standard]
4
+ openai-whisper
5
+ setuptools-rust
6
+ pydantic