检索器

知识库构建

信息来源

构建方向

  • 知名人物、校友

  • 校园生活(吃喝玩乐)

  • 合作交流

  • 校园文化

构建结果

以下是数据库中的部分内容。

query
document
metadata

人文社会科学知名人物鲁迅

鲁迅,现代中国文学的重要人物,被誉为现代汉语散文的鼻祖。1927 年鲁迅从厦门大学来到中山大学任教,担任文学系主任兼教务主任。在中山大学任教仅 4 个多月,1927 年 4 月即辞职,当年 9 月底离开广州到上海。鲁迅在广州的时间虽短,但这 8 个月在他的一生中很重要,在这期间他编订了《朝花夕拾》、《野草》两本名作

人文社会科学,知名人物

校园生活的音乐会

中大百年校庆首场音乐会:2024 年是中山大学世纪华诞。3 月 31 日晚,3000 余名师生校友代表齐聚中山纪念堂,以音乐之声,悠扬之曲为母校献礼,共叙中山情,同绘中大梦。本次音乐会由中山大学校友会、中山大学教育发展基金会、中山大学百年校庆办公室、中山大学党委宣传部、共青团中山大学委员会共同主办。中山大学部分历届校领导、两院院士、校友代表、在校师生代表,以及中山大学艺术基金的发起人、项目成员和捐赠人来到现场,共赴这场音乐盛宴。

校园生活,音乐会

法国总统马克龙来访交流

2023 年 4 月 7 日 14 时 37 分许,法国总统马克龙先生到达中山大学怀士堂;16 时 7 分许,离开中山大学南校园体育馆。马克龙对中山大学的学科建设非常感兴趣,多次主动问及中山大学有哪些学科。高松校长向其介绍,中山大学传统优势学科文理医,现在又发展了新工科、新医科,文理医工农艺综合发展。马克龙很赞赏这种做法。

合作交流,访问学者

中山大学博物馆

2011 年,广东省政府批准中山大学博物馆项目,中山大学博物馆筹建项目正式启动;2014 年 4 月,陈建华到中山大学南校区调研,对博物馆的规划事宜作出重要指示;5 月,学校决定将中山大学博物馆定名为中山大学文化历史信息中心,并按照博物馆、校史馆、档案馆及岭南非物质文化遗产主题馆四馆合一的功能设计。

校园设施

实现类型

1. ElasticSearch

TODO: ...

2. Vector Similarity

TODO: ...

3. fastText

介绍

本实现采用 fastText 技术,通过预训练的 cc.zh.300.bin 模型来构建高效的文本向量表示。结合外部知识库和向量数据库(如 chromadb),实现文本相似度检索和问题回答。

值得注意的是,未优化的 fastText 效果远不如未优化的 ElasticSearch,因此也没有再接入 chatGPT 做 prompt 提示工程。强行解释,为项目省钱了。

处理逻辑

1. 加载预训练模型

加载预训练的 cc.zh.300.bin 模型:

class FTSearcher(SearcherInterface):
    def __init__(self):
        self.model_path = "cc.zh.300.bin"
        self.model = load_facebook_vectors(self.model_path)

2. 生成向量表示

对输入文本通过 fastText 生成向量表示:

embeddings = [self.model.get_vector(text).tolist() for text in queries]

3. 存储向量到 chromadb

将知识库中的每条数据生成向量后,存入 chromadb:

for _, value in data.items():
    documents.append(value["document"])
    queries.append(value["query"])
    metadata_str = value["metadata"]
    metadata_dict = {key: True for key in metadata_str.split(",")}
    metadatas.append(metadata_dict)

self.collection.add(
    embeddings=embeddings,
    documents=documents,
    metadatas=metadatas,
    ids=[str(i) for i in range(len(documents))],
)

4. 查询处理

对用户输入的问题进行处理,生成向量表示:

query_embedding = self.model.get_vector(query).tolist()

5. 检索最相近的答案

将问题的向量表示输入 chromadb,检索最相近的答案:

results = self.collection.query(
    query_embeddings=[query_embedding], n_results=size
)

检索示例

上表中检索一的效果不尽人意,query 和 result 完全是牛头不对马嘴。

而检索二的效果较好,是因为:该实现方式将 query(如:中大的校长是谁?)向量化后存入 chromadb 中,当检索的问题与 chromadb 中已存在的 query 相近时,效果较好,仅此而已。

number
query
result

检索一

中大的校长是谁?

岭南大学是美国友好人士在广州创办的一所私立大学,1927 年收归中国人自办。岭南大学建校之初,校址几经变迁。先从沙基金利埠到四牌楼福音堂、花地萃香园,1900 年又迁往澳门,1904 年,将永久校址设在距广州城东南十里的康乐村。此后,经历了战火洗礼的岭南大学,又于 1937 年南迁至香港,1942 年北上至韶关。1945 年抗日战争胜利后,岭南大学得以重返康乐。

检索二

中山医科大学和中山大学有什么关系?

中山医科大学和中山大学有什么关系?,原中山医科大学、岭南大学医学院。1835 年 11 月,美国公理会传教士伯驾( Peter Parker )在广州十三行开设眼科医局,并于 1859 年改称“博济( Pok Tsai )医局”。1866 年,博济医局搬迁并正式命名为“博济医院”。1879 年,博济医学堂改名为博济医院附设南华学堂。1886 年,孙中山以“逸仙”之名进南华学堂学医,并从事革命活动。1904 年改称南华医学校,1930 年改称岭南大学医学院,1936 年又称孙逸仙博士纪念医学院,并合并了私立夏葛医学院。1953 年,全国高等学校院系调整,国立中山大学医学院与岭南大学医学院合并组立华南医学院。1954 年,公立广东光华医学院与华南医学院合并,成立新的华南医学院,是年开始招收外国留学生。1956 年,华南医学院改名为广州医学院。1957 年改名为中山医学院,1961 年被定为卫生部属全国重点高等医科院校。1981 年,成为首批有权授予博士、硕士学位的单位之一。1985 年,经国家卫生部批准,中山医学院改称中山医科大学。1993 年开始,教育部、卫生部和广东省人民政府共建中山医科大学。2000 年,经教育部、国家计委、财政部报国务院同意,中山医科大学由卫生部主管调整为广东省主管。

最后更新于