File size: 1,162 Bytes
a56b4bc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0abf1cd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a56b4bc
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
from fastapi import FastAPI, Request
from pydantic import BaseModel
from sentence_transformers import SentenceTransformer
from typing import List
import uvicorn

app = FastAPI()

# Load model once on startup
model = SentenceTransformer('lighteternal/stsb-xlm-r-greek-transfer')

# Request schema
class EmbeddingRequest(BaseModel):
    texts: List[str]

# Health check endpoint
@app.get("/")
async def root():
    return {"message": "Embedding API is running."}

# Embedding endpoint
@app.post("/get_sim_text")
def get_sim_text_endpoint(request: TextPairRequest):
    try:
        # Embed the claim text
        claim_embedding = similarity_model.model.encode(
            request.claim,
            convert_to_tensor=True,
            show_progress_bar=False
        )
        # Call get_sim_text with defaults (min_threshold=0.4, chunk_size=1500)
        results = similarity_model.get_sim_text(
            request.text,
            claim_embedding
        )
        return {"result": results}

    except Exception as e:
        return {"error": str(e)}

# Optional for local testing
if __name__ == "__main__":
    uvicorn.run(app, host="0.0.0.0", port=7860)