Spaces:
Sleeping
Sleeping
File size: 1,496 Bytes
df37f6e |
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 45 46 47 |
from functools import lru_cache
from fastapi import Depends, Request
from typing_extensions import Annotated
from app.dto.user import UserDTO
from app.ner.services.ner import NER, get_ner_model
class UserService:
def __init__(self, model: NER):
self.model = model
async def get_user(self, user_id: str = None) -> UserDTO:
"""
Lấy thông tin người dùng từ cơ sở dữ liệu dựa trên user_id.
Args:
user_id (str): ID của người dùng.
Returns:
dict: Thông tin người dùng nếu tìm thấy, ngược lại trả về None.
"""
# if not user_id:
# return None
# user = await FutaClinet.find_user_by_id(user_id)
# if user:
# return user
# return None
user = UserDTO(
user_name="Đại", phone_number="0987654321", email="vdai234@gmail.com"
)
return user
async def extract_user_name(self, text: str) -> str:
"""
Trích xuất tên người dùng từ văn bản sử dụng mô hình NER.
Args:
text (str): Văn bản đầu vào.
Returns:
str: Tên người dùng được trích xuất.
"""
if not self.model:
raise ValueError("Model not loaded. Please call load_model() first.")
pred = await self.model.predict(text, entity_tag="PERSON")
if pred:
return pred[0]
return None
|