Spaces:
Sleeping
Sleeping
| 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 | |