热门开源AI搜索引擎对比分析
汇总
lepton
● 项目地址:https://github.com/leptonai/search_with_lepton
● 简介:比较早期的Ai Search,由贾扬清团队项目开源,整个项目含前后端在内仅需不到500行代码。
● 搜索引擎:支持两种默认搜索引擎:Bing和Google。
● LLM:官方提供的API,可自行替换其他厂商API。
● 其他:提供了一个Chrome插件,用于总结页面以及对话。
Perplexica
● 项目地址:https://github.com/ItzCrazyKns/Perplexica
● 简介:号称可替代Perplexity的开源平替, 同类项目中star数量最多的一个,同时功能也基本与Perplexity一致。
● LLM:使用Ollama作为LLM服务端。
● 搜索引擎:SearxNG作为主要搜索引擎。另外还支持写作助手模式、学术搜索模式、YouTube搜索模式、Wolfram Alpha搜索模式和Reddit搜索模式,以适应不同场景下的搜索需要。
● 其他功能:支持图像和视频搜索等,还可以通过浏览器设置将其作为默认搜索引擎使用 ...
AGE:PostgreSQL实现图数据存储与检索的关键
简介Apache AGE是一个PostgreSQL数据库的扩展插件,使得在关系型数据库中也可以使用openCypher查询语言进行图查询。有了该插件,可以在PostgreSQL数据库中同时实现关键字检索、向量检索、图检索,仅需一个数据库即可实现复杂RAG的各种存储和检索需求。
安装Docker安装
获取镜像
1docker pull apache/age
运行容器
12345678docker run \ --name age \ -p 5455:5432 \ -e POSTGRES_USER=postgresUser \ -e POSTGRES_PASSWORD=postgresPW \ -e POSTGRES_DB=postgresDB \ -d \ apache/age
启动数据库
1docker exec -it age psql -d postgresDB -U postgresUser
源码安装Git Clone仓库或手动下载官方发布的版本。目前,仅支持 PostgreSQL 版本 11~16,若低于11则无法安装 ...
GitHub Copilot免费上线!快速上手指南与功能解析
GitHub Copilot在12月宣布免费订阅,不再限制学生和开源项目的维护者了,对于习惯白嫖的开发者来说无疑多了一个选择。
价格和功能免费版目前可以选择Claude 3.5 Sonnet或GPT-4o模型,每月可以调用 2000 次生成和补全代码,以及 50 次聊天信息。
快速开始
注册一个GIthub账号
VScode更新到最新版
功能介绍
除了基本的代码补全功能外,Github Copilot支持4种主要的交互方式:
对话式聊天
对话式编辑
编辑器内联聊天
快速聊天这4种方式分别有不同的使用场景,编辑主要是让AI直接在代码编辑区直接生成代码,聊天主要是与AI进行交互,例如可以要求解释代码、debug等。
代码补全这个功能适合一些比较通用的代码生成,只要输入一些常见的变量名或者方法名,就能看成模型推荐生成的代码。比如在编辑区新建一个python文件,输入twosum,即会出现推荐的代码,这个是力扣经典题目,按下「tab」就会补全。
除了代码补全外,还可以通过注释的方式让模型根据注释的内容和要求自动生成符合条件的代码。
编辑器内联聊天按下「command」 + 「i」唤 ...
LangGraph:基于图结构的大模型智能体开发框架
LangGraph 是LangChainAI开发的一个工具库,用于创建代理和多代理智能体工作流。它提供了以下核心优势:周期、可控性和持久性,对于Agent智能体开发者来说无疑减少了许多工作量。以下篇幅仅从本人角度阐述LangGraph在开发过程中的亮点以及使用方法。
基本介绍LangGraph的StateGraph是一种状态机,包含了节点和边,节点一般是定义好的函数,边用于连接不同的节点,用于表示图的执行顺序。简单来说,使用LangGraph构建工作流的步骤如下:
初始化模型和工具
定义图的状态信息
定义图节点
定义图的入口节点和边关系
编译图
执行图
123456789101112131415161718192021222324252627282930313233from typing import Annotatedfrom typing_extensions import TypedDictfrom langgraph.graph import StateGraph, START, ENDfrom langgraph.graph.message import add_mess ...
轻量高效的知识图谱RAG系统:LightRAG
LightRAG是港大Data Lab提出一种基于知识图谱结构的RAG方案,相比GraphRAG具有更快更经济的特点。
架构
1 索引阶段:对文档进行切分处理,提取其中的实体和边分别进行向量化处理,存放在向量知识库2 检索阶段:对用于输入分别提取局部和全局关键词,分别用于检索向量知识库中的实体和边关系,同时结合相关的chunk进行总结
下载方式1 源码安装12cd LightRAGpip install -e .
2 pypi源安装1pip install lightrag-hku
需要额外手动安装多个包,不太方便。建议从源码安装,可以直接下载所有依赖
模型支持1 支持兼容openai规范的接口1234567891011121314151617181920async def llm_model_func( prompt, system_prompt=None, history_messages=[], keyword_extraction=False, **kwargs) -> str: return await openai_complete_if_cac ...
PostgreSQL 数据库向量化的核心:pgvector
pgvector介绍pgvector是一款开源的向量搜索引擎,除了具备所有Postgres数据库的特性外,最主要的特点是能在Postgres数据库存储和检索向量数据,支持向量的精确检索和模糊检索。向量格式除了传统embedding模型的单精度浮点数外,还支持半精度浮点数,二元向量或者稀疏向量。
安装Docker1docker pull pgvector/pgvector:pg17
手动编译12345cd /tmpgit clone --branch v0。8。0 https://github。com/pgvector/pgvector。gitcd pgvectormakemake install # may need sudo
手动编译过程可能会出错,可以参考官方给出的解决方法
激活123# 每次新建一个数据库都需要执行如下操作激活插件CREATE EXTENSION vector;
使用方法123456# 数据库已经支持vector类型的数据了CREATE TABLE items (id bigserial PRIMARY KEY, embedding vector(3)) ...
PGML:向量数据库内一体化的RAG框架
架构总览
特性:● 支持数据库中进行的ai和ml分析● 支持gpu加速● 集成多种开源llm和rag框架● 支持传统的机器学习模型
使用方法云端试用官方提供了云服务试用,根据要求注册账号即可: 注册地址
本地部署官方提供了docker镜像,执行如下命令即可安装
1234567docker run \ -it \ -v postgresml_data:/var/lib/postgresql \ -p 5433:5432 \ -p 8000:8000 \ ghcr.io/postgresml/postgresml:2.7.12 \ sudo -u postgresml psql -d postgresml
进入容器后,可选发现预先定义好一些表,同时已经安装了pgvector和pgml插件
一体化RAG框架
PGML的一体化RAG是针对传统RAG进行改进的解决方案。一体化的RAG不再依赖分散的模块来处理嵌入、检索、重排和文本生成,而是将它们组合在一项服务下。PGML提供了如下RAG基本步骤:
文档切分模块:用于把完整文档按照不同的切分策略进行切分
向 ...
一文梳理RAG(检索增强生成)的现状与挑战
一 RAG简介大模型相较于过去的语言模型具备更加强大的能力,但在实际应用中,例如在准确性、知识更新速度和答案透明度方面,仍存在不少问题,比如典型的幻觉现象。因此,检索增强生成 (Retrieval-Augmented Generation, RAG) 被当作于大模型应用开发的一种新范式。RAG是指在利用大语言模型回答问题之前,先从外部知识库检索相关信息,然后再让模型根据这些信息进行总结归纳,这样便能确保模型不会胡说八道,并且回答的内容是有所依据的。尽管这几年大模型发展迅速,但至少还存在以下问题:
● 准确性: LLM是自回归模型,基于前一个词来推测下一个词,这种概率不可避免会产生错误的信息。
● 知识更新速度: LLM训练数据总是有限的,这可能导致模型的知识更新滞后,因此产生过时回答。
● 答案透明度: LLM 生成的内容往往缺乏明确的信息来源,影响内容的可信度。
● 领域专业知识能力欠缺: LLM在预训练阶段是由各种领域的数据训练得到,这些数据一般分布都比较均匀,没有哪个领域的数据占据了绝对优势,因此在处理特定领域的专业知识时,效果往往不会太好。
二 RAG与微调效果对比
性能对 ...
RAG文档解析利器:Deepdoc
项目结构Deepdoc是RAG框架RAGFLOW中使用的文档解析工具。
123456789101112131415161718192021222324|--deepdoc |--parser |--resume |--entities |--step_one.py |--step_two.py |--docx_parser.py |--pdf_parser.py |--excel_parser.py |--html_parser.py |--json_parser.py |--markdown_parser.py |--ppt_parser.py |--vision |--layout_recoginzer.py |--ocr.py |--ocr.res |--operators.py |--postprocess.py |--recoginzer.py |--seeit.py |--t_recoginzer.p ...
Magic-PDF:端到端PDF文档解析神器 构建高质量RAG必备!
项目结构
流程解析预处理的作用是判断文档内容是否需要进行OCR识别,如果是普通可编辑的PDF文档,则使用PyMuPDF库提取元信息。
模型层除了常规的OCR、版面结构分析外,还有公式检测模型,可提取公式内容,用于后续把公式转化为Latex格式。但是目前暂无表格内容识别,官方预计1个月之内会放出。
管线层主要是把上面模型的结果进行加工处理。比如把公式转化为Latex格式、图表保存起来成为图片、把文本框进行排序和合并以及过滤掉无用的信息(页眉、页脚等)。
输出层其实就是结果文件夹中的内容。结果文件夹中有layout.pdf、span.pdf、xx_middle.json、xx_model.json、xx_content_list.json、xx.md、images文件夹。
layout.pdf 可以看到 版面结构的识别结果
span.pdf 可以看到具体每个文本框的内容
xx_middle.json 是用OCR或者PDF库解析出的文档元信息,包含文本块类型、内容和坐标。
xx_model.json 是版面分析结果的内容,包含文本块的类型、坐标和置信度。
xx_content_ ...