from urllib import request
from alayaflow.clients.alayamem.http_client import HttpAlayaMemClient


class RetrieveComponent:
    def __init__(self, client: HttpAlayaMemClient):
        self.client = client
    
    def __call__(self, query: str, collection_name: str, limit: int = 3) -> list[str]:
        # result = self.client.vdb_query([query], limit, collection_name)
        # return result.get('documents', [[]])[0] if result.get('documents') else []
        docs: list[str] = []

        # -------- 基础个人信息 --------
        if "姓名" in query:
            docs.extend([
                "用户姓名是张三。",
                "张三，男，1989年出生。",
            ])

        if "性别" in query:
            docs.append("张三，男，工程师。")

        if "年龄" in query:
            docs.append("张三，1989年出生，今年34岁。")

        # -------- 联系方式 --------
        if "电话" in query:
            docs.extend([
                "联系电话：15643431212。",
                "手机号为15643431212，可随时联系。",
            ])

        if "邮箱" in query or "Email" in query:
            docs.extend([
                "电子邮箱：273230101@qq.com。",
                "邮箱地址为 27223221@qq.com。",
            ])

        # -------- 工作单位 / 职务 --------
        if "工作单位" in query or "公司" in query:
            docs.extend([
                "现就职于 Google 中国。",
                "工作单位为 Google。",
            ])

        if "职务" in query or "职位" in query:
            docs.append("现任高级软件工程师。")

        # -------- 教育背景 --------
        if "学历" in query or "教育" in query:
            docs.extend([
                "2016年本科毕业于清华大学计算机科学与技术专业。",
                "2020年博士毕业于北京大学。",
            ])

        # -------- 工作 / 学习经历 --------
        if "学习工作经历" in query or "经历" in query:
            docs.extend([
                "2010.09-2014.07 就读于清华大学计算机科学与技术专业。",
                "2014.07-2016.08 在百度公司担任软件开发工程师。",
                "2016.09 至今在 Google 担任高级软件工程师。",
            ])

        # -------- 路径/父字段增强（模拟更真实检索）--------
        if "个人信息" in query and not docs:
            docs.append("张三，男，1989年出生，工程师，现居北京。")

        if "联系方式" in query and not docs:
            docs.append("联系方式：电话 15643431212，邮箱 272040101@qq.com。")

        # -------- 兜底：模拟找不到 --------
        if not docs:
            return []

        # limit 截断
        return docs[:limit]