2024年1月25日,阿里巴巴原技術(shù)副總裁在 Twitter 上稱用不到 500 行 Python 代碼實(shí)現(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 集成了大型語言模型,這意味著它能夠利用這些先進(jìn)的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ù)的性能提高,如情感分析和命名實(shí)體識別。
T5(谷歌): 文本到文本轉(zhuǎn)換器(T5)是一個LLM,該模型將所有的NLP任務(wù)限定為文本到文本問題,簡化了模型適應(yīng)不同任務(wù)的過程。T5在總結(jié)、翻譯和問題回答等任務(wù)中表現(xiàn)出強(qiáng)大的性能。
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)置了強(qiáng)大的搜索引擎功能,能夠快速檢索互聯(lián)網(wǎng)上的海量信息,確保用戶能夠找到最相關(guān)和最新的數(shù)據(jù)。
3.Customizable pretty UI interface
Lepton Search 提供了一個高度可定制的用戶界面,用戶可以根據(jù)自己的喜好和需求調(diào)整界面布局、顏色主題和功能模塊,打造個性化的搜索體驗(yàn)。
4.Shareable, cached search results
Lepton Search 允許用戶將搜索結(jié)果進(jìn)行分享,無論是通過社交媒體還是其他平臺,都能輕松實(shí)現(xiàn)。同時,它還提供了緩存功能,用戶可以保存搜索結(jié)果,以便日后查閱,無需重復(fù)搜索,大大提高了效率。
源碼解析

我們來分析search_with_lepton.py主文件,其中,第1~22行導(dǎo)入必要的包。

其中24~94行定義一些常量,注釋比較詳細(xì)。

其中97~289行實(shí)現(xiàn)了各種API調(diào)用,比如Google、Bing。

返回JSON列表:

其中291~639行定義了一個RAG類,實(shí)現(xiàn)了如何使用Lepton AI來實(shí)現(xiàn)一個AI搜索引擎,先搜索文檔,再讓LLM結(jié)合文檔給出回復(fù),最后還會使用LeptonAI的KV將用戶一次查詢中產(chǎn)生的各種數(shù)據(jù)(查詢,回復(fù),文檔,相關(guān)問題)存儲下來。

最后642~644行就是執(zhí)行主函數(shù),創(chuàng)建rag對象并運(yùn)行。
