Spaces:
Sleeping
Sleeping
| # app/api/v1/metrics.py | |
| from fastapi import APIRouter, HTTPException, Query, Depends, Request | |
| from typing import List | |
| from sklearn.metrics import accuracy_score | |
| from nltk.translate.bleu_score import sentence_bleu | |
| from sentence_transformers import SentenceTransformer, util | |
| from app.auth.auth import verify_token | |
| import os | |
| os.environ["HF_HOME"] = "/tmp/huggingface" | |
| os.environ["TRANSFORMERS_CACHE"] = "/tmp/hf_cache" | |
| os.environ["HF_HUB_CACHE"] = "/tmp/hf_cache" | |
| from sentence_transformers import SentenceTransformer | |
| model = SentenceTransformer("clip-ViT-B-32") | |
| # OR multilingual version | |
| # model = SentenceTransformer("sentence-transformers/clip-ViT-B-32-multilingual-v1")32") | |
| router = APIRouter() | |
| def compute_bleu(reference: str, candidate: str): | |
| print("Metrics router loaded!") | |
| ref_tokens = [reference.split()] | |
| cand_tokens = candidate.split() | |
| score = sentence_bleu(ref_tokens, cand_tokens) | |
| return {"metric": "BLEU", "score": score} | |
| def compute_clip_score(reference: str, candidate: str): | |
| ref_emb = model.encode(reference, convert_to_tensor=True) | |
| cand_emb = model.encode(candidate, convert_to_tensor=True) | |
| score = util.cos_sim(ref_emb, cand_emb).item() | |
| return {"metric": "CLIPScore", "score": score} | |