Spaces:
Sleeping
Sleeping
| from fastapi import FastAPI | |
| from transformers import AutoTokenizer, AutoModel | |
| import torch | |
| # โหลดโมเดล Sentence-Transformer | |
| MODEL_NAME = "sentence-transformers/all-MiniLM-L6-v2" | |
| tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME) | |
| model = AutoModel.from_pretrained(MODEL_NAME) | |
| # สร้าง API | |
| 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) # ใช้ค่าเฉลี่ยของ hidden states | |
| return embedding.squeeze().tolist() | |
| # API Endpoint | |
| 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} | |