ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Day4 Scrum冲刺博客

Day4 Scrum冲刺博客

Day4 Scrum冲刺博客

1. 团队会议

todo补充会议照片

1)昨天已完成的工作

  • 前端
    • 实现了数据过滤与分页核心逻辑与分页控制功能
    • 完成了表单中的通知公告初稿
  • 后端
    • 实现了大模型api的意图整理和栏目分类
    • 实现了关键词划分算法
    • 实现了数据清洗正则化的加强
  • 测试
    • 检查新加入各代码文件格式清晰性

2)今天计划完成的工作

  • todo

3)工作中遇到的困难

  • todo

2. 项目燃尽图

今日为第四天,已快于理想进度。

3.代码/文档签入记录

  • 今日签入记录

  • 签入记录链接:https://github.com/sevanthea7/GdutInfoHub/commits/main/

  • 相关联issue见commit记录中#后链接内容

  • 接口文档与返回格式文档见 docs/api_doc.mddocs/return_doc.md

4. 运行截图

todo

  • 前端

    • 完成了数据过滤与分页核心逻辑与分页控制功能

      • 相关功能代码

        // 1.数据过滤与分页核心逻辑(<script setup> 部分):
        // 筛选当前分类的通知数据
        const filteredNotices = computed(() => {const currentType = tabList.value[activeTab.value].type;return allNoticeData.value.filter((notice) => notice.type === currentType);
        });// 计算总页数
        const totalPages = computed(() =>Math.ceil(totalItems.value / PAGE_SIZE.value)
        );// 获取当前页数据
        const currentPageData = computed(() => {const startIndex = (currentPage.value - 1) * PAGE_SIZE.value;const endIndex = startIndex + PAGE_SIZE.value;return filteredNotices.value.slice(startIndex, endIndex);
        });// 生成可见页码(处理省略号逻辑)
        const visiblePages = computed(() => {// 页码生成逻辑...
        });// 2.分页控制功能:
        // 切换选项卡时重置页码
        const switchTab = (index) => {activeTab.value = index;currentPage.value = 1;
        };// 上一页/下一页控制
        const prevPage = () => { /* 实现 */ };
        const nextPage = () => { /* 实现 */ };// 跳转指定页码
        const goToPage = (page) => { /* 实现 */ };// 监听总页数变化,自动调整当前页
        watch(totalPages, () => { /* 实现 */ });
        

  • 后端

    • 实现了大模型api的调用,可以对测试数据进行意图解析

      • src\crawler\LLM_api\intention_agent.py

        import json
        from src.crawler.LLM_api.create_api_client import clientPROMPT = '帮我解析这个用户的意图,把他的问题拆分为点,返回结果为JSON格式,形如{"1":"q1", "2": "q2",...}: '
        def get_user_intension(user_text):input_text = PROMPT + user_textresp = client.chat.completions.create(model="doubao-1-5-lite-32k-250115",messages=[{"content":f"{input_text}.","role":"system"}],stream=False,)json_return = resp.choices[0].message.contentprint(json_return)json_obj = json.loads(json_return)obj_lst = list(json_obj.values())print(obj_lst)test_text = "我想知道图书馆明天会举办的活动,以及最近宿舍的热水供应时间"
        get_user_intension(test_text)
        

    • 加强数据清洗正则化,增加关键词提取算法

      • src\crawler\data_clean\reprocess.py

        # 用于保存所有整理后的内容
        all_contents = []# 遍历文件夹里的所有 JSON 文件
        for filename in os.listdir(folder_path):if filename.endswith('_raw.json'):file_path = os.path.join(folder_path, filename)with open(file_path, 'r', encoding='utf-8') as f:try:data = json.load(f)  # 读取文件except json.JSONDecodeError:print(f"文件 {filename} 不是有效 JSON,跳过")continue# 处理 json 文件中的每个字典for item in data:# 正则化处理:# 1. 去掉开头结尾空白# 2. 将连续换行或空白替换为一个空格# 3. 去掉多余空格if 'content' in item:# TEXT = item['content']TEXT = advanced_clean(item['content'])TEXT = re.sub(r'[\s\u2028\u2029]+', ' ', TEXT).strip()# 从处理后的文本中应用 TF-IDF 算法提取关键词keywords = jieba.analyse.extract_tags(sentence=TEXT,topK=6,  # 提取的关键词数量allowPOS=['n', 'nz', 'ns'],  # 允许的关键词的词性withWeight=False,  # 是否附带词语权重withFlag=False,  # 是否附带词语词性)# 为data添加关键词字段item['keywords'] = keywordsif 'title' in data:data['title'] = advanced_clean(data['title'])# 新文件名,把 "_raw" 换成 "_cleaned",如果没有 "_raw" 就直接加 "_cleaned"new_filename = filename.replace('_raw', '_reprocessed')new_file_path = os.path.join(folder_path, new_filename)# 写入新文件with open(new_file_path, 'w', encoding='utf-8') as f:json.dump(data, f, ensure_ascii=False, indent=2)  # 保存为格式化的 JSONprint(f"已生成 {new_filename}")

5. 每人每日总结

  • todo
返回列表