2024年1月25日,阿里巴巴原技術(shù)副總裁在 Twitter 上稱用不到 500 行 Python 代碼實現(xiàn)了 AI 對話搜索引擎拢锹,并在27日附上了開源地址:https://github.com/leptonai/search_with_lepton鸯屿,截止春節(jié)期間已經(jīng)5.8K的Star程梦。
Lepton Search 具備的特性
1.Built-in support for LLM
Lepton Search 集成了大型語言模型鳄厌,這意味著它能夠利用這些先進的AI技術(shù)來理解和處理復(fù)雜的查詢,為用戶提供更加準(zhǔn)確和深入的答案茫经。
常見的大語言模型:
GPT-3(OpenAI): Generative Pre-trained Transformer 3(GPT-3)是最著名的LLM之一,擁有1750億個參數(shù)萎津。該模型在文本生成卸伞、翻譯和其他任務(wù)中表現(xiàn)出顯著的性能,在全球范圍內(nèi)引起了熱烈的反響姜性,目前OpenAI已經(jīng)迭代到了GPT-4版本瞪慧。
BERT(谷歌):Bidirectional Encoder Representations from Transformers(BERT)是另一個流行的LLM,對NLP研究產(chǎn)生了重大影響部念。該模型使用雙向方法從一個詞的左右兩邊捕捉上下文弃酌,使得各種任務(wù)的性能提高,如情感分析和命名實體識別儡炼。
T5(谷歌): 文本到文本轉(zhuǎn)換器(T5)是一個LLM妓湘,該模型將所有的NLP任務(wù)限定為文本到文本問題,簡化了模型適應(yīng)不同任務(wù)的過程乌询。T5在總結(jié)榜贴、翻譯和問題回答等任務(wù)中表現(xiàn)出強大的性能。
ERNIE 3.0 文心大模型(百度):百度推出的大語言模型ERNIE 3.0首次在百億級和千億級預(yù)訓(xùn)練模型中引入大規(guī)模知識圖譜妹田,提出了海量無監(jiān)督文本與大規(guī)模知識圖譜的平行預(yù)訓(xùn)練方法唬党。
2.Built-in support for search engine
Lepton Searc內(nèi)置了強大的搜索引擎功能,能夠快速檢索互聯(lián)網(wǎng)上的海量信息鬼佣,確保用戶能夠找到最相關(guān)和最新的數(shù)據(jù)驶拱。
3.Customizable pretty UI interface
Lepton Search 提供了一個高度可定制的用戶界面,用戶可以根據(jù)自己的喜好和需求調(diào)整界面布局晶衷、顏色主題和功能模塊蓝纲,打造個性化的搜索體驗。
4.Shareable, cached search results
Lepton Search 允許用戶將搜索結(jié)果進行分享晌纫,無論是通過社交媒體還是其他平臺税迷,都能輕松實現(xiàn)。同時锹漱,它還提供了緩存功能箭养,用戶可以保存搜索結(jié)果,以便日后查閱凌蔬,無需重復(fù)搜索露懒,大大提高了效率闯冷。
源碼解析
我們來分析search_with_lepton.py主文件,其中懈词,第1~22行導(dǎo)入必要的包蛇耀。
其中24~94行定義一些常量,注釋比較詳細坎弯。
其中97~289行實現(xiàn)了各種API調(diào)用纺涤,比如Google、Bing抠忘。
返回JSON列表:
其中291~639行定義了一個RAG類撩炊,實現(xiàn)了如何使用Lepton AI來實現(xiàn)一個AI搜索引擎,先搜索文檔崎脉,再讓LLM結(jié)合文檔給出回復(fù)拧咳,最后還會使用LeptonAI的KV將用戶一次查詢中產(chǎn)生的各種數(shù)據(jù)(查詢,回復(fù)囚灼,文檔骆膝,相關(guān)問題)存儲下來。
最后642~644行就是執(zhí)行主函數(shù)灶体,創(chuàng)建rag對象并運行阅签。