From d0d19b2049024d24d114cd0fe15356d79383575b Mon Sep 17 00:00:00 2001 From: mdorstkar Date: Mon, 25 Aug 2025 19:54:35 +0330 Subject: [PATCH] Adding Fast API to P3 --- p3_words_embedder.py | 37 ++++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/p3_words_embedder.py b/p3_words_embedder.py index a5389d5..7e70a9c 100644 --- a/p3_words_embedder.py +++ b/p3_words_embedder.py @@ -2,6 +2,7 @@ ایجاد بردار جملات - امبدینگ """ from sentence_transformers import SentenceTransformer +from fastapi import FastAPI import json import datetime import numpy as np @@ -30,18 +31,40 @@ def do_word_embedder(sections): return sections -def single_section_embedder(sentence): - """ - این متد، متن ورودی را تبدیل به بردار متناظر آن می کند - **Args: + + + +# Create a FastAPI app instance +# یک نمونه از برنامه FastAPI ایجاد می‌کنیم +app = FastAPI() + +# Your method, wrapped in an API endpoint +# متد شما که در یک نقطه پایانی API قرار گرفته +@app.post("/single_section_embedder/") +def single_section_embedder(sentence: str): + """ + این نقطه پایانی، متن ورودی را تبدیل به بردار متناظر آن می کند. + + **Args:** sentence (str): متن یک سکشن - **Returns: - embeddings: لیست بردار متناظر با متن ورودی + **Returns:** + list: لیست بردار متناظر با متن ورودی """ + # Use the loaded model to encode the sentence + # برای تبدیل متن به بردار از مدلی که در بالا لود شده استفاده می‌کنیم embeddings = model.encode(sentence) - return embeddings + + # The output of model.encode is a NumPy array, which needs to be converted + # to a list to be returned as a JSON response. + # خروجی model.encode یک آرایه NumPy هست که باید به لیست تبدیل بشه + # تا به عنوان یک پاسخ JSON برگردانده بشه. + return {"embeddings": embeddings.tolist()} + + + + def cosine_similarity(vec1, vec2): dot_product = np.dot(vec1, vec2) # ضرب داخلی دو بردار