jaothan commited on
Commit
8d6c4b0
·
verified ·
1 Parent(s): b8b6840

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +45 -0
app.py ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from fastapi import FastAPI
2
+ from pydantic import BaseModel
3
+ import torch
4
+ from transformers import AutoTokenizer, AutoModel
5
+ import uvicorn
6
+ import gradio as gr
7
+
8
+ # Initialize FastAPI app
9
+ app = FastAPI()
10
+
11
+ # Load pre-trained model and tokenizer
12
+ model_name = "bert-base-uncased" # You can change this to another model
13
+
14
+ try:
15
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
16
+ model = AutoModel.from_pretrained(model_name)
17
+ except Exception as e:
18
+ print(f"Error loading model: {e}")
19
+
20
+ class TextRequest(BaseModel):
21
+ text: str
22
+
23
+ # Function to generate embeddings
24
+ def get_embeddings(text: str):
25
+ inputs = tokenizer(text, return_tensors="pt", padding=True, truncation=True)
26
+ with torch.no_grad():
27
+ outputs = model(**inputs)
28
+ embeddings = outputs.last_hidden_state.mean(dim=1) # Pooling
29
+ return embeddings.numpy().tolist() # Convert to list for API response
30
+
31
+ @app.post("/get-embedding/")
32
+ async def get_embedding(request: TextRequest):
33
+ text = request.text
34
+ embeddings = get_embeddings(text)
35
+ return {"embedding": embeddings}
36
+
37
+ def gradio_interface(text):
38
+ return get_embeddings(text)
39
+
40
+ grn = gr.Interface(fn=gradio_interface, inputs="text", outputs="json", title="Text Embedding Generator")
41
+
42
+ grn.launch(server_name="0.0.0.0", server_port=7860, share=True)
43
+
44
+ if __name__ == "__main__":
45
+ uvicorn.run(app, host="0.0.0.0", port=7860) # Port 7860 for Hugging Face Spaces