Skip to content

Bubblevan/ZJU_TimeBox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ZJU_TIMEBOX

Project Logo

概述

ZJU_TIMEBOX 是一个创新的平台,旨在动态追踪和展示浙江大学(ZJU)相关的重要活动信息,包括出国交流项目、社会实践活动、讲座、选拔事项等。通过用户友好的日程表界面,ZJU_TIMEBOX 不仅提高了信息获取的效率,还通过智能问答系统为用户提供个性化的帮助和支持,确保每位用户都能迅速找到所需的信息。

ZJU_TIMEBOX

项目简介

在现代校园生活中,信息的及时获取和高效管理至关重要。ZJU_TIMEBOX 通过整合多个信息源,自动抓取并展示ZJU各类重要活动信息,解决了信息分散、更新不及时的问题。用户无需手动搜索各类活动信息,通过直观的日历界面和智能问答系统即可快速获取相关信息,极大提升了学生和教职工的日常生活和工作效率。

主要功能

  • 动态追踪:实时抓取并更新ZJU各大官方网站上的重要活动信息。
  • 日历界面:通过不同颜色的色块直观展示各类活动,帮助用户快速识别和浏览。
  • 智能问答系统:利用向量数据库和LLM,为用户提供基于内容的智能化问答服务。

技术栈

ZJU_TIMEBOX 采用了多种先进的技术栈,确保系统的高效性、可扩展性和用户体验:

  • 前端:Vue.js
  • 爬虫:Scrapy
  • 后端:FastAPI
  • LLM:Coze_bot / Jina-embeddings-v3
  • 向量数据库:Milvus

功能模块

日历界面

ZJU_TIMEBOX 的日历界面采用 Vue.js 构建,通过不同颜色的色块直观展示各类活动信息。用户可以轻松浏览即将举行的活动,并通过点击色块获取详细信息。不同颜色代表不同类型的活动,如出国交流、社会实践、讲座等,帮助用户快速定位感兴趣的活动。

智能问答系统(Agent)

智能问答系统集成了 Milvus 向量数据库和 Coze_bot LLM。系统通过以下流程运作:

  1. 用户提问:用户在界面输入问题。
  2. 向量检索:系统将问题转换为 Embedding 向量,并在 Milvus 中检索最相似的内容片段(chunk)。
  3. 生成 Prompt:将检索到的内容片段与用户问题结合,形成完整的 Prompt。
  4. 调用 LLM:将 Prompt 发送至 Coze_bot,生成智能化回答。
  5. 返回答案:系统将生成的回答展示给用户。

技术实现

ZJU_TIMEBOX 系统的技术核心在于基于 Milvus 向量数据库和大模型的智能问答系统,实现技术包括数据抓取、嵌入向量生成、向量存储和问答系统的集成系统。通过数据的爬取、向量化、检索和生成回答的方式,使得系统能够对用户的查询提供智能化支持。数据从 ZJU 官方网站抓取后通过 Milvus 存储和检索,从而实现高效的活动信息查询。

本项目使用了 Scrapy,一个开源的 Python 爬虫框架,用于自动化地抓取 ZJU 各大官方网站的活动信息,并将结果存储为 JSON 文件。Scrapy 提供了一种高效、可扩展的方式来抓取和解析网页内容,适用于频繁更新的信息获取需求。抓取的 JSON 数据随后通过 Python 脚本加载到 SQLite 数据库中,以确保数据持久化存储和结构化管理。在此基础上,系统对文本数据进行切片,将内容分割成不超过 2048 个 token 的片段,并保持 title 和 date 的完整,确保每段内容符合下游处理模型的输入要求。

文本片段进一步通过 Jina-embeddings-v3 模型生成嵌入向量并归一化处理。嵌入向量是一种将高维文本数据转换为低维向量的表示方式,使得机器可以高效地对文本语义相似性进行计算。随后,我们使用 Milvus 向量数据库存储活动信息的嵌入向量,方便后续的快速检索。向量数据库是一类专门设计用于存储和管理嵌入向量的数据库,支持基于向量相似性的查询。与传统关系型数据库不同,Milvus 作为一个分布式、开源的向量数据库,支持高效的 ANN(近似最近邻)检索,能够在极短时间内找到与给定向量最相似的数据。因此,它特别适合大规模数据下的相似性搜索任务,尤其是在需要处理大量文本或图像数据的 NLP 和计算机视觉任务中广泛使用。利用 pymilvus 库将生成的嵌入向量及元数据(title、date、link、content)插入到 Milvus 集合中,并配置了适当的索引类型(如 IVF_FLAT),以优化查询效率。IVF_FLAT 是一种倒排文件索引结构,能在大规模数据下显著加快相似性搜索速度。

当用户提交问题后,系统首先将问题文本通过 Jina-embeddings-v3 模型生成对应的嵌入向量,并在 Milvus 数据库中进行近似邻域(ANN)搜索以查找最相似的内容片段。Milvus 通过使用高效的 ANN 算法,实现了对向量数据库中相似度的快速查询,返回与问题内容最相似的片段。这些片段会与用户问题结合,用于构建输入大语言模型的 Prompt。

智能问答系统通过 Coze 平台实现,利用其 API 提供的大模型服务。Coze 是字节跳动推出的 AI Bot 平台,具备强大的插件支持和便捷的模型集成能力。Coze 可以轻松添加插件扩展能力,使大模型在不借助复杂编排逻辑的情况下获取外部数据,提升系统的易用性。ZJU_TIMEBOX 系统中通过 Coze 的 API 实现用户问题到回答的生成:当用户提交问题后,系统将问题嵌入向量通过 Milvus 检索到的相似内容片段构建 Prompt,将其通过 Coze 平台传递给 LLM(大语言模型),生成最终的回答并返回用户。这一过程不仅借助向量检索实现了知识的存储与检索,还结合 Coze 提供的自然语言生成能力,大大提升了回答的准确性与信息覆盖面。

总体而言,ZJU_TIMEBOX 的问答流程包括用户提问 -> 嵌入向量生成 -> Milvus 中的相似向量检索 -> Prompt 构建 -> Coze 生成回答 -> 返回用户。系统充分利用了嵌入模型、向量数据库和大语言模型的集成优势,实现了高效的智能问答服务。这种架构既能通过向量数据库确保对知识库的快速检索,又可通过 Coze 及其插件机制提供拓展数据的支持,满足实时性和准确性的需求。

创新性

ZJU_TIMEBOX 在校园管理和信息服务方面提出了创新性的解决方案:

  • 智能化信息检索:通过向量数据库和 LLM 的结合,实现基于语义的智能问答,突破传统关键词匹配的局限。
  • 多语言支持:利用 Jina-embeddings-v3 模型的多语言能力,支持不同语言用户的需求,提升系统的普适性。
  • 实时数据更新:通过 Scrapy 爬虫和 Milvus 向量数据库的实时更新机制,确保用户获取最新的活动信息。
  • 用户友好界面:通过 Vue.js 构建直观的日历界面,使用户能够快速浏览和定位感兴趣的活动。

实用性与需求契合度

ZJU_TIMEBOX 精准解决了智慧校园中的信息获取和管理需求:

  • 提升信息获取效率:用户无需手动搜索各类活动信息,通过日历界面和智能问答系统即可快速获取所需信息。
  • 增强用户体验:直观的日历界面和智能化的问答系统提供了友好的用户体验,满足学生和教职工的多样化需求。
  • 应用场景广泛:适用于各种校园活动信息的展示和管理,具有广泛的应用潜力和推广价值。

可推广性

ZJU_TIMEBOX 具备强大的推广潜力和可扩展性:

  • 多校园适用:该系统不仅适用于浙江大学,还可以推广到其他高校,帮助更多学生和教职工高效获取活动信息。
  • 技术架构可扩展:基于 Milvus 向量数据库和 LLM 的技术架构,系统易于扩展和升级,能够适应不同规模和需求的应用场景。
  • 多功能扩展:未来可以集成更多功能,如移动端 APP 开发、增加专业学院办公网/WechatSogou的信息来源和反馈机制,进一步提升系统的智能化水平。

安装与运行

环境准备

确保您已经安装了以下必要的工具和库:

  • Docker:用于部署 Milvus 向量数据库。
  • Python 3.8+:运行后端和问答脚本。
  • 必要的 Python 库

ZJU_TIMEBOX

启动前端

cd dayspan-frontend
npm install
npm run serve

启动后端

cd LLM_Backend/milvus
docker-compose up -d 
cd LLM_Backend/server
python main.py

下面可作为单独模块调试使用,但项目的完整流程通过上述两个即可启动。

启动爬虫

cd LLM_Backend/spider1
python main.py

将爬取到的本地json经coze_bot精简后插入数据库notices.db

cd LLM_Backend/utils
python llm_api.py

启动milvus向量数据库

cd LLM_Backend/milvus
docker-compose up -d 
python local_qa.py

测试问答系统

在脚本运行后,通过命令行输入问题,查看系统回答。

请问玉泉校区有哪些地方可以自习?
我是蓝田学园的学生,我应该如何准备才能获得优秀社会实践团队的荣誉?
浙江大学近期和国外的哪些大学有对外交流合作?

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published