Spaces:
Sleeping
Sleeping
| from fastapi import FastAPI | |
| from transformers import AutoTokenizer, AutoModel | |
| import torch | |
| # เปลี่ยน cache directory เป็น /tmp | |
| MODEL_NAME = "sentence-transformers/all-MiniLM-L6-v2" | |
| tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME, cache_dir="/tmp") | |
| model = AutoModel.from_pretrained(MODEL_NAME, cache_dir="/tmp") | |
| app = FastAPI() | |
| def get_embedding(text): | |
| inputs = tokenizer(text, return_tensors="pt", padding=True, truncation=True) | |
| with torch.no_grad(): | |
| outputs = model(**inputs) | |
| embedding = outputs.last_hidden_state.mean(dim=1) | |
| return embedding.squeeze().tolist() | |
| async def embed_text(data: dict): | |
| text = data.get("text", "") | |
| if not text: | |
| return {"error": "No text provided"} | |
| vector = get_embedding(text) | |
| return {"text": text, "embedding": vector} | |