Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

个人大数据之旅 #9

Open
lmmsoft opened this issue Jun 28, 2023 · 21 comments
Open

个人大数据之旅 #9

lmmsoft opened this issue Jun 28, 2023 · 21 comments

Comments

@lmmsoft
Copy link
Owner

lmmsoft commented Jun 28, 2023

记录个人大数据相关的 idea

有了ChatGPT之后,AI大爆发,借助大模型,人人都可以用 提示词 的方式搞人工智能,算力大爆发,思路大爆发,一切皆可以用AI重做一遍。

我也不能例外。

【原则】
给自己的要求:每天动动手

  • 数据自己管理
  • SaaS服务要尝试,selfhost开源的工具也要弄,甚至自己参与到构建未来的工具中来
  • 不用在乎存储空间,算力(花钱)
  • 提效,用 AI 全面武装自己的生活,全面提效

【大方向】

  • 文本
    • 个人所有生产的内容,第二大脑,硅基生命
    • 个人阅读的所有内容,摘要,索引,推荐,再创造,大脑外存
  • 多模态(图像,视频)
    • 个人所有照片处理,自动标注内容
    • 个人视频处理,自动生成摘要短片

【备份】

  • 原始数据(常用的db,可能都得有一套,稳定的,最稳定好用的应该是云服务)
  • 热备(nas出场啦,百度云,iCloud手机+微信聊天记录备份)
  • 冷备(异构数据库(准实时),移动硬盘(每年),OSS存档存储(github acrtion定期))
  • 其他冷备:刻盘现在应该不流行了吧
@lmmsoft
Copy link
Owner Author

lmmsoft commented Jun 28, 2023

第一章:升级NAS
背景:
实操:pdd yyds
结果:

  • 花了xx元,增加了14.x T的存储空间
  • 两个8T 拆开使用 ? 算了吧
  • 缓存从256G 的SSD 换成了1T,计算出来8T的盘要1.2T缓存,基本够用了。16T盘有需要的话也加个1T缓存,或者2T也不算贵,小几百吧
  • 内存 4G+8G=12G 绰绰有余了,可以跑很多docker服务了,甚至是win10虚拟机,现在的瓶颈是 CPU,2 core 1.5G的赛扬,服务多了不堪重负,哈哈

【网络】

  • 家里电信宽带,没有固定IPv4, ipv6应该有
  • 常用端口被封,比如 80 443等,实在需要的话也可以用 ngrok做内网穿透,每个账号一个免费额度
  • 路由器超级密码,开了DMZ,端口无脑转发到NAS
  • 有了群晖自带的 ddns服务,有个域名

@lmmsoft
Copy link
Owner Author

lmmsoft commented Jun 28, 2023

#第二章:搭建数据库

##最终方案:

NAS: mysql(双活), redis(不差内存)
Azure虚拟机:mongodb,
Azure免费db服务:mysql + postgress + azuredb(热备)

Serverless服务:

mongodb atlas: 免费额度 https://cloud.mongodb.com/ 注意要选Shared 里面的 M0, 有 512M 大小,Serverless 是要钱的,60天没用会回收
redis: 免费额度
rsshub: 使用 https://zeabur.com/ 自己搭建一个,需要7天登陆一次

DB具体场景:

postgres

  • ttrss 用 mysql 小问题很多,还是 postgress 减少折腾吧
  • wallabag, 抓取的数据都放一起吧

MySQL

  • trojan-web 的用户数据库,单独搭个MariaDB其实运行得也挺好,但是消耗内存,1G的vm 内存是瓶颈,vCPU的quota目前一直不是

VM场景

  • redis 比较贵(eg: Azure Cache for Redis),用VM 自己搭建吧
  • trojan 共享ip用ChatGPT容易封号,还是自建吧
  • ttrss
  • wallabag

@lmmsoft
Copy link
Owner Author

lmmsoft commented Jun 28, 2023

第三章:搭建ttrss

【What】

【Why】

  • 开源方案,可以 selfhost,自主可控
  • 借助rsshub,收集更多信息
  • 虽然是php写的XD,但是业界排名第一,插件丰富,功能晚上

【How】

国产搭建方案,

https://github.com/HenryQW/Awesome-TTRSS

放那里?

  • db 在 azure, 服务在哪其实无所谓,有域名就行,azure vm, 本地nas都可以
  • docker 一键部署,保留好脚本,后期折腾应该不算多
  • 为了减少未来的折腾,还是nas吧
  • 初期先放azure vm上,稳定性更好,服务器在国外,抓取应该更稳定

用什么方案

  • 适合我的大概有三种方案
    1. 群晖 第三方服务里 ttrss/会自己在机器上装mariadb,遇到些问题,没成功
    1. docker + 自建数据库/最后我用的方案,数据库用的azure的postgres
    1. docker-compose(自带数据库) / 最省事的方案,多年前我用过一次,最后服务和数据一起,因为虚拟机没续费,而丢失全部数据,服务还可以重建,数据丢了就没办法了,大部分博客默认只有10条,有的订阅源不在了,数据也就彻底没有了
  • 最终选择了方案2,服务可以随时搭建在多个地方,数据必须自己管控,还要有备份机制等

这个教程不错 https://sspai.com/post/57498

docker 部署

docker run -it --name ttrss --restart=always \
-e SELF_URL_PATH=[ TTRSS 实例地址 ]  \
-e DB_HOST=[ 数据库地址 ]  \
-e DB_PORT=[ 数据库端口 ]  \
-e DB_NAME=[ 数据库名称 ]  \
-e DB_USER=[ 数据库用户名 ]  \
-e DB_PASS=[ 数据库密码 ]  \
-p [ 容器对外映射端口 ]:80  \
-d wangqiru/ttrss
  • 我的实际命令,供参考
docker run -it --name ttrss --restart=always \
-e SELF_URL_PATH=http://xxx.cloudapp.azure.com:181 \
-e DB_HOST=xxx.postgres.database.azure.com  \
-e DB_PORT=5432  \
-e DB_NAME=ttrss  \
-e DB_USER=xx  \
-e DB_PASS=xx  \
-p 181:80  \
-d wangqiru/ttrss

  • 我的 docker-compose.yml ,注释掉了 postgress 容器部分,ttrss 修改环境变量,连接azure的postgres数据库,供参考,实际请在awesome-TTRSS项目的最新 docker-compose.yml 上修改
version: "3"
services:
  service.rss:
    image: wangqiru/ttrss:latest
    container_name: ttrss
    ports:
      - 181:80
    environment:
      - SELF_URL_PATH=http://xxx.cloudapp.azure.com:181
      - DB_HOST=xxx.postgres.database.azure.com
      - DB_PORT=5432
      - DB_NAME=ttrss
      - DB_USER=xxx
      - DB_PASS=xxx
      - PUID=1000
      - PGID=1000
    volumes:
      - feed-icons:/var/www/feed-icons/
    networks:
      - public_access
      - service_only
      - database_only
    stdin_open: true
    tty: true
    restart: always

  service.mercury: # set Mercury Parser API endpoint to `service.mercury:3000` on TTRSS plugin setting page
    image: wangqiru/mercury-parser-api:latest
    container_name: mercury
    networks:
      - public_access
      - service_only
    restart: always

  service.opencc: # set OpenCC API endpoint to `service.opencc:3000` on TTRSS plugin setting page
    image: wangqiru/opencc-api-server:latest
    container_name: opencc
    environment:
      - NODE_ENV=production
    networks:
      - service_only
    restart: always

  #  database.postgres:
  #    image: postgres:13-alpine
  #    container_name: postgres
  #    environment:
  #      - POSTGRES_PASSWORD=ttrss # feel free to change the password
  #    volumes:
  #      - ~/postgres/data/:/var/lib/postgresql/data # persist postgres data to ~/postgres/data/ on the host
  #    networks:
  #      - database_only
  #    restart: always

  # utility.watchtower:
  #   container_name: watchtower
  #   image: containrrr/watchtower:latest
  #   volumes:
  #     - /var/run/docker.sock:/var/run/docker.sock
  #   environment:
  #     - WATCHTOWER_CLEANUP=true
  #     - WATCHTOWER_POLL_INTERVAL=86400
  #   restart: always

volumes:
  feed-icons:

networks:
  public_access: # Provide the access for ttrss UI
  service_only: # Provide the communication network between services only
    internal: true
  database_only: # Provide the communication between ttrss and database only
    internal: true

【踩坑】

Azure的postgres默认强制ssl登陆,而 ttrss 的初始化代码里,没有打开ssl,会导致报错

<pre>Exception while creating PDO object:SQLSTATE[08006] [7] connection to server at "xxx.postgres.database.azure.com" (202.89.222.255), port 5432 failed: could not open certificate file "/root/.postgresql/postgresql.crt": Permission denied
connection to server at "xxx.postgres.database.azure.com" (202.89.222.255), port 5432 failed: FATAL:  no pg_hba.conf entry for host "202.222.16.44", user "xxx", database "ttrss", no encryption</pre>

解决的方法是在 Azure Postgres的【服务器参数】里,把 require_secure_transport 设为 false
image

踩坑2

  • db 问题过了后,部署应该可以了, 但是 url 总是打不开,vm上 curl localhost:181 有返回, curl dns:181 不行,应该是防火墙问题,azure vm的网络配置里,赶紧打开 181 端口

踩坑3

  • 打开网页后,提示我 SELF_URL_PATH 不对, 应该是 http://url , 我原本设置是 url,没有http://,删了容器重启
  • 正确> -e SELF_URL_PATH=http://xxx.azure.com:181

装好之后

@lmmsoft
Copy link
Owner Author

lmmsoft commented Jun 28, 2023

第四章:搭建rsshub

自己搭建

发现网页的rss源

微信公众号

Wechat2RSS

@lmmsoft
Copy link
Owner Author

lmmsoft commented Jun 28, 2023

第五章:导入 rss 数据源

  • NetNewsWire

  • Inoreader,之前导入的有问题

  • greader?

  • 数据源(链接)

  • 数据(真实的文章备份,因为很多都消失了)

【公众号】
【微博】订阅几个必读的人(不怎么转发,只原创思想,等等)
【推特】现在可能比较麻烦

@lmmsoft
Copy link
Owner Author

lmmsoft commented Jun 28, 2023

第六章:数据索引

ttrss 的数据,如何索引,如何AI 化?

@lmmsoft
Copy link
Owner Author

lmmsoft commented Jun 28, 2023

第七章:自动化,AI 处理 ttrss数据

  • 标签,标注
  • 好文摘要
  • 自动推送通知
  • 重点关注
  • 个人阅读统计,数量,时间

@lmmsoft
Copy link
Owner Author

lmmsoft commented Jun 28, 2023

第八章:个人的【文件传输助手】【待读清单】 wallabag

ttrss插件

Chrome 插件

搭建 wallabag

类似的

https://github.com/ArchiveBox/ArchiveBox
对比https://www.libhunt.com/compare-wallabag-vs-pirate--ArchiveBox

  • ArchiveBox 更适合保持网页
  • Wallabox 更适合 read it later
  • By ChatGPT: ArchiveBox和Wallabag都具有各自独特的特点和用途,所以选择取决于您的具体需求。如果您想创建全面的网页存档并存储各种在线内容,ArchiveBox可能更适合。另一方面,如果您的主要目标是保存和稍后阅读文章,并希望获得更好的阅读体验,同时附带一些额外的功能,Wallabag可能更适合。我建议您探索它们各自的网站和文档,以了解它们的最新特性和功能,因为自从我在知识截止日之后可能已经更新或更改了一些内容。

搭建实操篇

搭建在哪里的思考

需要的资源和我有的资源

  • 服务器: 群晖 NAS or AzureVM
  • 数据存储: sqllite / postgres / mysql 三种都可以
  • 缓存redis:群晖自建 or AzureVM 自建 or 免费Redis服务 (Azure Cache for Redis服务太贵, 自建太消耗内存,免费的一般缓存空间可能不够)
  • docker-compse : NAS or AzureVM 都可以
  • 最终决定: NAS,主要原因是 �Redis的内存问题,NAS 刚加内存条,Azure内存是瓶颈,已经强行开了Swap了。redis 在 nas 本地,redis 端口or密码 、 数据库用 postgres 远程的

@lmmsoft lmmsoft changed the title 个人大数据 个人大数据之旅 Jun 28, 2023
@lmmsoft
Copy link
Owner Author

lmmsoft commented Jun 29, 2023

第三章,续篇:折腾ttrss

各种插件

  • opencc
  • mercury

导入数据源

  • opml 文件,从 inoreader/NetNewsWire

ALL-about-RSS

@lmmsoft
Copy link
Owner Author

lmmsoft commented Jul 1, 2023

第十一章,手机机器人自动化

hamibot

appium + selenium 应该也是一种方案

@lmmsoft
Copy link
Owner Author

lmmsoft commented Jul 2, 2023

第十二章 使用python库生成自己的rss

Feedgen

@lmmsoft
Copy link
Owner Author

lmmsoft commented Jul 2, 2023

第十三章 企业微信开发

@lmmsoft
Copy link
Owner Author

lmmsoft commented Jul 2, 2023

第十四讲 微博爬虫

@lmmsoft
Copy link
Owner Author

lmmsoft commented Jul 2, 2023

第十五讲 事件触发器

@lmmsoft
Copy link
Owner Author

lmmsoft commented Jul 4, 2023

第十六讲 手机远程控制

  • 用途,控制手机,方便做手机上的开发等,hamibot 内置了很多搞钱脚本。
  • 手机爬虫,现在是抓取部分网站很重要的方法(用手机,还要定期消费)

相关软件

  • 付费:todesk
  • 付费:向日葵
  • 付费:hamibot
  • 免费: scrcpy (screen copy)

对比文章

scrcpy

MacOS 安装

brew install android-platform-tools
  • 我本地是用 Android Studio 装过 android sdk 的,改下 path 即可
  • open ~/.bash_profile 或者 open ~/.zprofile 我用 zsh 就是后者
  • 最后一行 export PATH="$PATH:/Users/lmm333/Library/Android/sdk/platform-tools" 注意双引号
  • 保存后 source ~/.bash_profile 或者 source ~/.zprofile 或者重启终端

@lmmsoft
Copy link
Owner Author

lmmsoft commented Jul 6, 2023

第十七讲 部署 self Read it later omnivore

-更现代, 有 web + iOS app + Android app

@lmmsoft
Copy link
Owner Author

lmmsoft commented Jul 14, 2023

第九章 浏览器插件

目的:全面拥抱,上网随时用 ChatGPT,被动使用 + 比较容易的主动

插件列表(用过很多,以下是推荐的,都是我高频使用的)

  • monica
  • Glarity
  • 沉浸式翻译
  • 其他:rss的,上面讲过了

Monica

  • 非常好用的划词搜索,划词后可以“翻译”,“解释”,“快捷写作等”
  • 只能使用官方的API,免费的每天30次,基本够用了

Glarity

  • 搜索结果页自动摘要总结,youtube 等自动总结
  • 可以用 ChatGPT webapp(后台调用ChatGPT网页,相当于白嫖3.5 或最大化4.0了)
  • 页可以用 OpenAI / Azure 的 API
  • 我的场景:英文的搜索页面,github页面等,自动出中午摘要,高效!
  • TBD:支持更多页面场景,借助它优化 ttrss 的文章页?

@lmmsoft
Copy link
Owner Author

lmmsoft commented Jul 14, 2023

第二十一章 个人微信机器人方案收集

@lmmsoft
Copy link
Owner Author

lmmsoft commented Jul 16, 2023

第二十二章 语言输入 + AI 优化

参考文章

prompt = f"""
Your task is to clean the content in the text to make it smoother.
This content is about xxxxxx.
You need to remove the modal particle and remove the repeated words.
When the sentences are incomplete and the words do not conform to the overall meaning of the context, you need to make appropriate supplements and modifications according to the meaning of the context.

perform the following actions:
1 - remove all newlines.
2 - Browse the content to understand the meaning of this text.
3 - Remove modal particles and unnecessary repetition.
4 - Output the modified content.


I don't need you to summarize, you just need to clean up the content.
Note that you can only modify, add or subtract words, but not add, delete or change sentences.
Clean the text below, delimited by triple backticks. 
Return your answer in Chinese

Text: ```{texts[i]}```
"""

@lmmsoft
Copy link
Owner Author

lmmsoft commented Oct 6, 2023

第二十三章 MySQL双向同步

@lmmsoft
Copy link
Owner Author

lmmsoft commented Jan 4, 2024

第八章,续,搭建 wallabag

  • docker-compose 方案,在PrivateWiki里
  • mysql/pg/sqlite,最后选了mysql
  • redis可选

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant