SurfSense开源程序是NotebookLM / Perplexity / Glean的开源替代品,连接到外部来源,如搜索引擎
一、软件介绍
文末提供程序和源码下载
虽然 NotebookLM 和 Perplexity 等工具令人印象深刻,并且对于对任何主题/查询进行研究都非常有效,但 SurfSense 通过与你的个人知识库集成来提升这种能力。它是一个高度可定制的 AI 研究代理,连接到外部资源,例如搜索引擎(Tavily、LinkUp)、Slack、Linear、Notion、YouTube、GitHub 等。
二、主要特点
1. Latest 1. 最新
💡 Idea: 💡 想法:
Have your own highly customizable private NotebookLM and Perplexity integrated with external sources.
拥有您自己的高度可定制的私有 NotebookLM 和 Perplexity 与外部源集成。
📁 Multiple File Format Uploading Support
📁 支持多种文件格式上传
Save content from your own personal files (Documents, images and supports 27 file extensions) to your own personal knowledge base .
将您自己的个人文件(文档、图像和支持 27 个文件扩展名)中的内容保存到您自己的个人知识库中。
🔍 Powerful Search 🔍 强大的搜索功能
Quickly research or find anything in your saved content .
快速研究或查找您保存的内容中的任何内容。
💬 Chat with your Saved Content
💬 与您保存的内容聊天
Interact in Natural Language and get cited answers.
在 Natural Language 中互动并获得引用的答案。
📄 Cited Answers 📄 引用的答案
Get Cited answers just like Perplexity.
获取 Perfasciity 的 Cited 答案。
🔔 Privacy & Local LLM Support
🔔 隐私和本地LLM支持
Works Flawlessly with Ollama local LLMs.
与 Ollama local LLMs完美配合。
🏠 Self Hostable 🏠 自托管
Open source and easy to deploy locally.
开源且易于本地部署。
📊 Advanced RAG Techniques
📊 高级 RAG 技术
- Supports 150+ LLM's 支持 150+ LLM个
- Supports 6000+ Embedding Models.
支持 6000+ 嵌入模型。 - Supports all major Rerankers (Pinecode, Cohere, Flashrank etc)
支持所有主要的 Reranker(Pinecode、Cohere、Flashrank 等) - Uses Hierarchical Indices (2 tiered RAG setup).
使用 Hierarchical Indices (2 层 RAG 设置)。 - Utilizes Hybrid Search (Semantic + Full Text Search combined with Reciprocal Rank Fusion).
利用混合搜索(语义 + 全文搜索与倒数秩融合相结合)。 - RAG as a Service API Backend.
RAG 即服务 API 后端。
ℹ️ External Sources i️ 外部源
- Search Engines (Tavily, LinkUp)
搜索引擎 (Tavily, LinkUp) - Slack 松弛
- Linear 线性
- Notion 概念
- Youtube Videos Youtube 视频
- GitHub GitHub的
Cross Browser Extension
🔖 跨浏览器扩展
- The SurfSense extension can be used to save any webpage you like.
SurfSense 扩展程序可用于保存您喜欢的任何网页。 - Its main usecase is to save any webpages protected beyond authentication.
它的主要用例是保存任何在身份验证之外受保护的网页。
Tech Stack 技术栈
BackEnd 后端
-
FastAPI: Modern, fast web framework for building APIs with Python
FastAPI:用于使用 Python 构建 API 的现代、快速的 Web 框架 -
PostgreSQL with pgvector: Database with vector search capabilities for similarity searches
带有 pgvector 的 PostgreSQL:具有用于相似性搜索的向量搜索功能的数据库 -
SQLAlchemy: SQL toolkit and ORM (Object-Relational Mapping) for database interactions
SQLAlchemy:用于数据库交互的 SQL 工具包和 ORM(对象关系映射) -
Alembic: A database migrations tool for SQLAlchemy.
Alembic:用于 SQLAlchemy 的数据库迁移工具。 -
FastAPI Users: Authentication and user management with JWT and OAuth support
FastAPI 用户:使用 JWT 和 OAuth 支持进行身份验证和用户管理 -
LangGraph: Framework for developing AI-agents.
LangGraph:开发 AI 代理的框架。 -
LangChain: Framework for developing AI-powered applications.
LangChain:用于开发 AI 驱动的应用程序的框架。 -
LLM Integration: Integration with LLM models through LiteLLM
LLM集成:通过 LiteLLM 与LLM模型集成 -
Rerankers: Advanced result ranking for improved search relevance
Rerankers:用于提高搜索相关性的高级结果排名 -
Hybrid Search: Combines vector similarity and full-text search for optimal results using Reciprocal Rank Fusion (RRF)
混合搜索:使用倒数秩融合 (RRF) 将向量相似性和全文搜索相结合,以获得最佳结果 -
Vector Embeddings: Document and text embeddings for semantic search
向量嵌入:用于语义搜索的文档和文本嵌入 -
pgvector: PostgreSQL extension for efficient vector similarity operations
pgvector:用于高效向量相似性作的 PostgreSQL 扩展 -
Chonkie: Advanced document chunking and embedding library
Chonkie:高级文档分块和嵌入库 -
Uses
AutoEmbeddings
for flexible embedding model selection
用于AutoEmbeddings
灵活的嵌入模型选择 -
LateChunker
for optimized document chunking based on embedding model's max sequence length
LateChunker
用于基于嵌入模型的最大序列长度优化文档分块
FrontEnd 前端
-
Next.js 15.2.3: React framework featuring App Router, server components, automatic code-splitting, and optimized rendering.
Next.js 15.2.3:React 框架,具有 App Router、服务器组件、自动代码拆分和优化渲染。 -
React 19.0.0: JavaScript library for building user interfaces.
React 19.0.0:用于构建用户界面的 JavaScript 库。 -
TypeScript: Static type-checking for JavaScript, enhancing code quality and developer experience.
TypeScript:JavaScript 的静态类型检查,可增强代码质量和开发人员体验。 -
Vercel AI SDK Kit UI Stream Protocol: To create scalable chat UI.
Vercel AI SDK 套件 UI 流协议:创建可扩展的聊天 UI。 -
Tailwind CSS 4.x: Utility-first CSS framework for building custom UI designs.
Tailwind CSS 4.x:用于构建自定义 UI 设计的实用优先 CSS 框架。 -
Shadcn: Headless components library.
Shadcn:Headless 组件库。 -
Lucide React: Icon set implemented as React components.
Lucide React:作为 React 组件实现的图标集。 -
Framer Motion: Animation library for React.
Framer Motion:React 的动画库。 -
Sonner: Toast notification library.
Sonner:Toast 通知库。 -
Geist: Font family from Vercel.
Geist:来自 Vercel 的字体系列。 -
React Hook Form: Form state management and validation.
React Hook Form:表单状态管理和验证。 -
Zod: TypeScript-first schema validation with static type inference.
Zod:使用静态类型推理进行 TypeScript 优先模式验证。 -
@hookform/resolvers: Resolvers for using validation libraries with React Hook Form.
@hookform/resolvers: 用于将验证库与 React Hook Form 一起使用的解析器。 -
@tanstack/react-table: Headless UI for building powerful tables & datagrids.
@tanstack/react-table:用于构建强大表格和数据网格的无头用户界面。
Extension 外延
Manifest v3 on Plasmo
Plasmo 上的 Manifest v3
三、软件下载
夸克网盘分享
本文信息来源于GitHub作者地址:GitHub - MODSetter/SurfSense: Open Source Alternative to NotebookLM / Perplexity / Glean, connected to external sources such as search engines (Tavily, Linkup), Slack, Linear, Notion, YouTube, GitHub and more.
相关文章:
SurfSense开源程序是NotebookLM / Perplexity / Glean的开源替代品,连接到外部来源,如搜索引擎
一、软件介绍 文末提供程序和源码下载 虽然 NotebookLM 和 Perplexity 等工具令人印象深刻,并且对于对任何主题/查询进行研究都非常有效,但 SurfSense 通过与你的个人知识库集成来提升这种能力。它是一个高度可定制的 AI 研究代理,连接到外…...

【PostgreSQL数据分析实战:从数据清洗到可视化全流程】电商数据分析案例-9.4 可视化报告输出
👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 电商数据分析实战:基于PostgreSQL的可视化报告生成全流程9.4 可视化报告输出9.4.1 可视化报告设计框架9.4.1.1 报告目标与受众9.4.1.2 数据准备与指标体系 9.4.2…...

屎上雕花系列-2nd
以下为“屎上雕花”的尝试2nd 使用Deepseek扩容而来,我竟然没有找到明显的错误,太强大了,工作改变生活了 LeCroy 以太网与 SAN 网络测试解决方案 硬件平台一:Xena 以太网流量生成器 Xena 以太网流量生成器是一款高性能的网络测…...

MCP专题| 突破LLM三大瓶颈!模型上下文协议(MCP)如何重塑AI交互体验?
最近引爆了整个AI圈的Model Context Protocol(MCP)到底是什么?你是否也和小编一样一头雾水,不是说好的LLM风潮呢,怎么现在变成通信协议啦?最近小编也是找到一篇神仙综述,带你一遍搞清什么是MCP的…...

我的AD快捷键方案【留存】
留存我的快捷键方案文件,以便换电脑的时候能够快速导入快捷键。 我的快捷键文件: 通过网盘分享的文件:JB20250509.DXPPrf 链接: https://pan.baidu.com/s/1t6V0GjdGFPNSFydP5Z_tfg?pwde4xs 提取码: e4xs 复制这段内容后打开百度网盘手机Ap…...
uni-app,小程序自定义导航栏实现与最佳实践
文章目录 前言为什么需要自定义导航栏?基本实现方案1. 关闭原生导航栏2. 自定义导航栏组件结构3. 获取状态栏高度4. 样式设置 内容区域适配跨平台适配要点iOS与Android差异处理 常见导航栏效果实现1. 透明导航栏2. 滚动渐变导航栏3. 自定义返回逻辑 解决常见问题1. …...
解决osx-arm64平台上conda默认源没有提供 python=3.7 的官方编译版本的问题
CONDA_SUBDIRosx-64 conda create -n py37_env python3.7 是一个用于创建特定架构环境的命令,主要针对 macOS 系统。下面为你详细解析它的功能和作用: 命令功能解析 这个命令的主要功能是创建一个名为 py37_env 的 Conda 环境,并且指定该环…...

Edwards爱德华STP泵软件用于操作和监控涡轮分子泵
Edwards爱德华STP泵软件用于操作和监控涡轮分子泵...
vue内写websocket实时订阅
首先安装插件reconnecting-websocket 或者不安装也可以,这个插件只是在断连之后可以重新连接 引入插件 import ReconnectingWebSocket from reconnecting-websocket;。 js文件: export const WebSocketClass (url, params, successFn, errorFn, clo…...

QT6(35)4.8定时器QTimer 与QElapsedTimer:理论,例题的界面搭建,与功能的代码实现。
(112) (113)模仿随书老师给的源代码搭建的, LCD 显示的部分不一样 : (114)以下开始代码完善: 关联定时器的信号与槽函数 : (115)…...
在R语言中如何将列的名字改成别的
在 R 中,更改数据框(data frame)中列的名字可以通过多种方法实现。以下是几种常见的方法: 方法 1:使用 names() 函数 names() 函数可以获取或设置数据框的列名。 示例 假设我们有一个数据框 data: dat…...
北斗导航 | RTKLib中模糊度解算详解,公式,代码
模糊度解算 一、模糊度解算总体流程二、核心算法与公式推导1. **双差模糊度定义**2. **浮点解方程**三、LAMBDA算法实现细节1. **降相关变换(Z-transform)**2. **整数最小二乘搜索**3. **Ratio检验**四、部分模糊度固定(Partial Ambiguity Resolution, PAR)1. **子集选择策…...

02 mysql 管理(Windows版)
一、启动及关闭 MySQL 服务器 1.1 通过 “服务” 管理工具 winr打开运行,输入services.msc 找到MySQL80,这个是我们在安装mysql的时候给的服务的名称,具体见文章mysql 安装 右键选择启动或者停止。 1.2 通过命令提示符 1.2.1 关闭命令…...

不同渲染任务,用CPU还是GPU?
一、CPU与GPU渲染的核心差异与选型建议 CPU渲染的核心优势与适用场景 复杂场景处理能力:CPU凭借强大的多核性能(如AMD Threadripper 3990x的64核)和高内存容量(最高支持512GB),擅长处理影视级光线追踪、全…...
uv简单使用
通过uv创建项目和虚拟环境 初始化项目 uv init --package my-project 初始化一个名为 my-project 的新项目,并生成必要的文件结构。 创建虚拟环境 uv venv .venv 激活虚拟环境 # For Windows .venv\Scripts\activate# For macOS/Linux source .venv/bin/acti…...
LeetCode 54.螺旋矩阵遍历的两种方法详解与对比
文章目录 方法一:边界调整法(逐层收缩)实现思路代码实现复杂度分析 方法二:矩阵旋转法(逐层剥离)实现思路代码实现复杂度分析 方法对比总结 本文介绍两种Java实现螺旋矩阵遍历的算法,并对其时间…...
手撕红黑树的 左旋 与 右旋
一、为什么需要旋转? 在红黑树中,插入或删除节点可能会破坏其五条性质,比如高度不平衡或连续红节点。 为了恢复红黑性质,我们采用局部旋转来“调整树形结构”,保持平衡。 二、旋转本质是“局部变形” 左旋和右旋不会…...
RGB矩阵照明系统详解及WS2812配置指南
RGB矩阵照明系统详解及WS2812配置指南 一、RGB矩阵照明简介 RGB矩阵照明是一种强大的功能,允许使用外部驱动器驱动的RGB LED矩阵为键盘增添绚丽的灯光效果。该系统与RGBLIGHT功能无缝集成,因此您可以使用与RGBLIGHT相同的键码来控制它,操作…...

硅基计划 学习总结 拾贰
一、二级指针 难道指针也有分等级的吗,我们学过的指针要存放变量的地址的,那二级指针是干嘛的呢? 一级指针:int a 10; int *pa &a; 指针变量,它终究是个变量,也有自己的地址 那我们以后是不是可以通…...
RabbitMQ事务机制
在RabbitMQ中,生产者为了确保消息发送成功,一种是使用 confirm 确认机制,另一种就是使用事务机制,事务机制就是允许生产者在发送消息时,将多个消息操作作为一个原子单元进行处理,要么所有操作都成功执行&am…...

【C语言指针超详解(三)】--数组名的理解,一维数组传参的本质,冒泡排序,二级指针,指针数组
目录 一.数组名的理解 二.使用指针访问数组 三.一维数组传参的本质 四.冒泡排序 五.二级指针 六.指针数组 6.1--指针数组的定义 6.2--指针数组模拟二维数组 🔥个人主页:草莓熊Lotso的个人主页 🎬作者简介:C方向学习者 &…...
主机漏洞扫描:如何保障网络安全及扫描原理与类型介绍?
主机漏洞扫描是保障网络安全的关键办法,它能对主机展开全面检测,借助这种检测能及时找出潜在的安全风险,从而避免遭受黑客攻击。下面会为你具体介绍主机漏洞扫描的有关事项。 扫描原理 主机漏洞扫描要借助漏洞库,还要借助扫描器…...

QT聊天项目DAY10
1.封装redis操作类 头文件 #ifndef REDISMANAGE_H #define REDISMANAGE_H#include "Singletion.h" #include "GlobalHead.h"class RedisManage : public Singletion<RedisManage> {friend class Singletion<RedisManage>; public:~RedisMana…...

养生:开启健康生活的钥匙
养生,是对生活的精心呵护,是通往健康之路的秘诀。以下从饮食、运动、睡眠和心态四个方面,为你呈现科学养生之道。 饮食养生:营养均衡的智慧 合理的饮食是养生的基础。遵循 “食物多样,谷类为主” 的原则,…...

基于springboot的海洋环保知识分享系统的设计与实现
博主介绍:java高级开发,从事互联网行业六年,熟悉各种主流语言,精通java、python、php、爬虫、web开发,已经做了六年的毕业设计程序开发,开发过上千套毕业设计程序,没有什么华丽的语言࿰…...

操作系统 第2章节 进程,线程和作业
一:多道程序设计 1-多道程设计的目的 for:提高吞吐量(作业道数/处理时间),我们可以从提高资源的利用率出发 2-单道程序设计缺点: 设备的利用率低,内存的利用率低,处理机的利用率低 比如CPU去访问内存,CPU空转.内存等待CPU访问也是没有任何操作的.要是有多个东西要去访问不冲…...
住宅IP的深度解析与合理运用
海外住宅代理IP作为全球化数字业务的核心工具,其配置与运用需兼顾技术适配性、业务需求与合规性。以下从类型选择、配置方法、应用场景、优化策略及风险控制五个维度进行解析: 一、类型选择:静态与动态住宅IP的核心差异 静态住宅IP 特性&…...

RT-Thread 深入系列 Part 2:RT-Thread 内核核心机制深度剖析
摘要: 本文从线程管理、调度器原理、中断处理与上下文切换、IPC 同步机制、内存管理五大核心模块出发,深入剖析 RT-Thread 内核实现细节,并辅以源码解读、流程图、时序图与性能数据。 目录 线程管理与调度器原理 1.1 线程控制块(T…...

在线caj转换word
CAJ格式是中国知网特有的一种文献格式,在学术研究等领域广泛使用,但有时我们需要将其转换为Word格式,方便编辑、引用文献。本文分享如何轻松将CAJ转换为word的转换工具,提高阅读和办公效率。 如何将CAJ转换WORD? 1、使用CAJ转换…...

25:三大分类器原理
1.分类的逻辑; 2.统计学与数据分析。 ************************ Mlp 多层感知系统 GMM 高斯混合模型-极大似然估计法 SVM 支持向量机建立一个超平面作为决策曲面,使得正例和反例的隔离边界最大化 Knn 1.MLP整个模型就是这样子的,上面…...