ChatGPT | 用GPT實(shí)現(xiàn)高考志愿系統(tǒng)
高考出分將近,看到各種高考志愿一對(duì)一輔導(dǎo),其實(shí)是利用信息差掙錢,但是隨著AI的技術(shù)快速發(fā)展,數(shù)據(jù)平權(quán)的時(shí)代已經(jīng)到來,信息差不是特定人員的優(yōu)勢。為此,我和小伙伴們利用ChatGPT技術(shù),開發(fā)了高考志愿智能填報(bào)系統(tǒng)。
圖片
志愿系統(tǒng)
體驗(yàn)地址:http://gaokao.su007.club/
邀請(qǐng)碼:6mRtf GyJwco rhGXoK qDGln8 OPC7Ys
1、架構(gòu)設(shè)計(jì)
架構(gòu)設(shè)計(jì)
- 構(gòu)建大語言模型的LLM,通過爬蟲抓取數(shù)據(jù),進(jìn)行清洗
- 數(shù)據(jù)清洗后,按照格式入庫到sqlite中
- 將sqlite按照格式,提供給LLM繼續(xù)微調(diào)
- 微調(diào)后,將模型部署提供API Server對(duì)外訪問
2、數(shù)據(jù)采集
數(shù)據(jù)采集首先用到的想到是爬蟲,但是卻面臨一個(gè)問題,數(shù)據(jù)的異構(gòu)性,針對(duì)每個(gè)頁面都去寫爬蟲解析是非常麻煩,而且隨著頁面變動(dòng),可能原來解析方式又需要重新修改,為此結(jié)合GPT,出現(xiàn)了很多用GPT解析和整理網(wǎng)頁數(shù)據(jù)的開源項(xiàng)目,其中:ScrapeGraphAI比較好用。
開源地址:https://github.com/VinciGit00/Scrapegraph-ai
ScrapeGraphAI
使用樣例:
from scrapegraphai.graphs import SmartScraperGraph
graph_config = {
"llm": {
"model": "ollama/mistral",
"temperature": 0,
"format": "json", # Ollama needs the format to be specified explicitly
"base_url": "http://localhost:11434", # set Ollama URL
},
"embeddings": {
"model": "ollama/nomic-embed-text",
"base_url": "http://localhost:11434", # set Ollama URL
},
"verbose": True,
}
smart_scraper_graph = SmartScraperGraph(
prompt="整理學(xué)校信息,包括學(xué)校名稱、地址 ...",
source="https://www.gaokao.cn/school/search",
cnotallow=graph_config
)
result = smart_scraper_graph.run()
print(result)
- 這里的輸出結(jié)果由于敏感,所以就不輸出;
- 由于高考數(shù)據(jù)在互聯(lián)網(wǎng)上比較多,所以可以搜一些相關(guān)的網(wǎng)頁都整理到AI Scraper中,自動(dòng)分析數(shù)據(jù);
- 如果有興趣的小伙伴可以嘗試一下,不過爬蟲可能被限制,然后需要遵守法律法規(guī)進(jìn)行數(shù)據(jù)的爬??;
3、模型微調(diào)
數(shù)據(jù)整理好以后,就可以進(jìn)行模型微調(diào),解決AI志愿的推薦問題,當(dāng)然這里又有另一種方式,就是通過few-shot Prompt,通過上下文進(jìn)行對(duì)話,這樣也可以達(dá)到類似的效果,缺點(diǎn)就是上下文不能太長。
這里微調(diào)就使用:LLamaFactory+LLama3,使用界面就可以進(jìn)行:
LLamaFactory
整理的數(shù)據(jù)集如下:
[
{
"conversations": [
{
"from": "human",
"value": "2024年高考600分,希望選北京的學(xué)校,該怎么選?"
},
{
"from": "gpt",
"value": "根據(jù)北京2023年xxx錄取分?jǐn)?shù)線:{爬取的分?jǐn)?shù)線數(shù)據(jù)和專業(yè)數(shù)據(jù)},2022年xxx錄取分?jǐn)?shù)線:{爬取的分?jǐn)?shù)線數(shù)據(jù)和專業(yè)數(shù)據(jù)},2021年xxx錄取分?jǐn)?shù)線:{爬取的分?jǐn)?shù)線數(shù)據(jù)和專業(yè)數(shù)據(jù)},推薦...,原因是..."
},
...
]
}
]
大約整理了10w條數(shù)據(jù),經(jīng)過一些調(diào)整參數(shù)最后微調(diào)完成以后,就可以部署到API Server中。
6、功能上線
圖片
圖片