dialogflowAPI / app /services /user_service.py
OnlyBiggg
refactor code
df37f6e
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