2024年1月25日,阿里巴巴原技术副总裁在 Twitter 上称用不到 500 行 Python 代码实现了 AI 对话搜索引擎,并在27日附上了开源地址:https://github.com/leptonai/search_with_lepton,截止春节期间已经5.8K的Star。
Twitter截图
Commits
界面
Lepton Search 具备的特性
1.Built-in support for LLM
Lepton Search 集成了大型语言模型,这意味着它能够利用这些先进的AI技术来理解和处理复杂的查询,为用户提供更加准确和深入的答案。
常见的大语言模型:
GPT-3(OpenAI): Generative Pre-trained Transformer 3(GPT-3)是最著名的LLM之一,拥有1750亿个参数。该模型在文本生成、翻译和其他任务中表现出显著的性能,在全球范围内引起了热烈的反响,目前OpenAI已经迭代到了GPT-4版本。
BERT(谷歌):Bidirectional Encoder Representations from Transformers(BERT)是另一个流行的LLM,对NLP研究产生了重大影响。该模型使用双向方法从一个词的左右两边捕捉上下文,使得各种任务的性能提高,如情感分析和命名实体识别。
T5(谷歌): 文本到文本转换器(T5)是一个LLM,该模型将所有的NLP任务限定为文本到文本问题,简化了模型适应不同任务的过程。T5在总结、翻译和问题回答等任务中表现出强大的性能。
ERNIE 3.0 文心大模型(百度):百度推出的大语言模型ERNIE 3.0首次在百亿级和千亿级预训练模型中引入大规模知识图谱,提出了海量无监督文本与大规模知识图谱的平行预训练方法。
2.Built-in support for search engine
Lepton Searc内置了强大的搜索引擎功能,能够快速检索互联网上的海量信息,确保用户能够找到最相关和最新的数据。
3.Customizable pretty UI interface
Lepton Search 提供了一个高度可定制的用户界面,用户可以根据自己的喜好和需求调整界面布局、颜色主题和功能模块,打造个性化的搜索体验。
4.Shareable, cached search results
Lepton Search 允许用户将搜索结果进行分享,无论是通过社交媒体还是其他平台,都能轻松实现。同时,它还提供了缓存功能,用户可以保存搜索结果,以便日后查阅,无需重复搜索,大大提高了效率。
源码解析
代码目录
我们来分析search_with_lepton.py主文件,其中,第1~22行导入必要的包。
其中24~94行定义一些常量,注释比较详细。
其中97~289行实现了各种API调用,比如Google、Bing。
返回JSON列表:
其中291~639行定义了一个RAG类,实现了如何使用Lepton AI来实现一个AI搜索引擎,先搜索文档,再让LLM结合文档给出回复,最后还会使用LeptonAI的KV将用户一次查询中产生的各种数据(查询,回复,文档,相关问题)存储下来。
最后642~644行就是执行主函数,创建rag对象并运行。