具备人工智能标记的书签应用Hoarder

在这里插入图片描述

什么是 Hoarder ?

Hoarder 是一款可自托管的书签应用程序(链接、笔记和图像),具有基于人工智能的自动标记和全文搜索功能。适合数据囤积者使用。

软件特点:

  • 🔗 为链接添加书签、做简单的笔记并存储图像。
  • ⬇️ 自动获取链接标题、描述和图像。
  • 📋 将您的书签分类放入列表中。
  • 🔎 对存储的所有内容进行全文搜索。
  • ✨ 基于 AI(又名 chatgpt)的自动标记。支持使用 ollama 的本地模型!
  • 🔖 Chrome 插件和Firefox 插件可快速添加书签。
  • 📱一个iOS 应用程序和一个Android 应用程序。
  • 🌙 支持暗黑模式(目前仅限网络版)。
  • 💾 首先进行自我托管。
  • [计划] 下载内容以供离线阅读。

⚠️该应用程序正在大力开发中,还远未稳定。

官方提供了在线演示站点:https://try.hoarder.app

可以使用下面👇凭证登录

email: demo@hoarder.app
password: demodemo

安装

在群晖上以 Docker 方式安装。

涉及到多个容器,采用 docker-compose 方式安装

env.txt

将下面的内容保存为 env.txt 文件

NEXTAUTH_SECRET=4SnT8OKdC9p8bL23a6KHRiPFfRfXJOQC5E4VExPTBaNcBg8Z
MEILI_MASTER_KEY=fjJ+q1KEAg3Kxl3NxHbYKOhK1qB37RUK4VOpILyG5g6CsAWw
NEXTAUTH_URL=http://192.168.0.197:3312
  • NEXTAUTH_SECRETMEILI_MASTER_KEY,可以通过在 SSH 客户端在命令行执行 openssl rand -base64 36 来生成

  • NEXTAUTH_URL 中,
    • http://192.168.0.197 是老苏的群晖主机的 IP,需要更换成你自己的;
    • 端口 3312 是后面 docker-compose.yml 中设定的 Web 的主机端口,只要不冲突就可以了;

更多的环境变量,请参考官方文档:https://docs.hoarder.app/configuration

docker-compose.yml

将下面的内容保存为 docker-compose.yml 文件,这是在官方文件:https://raw.githubusercontent.com/hoarder-app/hoarder/main/docker/docker-compose.yml 基础上微调的

version: "3.8"

services:
  web:
    image: ghcr.io/mohamedbassem/hoarder-web:latest
    container_name: hoarder-web
    restart: unless-stopped
    volumes:
      - ./data:/data
    ports:
      - 3312:3000
    env_file:
      - env.txt
    environment:
      REDIS_HOST: redis
      MEILI_ADDR: http://meilisearch:7700
      DATA_DIR: /data

  redis:
    image: redis:7.2-alpine
    container_name: hoarder-redis
    restart: unless-stopped
    volumes:
      - ./redis:/data

  chrome:
    image: gcr.io/zenika-hub/alpine-chrome:100
    container_name: hoarder-chrome
    restart: unless-stopped
    command:
      - --no-sandbox
      - --disable-gpu
      - --remote-debugging-address=0.0.0.0
      - --remote-debugging-port=9222

  meilisearch:
    image: getmeili/meilisearch:v1.6
    container_name: hoarder-meilisearch
    restart: unless-stopped
    env_file:
      - env.txt
    volumes:
      - ./meilisearch:/meili_data

  workers:
    image: ghcr.io/mohamedbassem/hoarder-workers:latest
    container_name: hoarder-workers
    restart: unless-stopped
    volumes:
      - ./data:/data
    env_file:
      - env.txt
    environment:
      REDIS_HOST: redis
      MEILI_ADDR: http://meilisearch:7700
      BROWSER_WEB_URL: http://chrome:9222
      DATA_DIR: /data
      # OPENAI_API_KEY: ...
      OLLAMA_BASE_URL: http://192.168.0.197:11434
      INFERENCE_TEXT_MODEL: qwen:0.5b
    depends_on:
      web:
        condition: service_started

环境变量部分,可参考官方文档:https://docs.hoarder.app/configuration

这里只简单说下 AI,你可以根据自己的需要进行设置

  • OpenAI 的配置只有一个 OPENAI_API_KEY,所以不能通过代理方式,这就使得想用 GPT4Free 或者 kimi-free-api 就没戏了;
  • Ollama 目前还是实验功能,运算速度取决于机器性能和模型,按官方的说法,可能会出现大量推理失败。老苏用了 qwen:0.5b,在小机器上生成 tags 的速度还行吧,但是直观感觉上,准确度总归还是差点意思;

然后执行下面的命令

# 新建文件夹 hoarder 和 子目录
mkdir -p /volume1/docker/hoarder/{data,meilisearch,redis}

# 进入 hoarder 目录
cd /volume1/docker/hoarder

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:3312 就能看到登录界面

Sign Up 先注册账号

注册完成后,会自动登录进入主界面

网站

以老苏的博客为例,将地址粘贴到 Bookmarks

Save,然后稍等一会儿

卡片的右下角有两个按钮

左边的是放大,可以在不离开当前页面的情况下预览网站

tags 的生成是需要时间的,也许突然间就有了

文字

将文字粘贴到 Bookmarks

保存之后

格式不太好

但是可以编辑

文字的 tags 生成的时间取决于文字的多少

图片

直接拖拽图片

因为没有设置 INFERENCE_IMAGE_MODEL,也就没法自动为图片生成 tags 了,只能手动标记

搜索

直接搜索,因为资源少,所以也看不出什么效果,理论上用了 meilisearch,搜索效果应该不会差

移动端和浏览器插件

在 https://docs.hoarder.app/quick-sharing,你能找到移动端下载地址

也能找到浏览器插件的安装地址

参考文档

MohamedBassem/hoarder-app: A self-hostable bookmark-everything app (links, notes and images) with AI-based automatic tagging and full text search
地址:https://github.com/MohamedBassem/hoarder-app

Hoarder
地址:https://hoarder.app/

Introduction | Hoarder Docs
地址:https://docs.hoarder.app/

Hoarder
地址:https://try.hoarder.app/signin

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/722751.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

简单介绍vim

文章目录 前言一、Vim的特点二、安装Vim三、设置Vim配置文件的位置:编辑配置文件:添加配置选项:保存并退出编辑器:快速配置验证设置: 总结 前言 Vim是一款强大的文本编辑器,被广泛用于各种编程和文本编辑任…

大咖专栏 | AI 时代下,我们可以拥有怎样的数据库?

Hi,各位朋友们,我是 KaiwuDB 高级架构师赵衎衎。 KaiwuDB 始于万物互联时代下千万条数据洪流中,我们持续打磨构造了更加灵活兼容的分布式多模架构,实现了海量异构数据高性能、低成本的集中管理… …这些底层特性都在为后续提供更…

年轻人膳食营养补充剂小程序,营养看得见

随着经济与科技的不断发展,人们对于大众健康、全民养生的意识也在不断增强。越来越多的年轻人加入进来,逐渐成为保健品行业的主力军,传统的保健品行业抓住这一波时代潮流,也采取了新的变革。 一. 膳食营养补充剂的定义…

nodejs爬取小红书图片

昨天的文章已经描述了可以抓取评论区内容, 抓取图片内容和抓取评论区的内容基本一致 我们可以看到接口信息中含有图片链接,我们要做的就是爬取图片链接然后下载 这边要用到的模块为const downloadrequire(download) 将爬到的图片链接存放到images数组…

OpenAI新模型发布,免费开放GPT-4o!但只开放一点点...

GPT-4o 中的“o”代表“omni”——指的是 GPT-4o 的多模态。 该模型将向免费客户开放,这意味着任何人都可以通过 ChatGPT 访问 OpenAI 最先进的技术。 GPT-4o 是 OpenAI 昨天晚上发布的新旗舰模型,可以实时推理音频、视觉和文本。 据官方介绍&#xff0…

LCL滤波器并网逆变器双闭环控制系统仿真

并网逆变器通常采用L滤波器,虽然结构和控制简单,但是随着功率级别的增加,体积重量增大等问题也日益突出。为了解决这个问题,人们开始使用LCL滤波器,这种滤波器在功率较大的场合表现出色。 无源滤波器,又称…

人工智能在音乐创作中的崛起与未来展望

目录 前言1. 国内外音乐大模型现状1.1 国内音乐大模型概览1.2 国外音乐大模型概览1.3 市场份额与竞争格局 2. 音乐大模型的商业模式2.1 订阅制服务2.2 定制化服务2.3 授权与版权合作 3. 人工智能与音乐人的合作模式3.1 AI辅助创作3.2 共同创作平台3.3 AI乐器与音乐人表演 4. AI…

香港电讯高可用网络助力企业变革金融计算

客户背景 客户是一家金融行业知名的量化私募对冲基金公司,专注于股票、期权、期货、债券等主要投资市场,在量化私募管理深耕多年,目前资管规模已达数百亿级,在国内多个城市均设有办公地点。 客户需求 由于客户业务倚重量化技术…

LabVIEW Windows与RT系统的比较与选择

LabVIEW是一种系统设计和开发环境,广泛应用于各类工程和科学应用中。LabVIEW Windows和LabVIEW RT(Real-Time)是LabVIEW的两个主要版本,分别适用于不同的应用场景。以下从多个角度详细分析两者的区别,并提供选择建议。…

Mendix 创客访谈录|医疗设备领域的数字化转型利器

本期创客 尚衍亮 爱德亚(北京)医疗科技有限公司 应用开发和数字化事业部开发经理 大家好,我叫尚衍亮。毕业于软件工程专业,有6年的软件开发经验。从2021年开始,我在爱德亚(北京)医疗科技有限公司…

Python+Selenium之断言

一、Assert 用于判断一个表达式,在表达式条件为 false 的时候触发异常。 #获取对应元素的文本值text02driver.find_element_by_xpath("//h1[text()用户登录]").text#判断text02是否包含“用户登录”字符串,包含即成功,不包含即失败…

从零开始认识思科,并学会认识思科1.认识思科

hello大家好,我是风屿,今天我将从零开始带领大家认识思科设备中的各种技术以及配置,方便以后配置思科的设备,以及考取相应的证书。 在当今的数字化时代,网络扮演着至关重要的角色。而在网络技术领域,思科无…

互联网时代的语义网知识表示框架---RDF和RDFS

文章目录 RDF和RDFSRDF简介RDF和RDFS 随着语义网的提出,知识表示迎来了新的契机和挑战,契机在于语义网为知识表示提供了一个很好的应用场景,挑战在于面向语义网的知识表示需要提供一套标准语言可以用来描述Web的各种信息。早期Web的标准语言HTML和XML无法适应语义网对知识表…

MySQL数据库管理 二

1、数据表高级操作 (1)克隆表 方法一: create table 新表名 like 旧表名; #克隆表结构 insert into 新表名 select * from 旧表名; #克隆表数据 #此方法能保证 新表的表结构、表数据 跟旧表都是一致的 方法二&#x…

Python 数据可视化 多色散点图

Python 数据可视化 多色散点图 fig, ax plt.subplots() max_line max([max(merged_df[unif_ref_value]), max(merged_df[unif_rust_value])]) min_line min([max(merged_df[unif_ref_value]), max(merged_df[unif_rust_value])]) ax.plot([min_line, max_line], [min_line, …

【C语言】二维数组(详解)

目录 1. 二维数组的创建 1.1 二维数组的概念 1.2 二维数组的创建 2. 二维数组的初始化 2.1 不完全初始化 2.2 完全初始化 2.3 按照行初始化 2.4 初始化时能省略行,但不能省略列 3. 二维数组的使用 3.1 二维数组下标 3.2 二维数组…

【2024】kafka streams结合案例分析进行实际项目开发使用(3)

💻目录 一、前沿介绍二、代码实现1、依赖2、实体类2.1、Transaction2.2、 TransactionKey2.3、TransactionPattern2.4、CustomerReward 3、序列化工具类3.1、序列化3.2、反序列化3.3、Serde仓库 4、具体streams实现5、其他测试使用5.1、生产者5.2、日志文件 6、创建…

背景渐变动画登录页

b站视频演示效果: 效果图: 完整代码: <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>背景…

MySQL全解(基础)-(MySQL的安装与配置,数据库基础操作(CRUD,聚合,约束,联合查询),索引,事务)

MySQL安装与配置 1.数据库介绍 存储数据用文件就可以了&#xff0c;为什么还要弄个数据库? 文件保存数据有以下几个缺点&#xff1a; 文件的安全性问题 文件不利于数据查询和管理 文件不利于存储海量数据 文件在程序中控制不方便数据库存储介质&#xff1a; 磁盘 内存 为了…

天翼云8080、80端口用不了的问题

天翼云8080、80端口用不了的问题 前言&#xff1a;前段时间天翼云搞了活动&#xff0c;原来公司用的华为云老板说太贵了也快到期了&#xff0c;就换了天翼云的服务器。 排查&#xff1a; 安全组开放 80 8080 防火墙查看 没有问题 nginx nacos dcoker等停了 查看监听端口 发现…