Ezhil commited on
Commit
c11e0d4
·
0 Parent(s):

Initial commit

Browse files
Files changed (6) hide show
  1. .gitignore +1 -0
  2. Dockerfile +5 -0
  3. README.md +8 -0
  4. __pycache__/main.cpython-310.pyc +0 -0
  5. main.py +32 -0
  6. requirements.txt +6 -0
.gitignore ADDED
@@ -0,0 +1 @@
 
 
1
+ venv/
Dockerfile ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ FROM python:3.9
2
+ WORKDIR /app
3
+ COPY app/ /app/
4
+ RUN pip install -r requirements.txt
5
+ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
README.md ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: Embedding Fastapi
3
+ emoji: 🏆
4
+ colorFrom: pink
5
+ colorTo: yellow
6
+ sdk: docker
7
+ pinned: false
8
+ ---
__pycache__/main.cpython-310.pyc ADDED
Binary file (1.4 kB). View file
 
main.py ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from fastapi import FastAPI
2
+ from pydantic import BaseModel
3
+ from typing import List, Tuple
4
+ import numpy as np
5
+ from sentence_transformers import SentenceTransformer
6
+
7
+ # Load the pre-trained model
8
+ model = SentenceTransformer('Alibaba-NLP/gte-base-en-v1.5', trust_remote_code=True)
9
+
10
+ # Define request model
11
+ class MessageRequest(BaseModel):
12
+ messages: List[str]
13
+
14
+ # Define response model
15
+ class EmbeddingResponse(BaseModel):
16
+ dimensions: int # Only return embedding size
17
+ numeric_values: List[List[float]]
18
+
19
+ # Initialize FastAPI app
20
+ app = FastAPI()
21
+
22
+ @app.get("/")
23
+ def home ():
24
+ return {"Message":"Welcome to homepage, kindly proceed by giving /docs in the URL" }
25
+
26
+ @app.post("/embed", response_model=EmbeddingResponse)
27
+ def embed(request: MessageRequest):
28
+ new_embeddings = model.encode(request.messages, convert_to_tensor=True)
29
+ return EmbeddingResponse(
30
+ dimensions=new_embeddings.shape[1], # Return only the embedding dimension
31
+ numeric_values=new_embeddings.tolist()
32
+ )
requirements.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ fastapi
2
+ uvicorn
3
+ pandas
4
+ scikit-learn
5
+ sentence-transformers
6
+ numpy