moraxgiga commited on
Commit
6666011
·
verified ·
1 Parent(s): 7477dbf

Upload 3 files

Browse files
Files changed (3) hide show
  1. Dockerfile +12 -0
  2. requirements.txt +4 -0
  3. server.py +21 -0
Dockerfile ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ FROM python:3.11
3
+
4
+ WORKDIR /app
5
+
6
+ COPY ./requirements.txt .
7
+
8
+ RUN pip install --no-cache-dir -r requirements.txt
9
+
10
+ COPY . .
11
+
12
+ CMD ["python", "server.py"]
requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ uvloop
2
+ sentence_transformers
3
+ litserve
4
+ --extra-index-url https://download.pytorch.org/whl/cpu
server.py ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from sentence_transformers import SentenceTransformer
2
+ import litserve as ls
3
+
4
+ class EmbeddingAPI(ls.LitAPI):
5
+ def setup(self, device):
6
+ self.instruction = "Represent this sentence for searching relevant passages: "
7
+ self.model = SentenceTransformer('BAAI/bge-large-en-v1.5', device=device)
8
+
9
+ def decode_request(self, request):
10
+ return request["input"]
11
+
12
+ def predict(self, query):
13
+ return self.model.encode([self.instruction + query], normalize_embeddings=True)
14
+
15
+ def encode_response(self, output):
16
+ return {"embedding": output[0].tolist()}
17
+
18
+ if __name__ == "__main__":
19
+ api = EmbeddingAPI()
20
+ server = ls.LitServer(api, devices="cpu")
21
+ server.run(port=7860)