MoreRSS

site iconNoise修改

开发者,开发了Rss-Translation(众多RSS翻译项目之一)。
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

Noise的 RSS 预览

两个高度完善的智能化小红书运营工具

2025-01-03 10:00:00

hs

前言:这是两个高度完善的小红书运营工具,已完成商业化进度,功能包括提供完全免费使用的套餐及额外的pro套餐,可在编写文案、自动评论、发布、养号、发布等等带来强大的辅助,值得推荐!

一、Reditor-红薯编辑器

笔记编辑、排版、内容检测、效果预览,一站式搞定,它是专为编辑笔记类内容(如:小红书、公众号图文模式、闲鱼、soul)而生的编辑器。为了提高文字创作者的排版效率、提升美观度和增强内容适读性。

官网:https://reditorapp.com

文档:https://help.reditorapp.com

基础功能

🚫 敏感词检测

👐 超大编辑区域

👁 笔记预览

📑 一键复制

🗂 分组管理

🔍 快捷搜索

📦 笔记容量无限制

🔄 多端同步

高级功能

🤖️ AI创作助手

⬇️ Markdown

👀 排版主题

🧩 笔记碎片

📄 笔记模板

#️⃣ 话题插入

😀 Emoji分组

二、自动薯-小红书自动化助手

这是一个通过谷歌浏览器插件运行的自动化程序,包括Ai智能评论、点赞、关注 一键提升账号活跃度

官网:https://shinewaycargo.com/xhs-auto/

功能预览

预览图1预览图2预览图3

核心功能

🤖 智能浏览

  • 自动滚动浏览内容
  • 模拟真实用户行为
  • 自定义滚动间隔
  • 灵活设置停留时长

💬 智能互动

  • 概率控制评论系统
  • 自动化互动提高效率
  • 智能防重复机制
  • 关键词精准过滤

❤️ 数据管理

  • 自动记录互动笔记
  • 完整历史记录导出
  • 便捷的数据分析
  • 实时状态监控

⚙️ 灵活配置

  • 自定义互动参数
  • 点赞功能开关
  • 互动频率设置
  • 关键词过滤配置

特点

智能化运营

  • 灵活的时间控制

    自定义滚动间隔和停留时长,完全掌控浏览节奏

  • 智能概率系统

    精准控制评论频率,模拟真实用户行为

  • 自动化效率

    智能处理重复性任务,大幅提升运营效率

安全可控

  • 内置安全机制

    智能频率限制,确保账号安全

  • 内容质量把控

    支持关键词过滤,确保互动内容相关性

  • 防重复保护

    自动记录已互动内容,避免重复操作

便捷管理

  • 简洁操作界面

    直观的设计,无需复杂设置

  • 数据分析支持

    完整的数据导出功能,助力运营决策

  • 实时状态监控

    随时掌握运行状态,及时调整策略

podman-跨平台Docker桌面程序

2025-01-03 10:00:00

podman

Podman 是一款无守护程序的开源 Linux 原生工具,同时GUI支持WIN、MAC,旨在使用开放容器计划 (OCI容器容器映像轻松查找、运行、构建、共享和部署应用程序,Podman 控制下的容器可以由 root 或非特权用户运行。Podman 使用 libpod 库管理整个容器生态系统,包括 Pod、容器、容器镜像和容器卷。Podman 专注于帮助您维护和修改 OCI 容器映像的所有命令和功能,例如拉取和标记。它允许您在生产环境中创建、运行和维护这些容器和容器镜像。

官网:https://container-desktop.com

安装说明

你可以通过官网下载适用于WIN或mac的GUI程序

或者

可以从 Podman.io 网站下载

通过 Brew 安装

如果您确实希望使用 Brew,则必须首先安装 Homebrew。一旦您 已设置 brew,您可以使用命令安装 Podman

1
brew install podman

安装后,您需要创建并启动您的第一台 Podman 计算机:

1
2
podman machine init
podman machine start

然后,您可以使用以下方法验证安装信息:

1
podman info

运行示例容器

此示例容器将运行一个非常基本的 httpd 服务器(名为 basic_httpd),该服务器仅提供其索引 页。

1
podman run --name basic_httpd -dt -p 8080:80/tcp docker.io/nginx

由于容器在分离模式下运行,由命令中的 -d 表示,因此 Podman 将在容器 ID 运行后打印容器 ID。请注意,我们使用端口转发是为了能够 访问 HTTP 服务器。要成功运行,至少需要 slirp4netns v0.3.0。podman run

列出正在运行的容器

Podman ps 命令用于列出正在创建和正在运行的容器。

1
podman ps

注意:如果将 -a 添加到 ps 命令,Podman 将显示所有容器。

检查正在运行的容器

您可以“检查”正在运行的容器的元数据和有关自身的详细信息。我们甚至可以使用 inspect 子命令查看分配给容器的 IP 地址。由于容器在无根模式下运行,因此不会分配 IP 地址,并且该值将在 inspect 的输出中列为 “none”。

1
2
3
podman inspect basic_httpd | grep IPAddress\":
"SecondaryIPAddresses": null,
"IPAddress": "",

测试 httpd 服务器

由于我们没有容器的 IP 地址,我们可以测试主机之间的网络通信 操作系统和使用 Curl 的容器。以下命令应显示我们的 容器化 httpd 服务器。

1
curl http://localhost:8080

查看容器的日志

您也可以使用 Podman 查看容器的日志:

1
2
3
4
5
6
podman logs <container_id>
10.88.0.1 - - [07/Feb/2018:15:22:11 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.55.1" "-"
10.88.0.1 - - [07/Feb/2018:15:22:30 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.55.1" "-"
10.88.0.1 - - [07/Feb/2018:15:22:30 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.55.1" "-"
10.88.0.1 - - [07/Feb/2018:15:22:31 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.55.1" "-"
10.88.0.1 - - [07/Feb/2018:15:22:31 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.55.1" "-"

查看容器的 PID

并且你可以用 top 在容器中观察 httpd pid。

1
2
3
4
podman top <container_id>
UID PID PPID C STIME TTY TIME CMD
0 31873 31863 0 09:21 ? 00:00:00 nginx: master process nginx -g daemon off;
101 31889 31873 0 09:21 ? 00:00:00 nginx: worker process

对容器进行检查点

对容器执行检查点操作会停止容器,同时将容器中所有进程的状态写入磁盘。 这样,容器可以在以后恢复并继续运行,与 检查站。此功能需要在系统上安装 CRIU 3.11 或更高版本。 此功能不支持作为无根功能;因此,如果您想尝试一下,则需要使用相同的命令但使用 sudo 以 root 身份重新创建容器。

要对容器进行检查点操作,请使用:

1
sudo podman container checkpoint <container_id>

还原容器

只能对以前检查点的容器恢复容器。还原的容器将 continue 在它被执行检查点的同一时间点运行。 要恢复容器,请使用:

1
sudo podman container restore <container_id>

还原后,容器将像执行检查点之前一样再次响应请求。

1
curl http://<IP_address>:8080

迁移容器

要将容器从一个主机实时迁移到另一个主机,容器会在源上执行 checkpoint 操作 系统,传输到目标系统,然后在目标系统上恢复 系统。传输 checkpoint 时,可以指定 output-file。

在源系统上:

1
2
sudo podman container checkpoint <container_id> -e /tmp/checkpoint.tar.gz
scp /tmp/checkpoint.tar.gz <destination_system>:/tmp

在目标系统上:

1
sudo podman container restore -i /tmp/checkpoint.tar.gz

还原后,容器将像执行检查点之前一样再次响应请求。这 容器将继续在目标系统上运行的时间。

1
curl http://<IP_address>:8080

停止容器

要停止 httpd 容器:

1
podman stop <container_id>

您还可以使用 ps 子命令检查一个或多个容器的状态。在这种情况下,我们应该 使用 -a 参数列出所有容器。

1
podman ps -a

移除容器

要删除 httpd 容器:

1
podman rm <container_id>

您可以通过运行 podman ps -a 来验证容器的删除。

AigcPanel-跨平台一站式AI数字人系统

2025-01-03 10:00:00

AigcPanel 是一个简单易用的一站式AI数字人系统,小白也可使用。 支持视频合成、声音合成、声音克隆,简化本地模型管理、一键导入和使用AI模型。

项目地址:https://github.com/modstart-lib/aigcpanel

img

功能特性

  • 支持视频数字人合成,支持视频画面和声音换口型匹配
  • 支持语音合成、语音克隆,多种声音参数可设置
  • 支持多模型导入、一键启动、模型设置、模型日志查看
  • 支持国际化,支持简体中文、英语
  • 支持多种模型一键启动包:MuseTalkcosyvoice

功能

视频合成

img

语音克隆

img

语音合成

img

模型管理

img

模型添加

img

模型日志

img

关于

img

安装使用

Windows

安装完成后,打开软件,下载模型一键启动包,即可使用。

技术栈

  • electron
  • vue3
  • typescript

本地运行开发

仅在 node 20 测试过

1
2
3
4
5
6
# 安装依赖
npm install
# 调试运行
npm run dev
# 打包
npm run build

苹果破解越狱合集(二)巨魔等不了?可以试试定制安装,支持任意苹果系统

2024-12-31 10:00:00

前言

这是对此前文章的续篇,同时也是对苹果越狱软件安装的科普,此外我们最近和一位开发者合作了,支持个人证书的“优惠”定制秒出,稳定带售后,支持独立软件源,此后会单独出一个IPA下载专栏,请留意

自签名安装-支持所有系统

不越狱通过自签工具安装软件你需要有P12证书,通过证书对APP签名即可安装

常见的签名工具包括:全能签https://qnq.ipadump.com/#/home/qnq?cType=a12 、万能签https://sign.wnqapp.com/ios/ 、轻松签https://esign.yyyue.xyz 、爱思助手https://www.i4.cn/ 、NB助手http://8.218.233.56 、牛蛙助手https://ios222.com

以爱思助手为例

找到工具箱-点击IPA签名

找到导入证书,选择证书导入

1735648162729

导入IPA包进行签名并安装

软件源

谈到软件源就不得不提下魔盒app了

它涵盖了苹果及安卓端的越狱破解,是个全能APP商店

官网:https://app.xkcc.vip (需要自签)安装后会提示输入推广码

你可以点击https://app.xkcc.vip/invitation_register?invitation_code=KIklg4ZV

或输入KIklg4ZV来打开软件,如果你之前购买过证书(私聊)可提供使用指导及赠送

巨魔-越狱用户的专利

作为玩机者对巨魔一类的想必也不陌生了,特别是巨魔商店 lite的发布,也是玩家一直关注的

截止发文,越狱支持iOS14 - 16.6.1 & iOS17.0 Beta系统

安装巨魔可以通过自签工具安装,也可通过https://sidestore.io安装使用

巨魔2代安装

必备条件1:

  • 必须有一台电脑,可以是 WindowsMacOSLinux 三种不同的操作系统都可以。

安装原理

TrollRestore是安装巨魔商店的必备工具,它将用 TrollHelper 二进制文件替换您选择的系统应用,然后您可以打开并使用它安装巨魔商店TrollStore。TrollRestore将使用备份将二进制文件还原到系统应用容器。

安装教程

安装前必须的准备步骤:

  1. 关闭 “查找我的 iPhone”
  2. 确保手机上有 提示APP

WIN

TrollRestore:https://noise.lanzoul.com/iaOkN2jjlisd

  1. 确保电脑安装了 爱思助手,或者已经安装 iTunes
  2. 连接设备,并且在 iOS 设备上点击信任,同意连接电脑。并且确保,查找我的 iPhone 已关闭!
  3. 双击打开 TrollRestore 运行,当它提示你输入要安装的系统应用名字时,输入:Tips
  4. 完成后,iOS 设备将会重启。
  5. 步骤还没有完成,进入系统之后,找到 “提示” 应用程序,点击 install TrollStore,开始安装巨魔2
  6. 安装完成,现在你可以尽情享受巨魔商店了。
  7. 返回桌面,打开桌面蓝色巨魔图标 Trollstore,自动安装 ldid,如果没有,底部 Setting 点进去,点击 install ldid
  8. 往下滑动,点击 install Persitence Helper,选择 Tips,这步是安装巨魔永久性助手,万一巨魔白图标或者打不开,还可以打开提示APP,重新安装巨魔(这步必须做)。

MAC

TrollRestore_英特尔芯片:https://noise.lanzoul.com/iiqbZ2jjlqfi

TrollRestore_M1、M2芯片:https://noise.lanzoul.com/iNws92jjm0xg

  1. 下载上面的 TrollRestore 工具。

  2. 连接你的 iOS 设备到电脑上,并且在 iOS 设备上点击信任,同意连接电脑。并且确保:iPhone 设置里面,iCloud 里面,查找我的 iPhone 已关闭!

  3. 打开 Mac 电脑上的终端,把 TrollRestore 拖入到终端当中,回车运行。

  4. 当它提示要求你输入要安装的系统应用名字时,输入:Tips

    如果你是不支持的 iOS 版本,它会提示类似:iOS 14.4 (18D52) is not supported

  5. 完成后,iOS 设备将会重启。

  6. 步骤还没有完成,进入系统之后,找到 “提示” 应用程序,点击 install TrollStore,开始安装巨魔商店2。

  7. 安装完成,现在你可以尽情享受巨魔商店了。

  8. 返回桌面,打开桌面蓝色巨魔图标 Trollstore,自动安装 ldid,如果没有,底部 Setting 点进去,点击 install ldid

  9. 往下滑动,点击 install Persitence Helper,选择 Tips,这步是安装巨魔永久性助手,万一巨魔白图标或者打不开,还可以打开提示APP,重新安装巨魔(这步必须做)。

linux

TrollRestore_Linux:https://noise.lanzoul.com/i87UR2jjmaqj

  1. 下载上面的 TrollRestore 工具,确保已经安装 Python3,如果没有,使用命令:

    1
    sudo apt install python3 python3-pip libssl-dev build-essential usbmuxd...
  2. 连接你的 iOS 设备到电脑上,并且在 iOS 设备上点击信任,同意连接电脑。并且确保:iPhone 设置里面,iCloud 里面,查找我的 iPhone 已关闭!

  3. 打开 Linux 电脑上的终端,使用命令:

    1
    cd 把TrollRestore_Linux目录拖入到终端当中...
  4. 继续在终端输入:

    1
    pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/...

    安装必须依赖。(这里使用清华大学源,加速下载)

  5. 安装完依赖之后,在终端输入:

    1
    python3 trollstore.py...
  6. 当它提示要求你输入要替换的系统应用名字时,输入:Tips。

    如果是不支持的 iOS 版本,它会提示类似:iOS 14.4 (18D52) is not supported。

  7. 完成后,iOS 设备将会重启。

  8. 步骤还没有完成,进入系统之后,找到 “提示” 应用程序,点击 install TrollStore,开始安装巨魔商店2。

  9. 安装完成,现在你可以尽情享受巨魔商店了。

  10. 返回桌面,打开桌面蓝色巨魔图标 Trollstore,自动安装 ldid,如果没有,底部 Setting 点进去,点击 install ldid。

  11. 往下滑动,点击 install Persitence Helper,选择 Tips,这步是安装巨魔永久性助手,万一巨魔白图标或者打不开,还可以打开提示APP,重新安装巨魔

巨魔lite安装

1,在sileo越狱商店中安装巨魔商店lite。

越狱源:https://havoc.app/package/trollstorelite

2,打开巨魔商店lite,点击右下角设置,选择第四个蓝色选项“transfer X troll store APP”,开始同步巨魔商店中的数据。

数据同步完成后,点击第二个蓝色选项“Refresh app registrations”

常用软件站

此前也已在导航站收录过一些IPA软件站点了,你可以前往查看

  • IPA之家
    地址: https://ios.tinstu.com
    介绍: 提供ipa资源下载服务,为您收集最全iphone,ipad,ipod软件的ipa文件,ios系统的资源ipa下载

  • 魔盒软件商店
    地址: https://app.xkcc.vip
    介绍: 提供安卓及ipa资源下载服务,有定期更新插件及补丁等

  • 6Z
    地址: https://blog.6ziz.com
    介绍: 6z由intz智能助理引导,全面覆盖苹果ios、iphone和ipad教程、工具&软件和插件源、ipa下载与安装指南。同时,提供新出的手机资讯及新款手机推荐。

  • Decrypt IPA Store
    地址: https://decrypt.day
    介绍: 非常容易找到并下载应用程序的最新解密 ipa

  • iPA库
    地址: https://diyios.com
    介绍: 专注于iOS软件资源下载,包括游戏iPA、软件应用iPA、破解版iPA、砸壳iPA等资源的下载,做最稳定最优秀的iOS系列软件下载网站。

  • 另一个iPA库
    地址: https://www.ipa.pub/
    介绍: 在线iOS软件资源下载,包括游戏iPA、软件应用iPA、破解版iPA、砸壳iPA等资源的下载

  • iPA资源站
    地址: https://www.ipapark.com
    介绍: 提供iPA资源下载服务,为您收集最全iPhone,iPad,iPod软件的IPA文件,IOS系统的资源ipa下载

  • ipa软件下载|ios软件下载
    地址: https://ipadump.com
    介绍: 中文ipa文件下载网站, 提供在线iOS应用下载服务,为您搜集最全、最专业的iPhone软件与IPA文件

  • MACPA
    地址: https://macpa.cn
    介绍: MACPA是一个专为IPA砸壳解密而诞生的平台,提供IOS手机软件应用IPA包的砸壳解密及相关资源的下载、安装、教程等服务,这里是一个优质的砸壳软件社区,在这里你可以找到与你拥有同样兴趣的好朋友一起游玩。

  • appdb
    地址: https://appdb.to
    介绍: iOS、iPadOS和MacOS的最大独立市场。免费独立发布您的应用程序。安全、私密地安装您想要的应用程序。安装和下载iOS、iPadOS、MacOS应用程序和游戏.

  • NB全能助手
    地址: http://8.218.233.56
    介绍: NB全能助手

  • ipa在线签名工具
    地址: https://sign.ipadump.com
    介绍: ipa在线签名工具

  • 万能签
    地址: https://sign.wnqapp.com/ios/
    介绍: 万能签官方端

  • 牛蛙助手
    地址: https://ios222.com
    介绍: 牛蛙助手官网-牛蛙助手是一款专业的ios移动端必备的工具,牛蛙助手免费为苹果用户提供:ios移动端免越狱使用apple id签名,ios移动端免越狱全局修改gps定位信息,牛蛙,牛蛙助手,ios222,牛蛙神器

  • 轻松签
    地址: https://esign.yyyue.xyz
    介绍: 轻松签

  • iOSIPA软件网
    地址: https://www.88ipa.com/
    介绍: 立志做全球最大的IPA分享网站, 提供在线iOS应用下载服务,为您搜集最全、最专业的iPhone,iPad,iPod软件与IPA文件, 支持iOS4,iOS5,iOS6软件,iOS7软件,iOS8,iOS9软件在线安装以及IPA文件下载。

  • iPA商店
    地址: https://ipa.store/
    介绍: iPA商店致力于iOS10以上的iPA资源下载和分享,包括游戏iPA、软件应用IPA、破解版iPA、砸壳IPA等资源的分享和下载,做最稳定最优秀的iPA下载网站。

  • iOS CodeVN
    地址: https://ios.codevn.net
    介绍: 适用于 iPhone/iPad 的免费 iPA 存储库

使用python-rpa小红书自动化发文

2024-12-31 10:00:00

介绍

xhs_ai_publisher 是一个自动化工具,专为在小红书平台上发布文章而设计。该项目结合了图形用户界面与自动化脚本,利用大模型技术生成内容,并通过浏览器自动登录和发布文章,旨在简化内容创作与发布流程。

项目地址:https://github.com/BetaStreetOmnis/xhs_ai_publisher

软件界面效果

功能特点

  • 用户登录:通过手机号登录小红书账户,支持自动保存和加载登录凭证。
  • 内容生成:利用大模型技术自动生成文章标题和内容。
  • 图片管理:自动下载并预览封面图和内容图片。
  • 文章预览与发布:在浏览器中预览生成的文章,并进行最终发布。

主要模块

easy_ui.py

该模块使用 tkinter 构建图形用户界面,提供以下功能:

  • 登录界面:输入手机号进行登录。
  • 内容输入:输入自定义内容,触发内容生成。
  • 内容生成:调用后端API生成文章标题和内容,并下载相关图片。
  • 图片预览:显示生成的封面图和内容图片。
  • 文章预览与发布:在浏览器中预览并发布生成的文章。

write_xiaohongshu.py

该模块使用 selenium 实现对小红书平台的自动化操作,包括:

  • 登录功能:自动完成登录流程,支持使用Cookies保存会话。
  • 文章发布:自动填写文章标题、内容,并上传图片,完成文章发布。

xiaohongshu_img.py

该模块负责与大模型接口交互,生成文章标题和内容,并获取相关图片URL。

安装与使用

  1. 安装依赖

    确保已安装 Python 3.12,然后运行:

    1
    pip install -r requirements.txt
  2. 配置参数

    修改 write_xiaohongshu.py 中的登录手机号和其他配置项。

  3. 运行程序

    运行用户界面:

    1
    python easy_ui.py
  4. 使用流程

    • 启动程序后,输入手机号登录小红书账户。
    • 输入需要生成内容的关键词或描述,点击“生成内容”。
    • 程序将自动生成文章标题和内容,并下载相关图片。
    • 预览生成的内容和图片,确认无误后,点击“预览发布”进行发布。

    注意事项

    • 确保已安装 Chrome 浏览器,并下载对应版本的 ChromeDriver
    • 登录过程中需要输入验证码,请确保手机畅通。
    • 发布文章前,请核对生成的内容和图片,以确保符合发布要求

PeterCat-在任意网站内接入AI知识库智能答疑机器人

2024-12-23 13:00:00

介绍

PeterCat是专为社区维护者和开发者打造的智能答疑机器人解决方案。

官网:https://petercat.ai

Github:https://github.com/petercat-ai/petercat

banner

特性

它提供对话式答疑 Agent 配置系统、自托管部署方案和便捷的一体化应用 SDK,让您能够为自己的 GitHub 仓库一键创建智能答疑机器人,并快速集成到各类官网或项目中, 为社区提供更高效的技术支持生态。

对话即创造

仅需要告知你的仓库地址或名称,PeterCat 即可自动完成创建机器人的全部流程

对话即创造

知识自动入库

机器人创建后,所有相关Github 文档和 issue 将自动入库,作为机器人的知识依据

知识自动入库

多平台集成

多种集成方式自由选择,如对话应用 SDK 集成至官网,Github APP一键安装至 Github 仓库等

官网

使用效果

如何接入

使用官方实例接入

  • 首先登录官网后选择工作台,创建自己的空间
  • 创建项目进入配置,可以手动和对话配置
  • 复制 Token后选择保存部署,填写域名提交给官方审核

1734939987253

审核通过(将你的域名加入白名单)后,可以选择不同的代码接入

参考文档:https://github.com/petercat-ai/petercat/blob/main/assistant/src/Assistant/index.md#api

代码引入

1
npm install @petercatai/assistant
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import { Assistant } from '@petercatai/assistant';
import '@petercatai/assistant/style';

const YourPetercataiAssistant = () => {
return <Assistant token="< 你的 token >" showBubble={true} isVisible={false} apiDomain="https://api.petercat.ai" />;
};

function App() {
const [count, setCount] = useState(0);

return (
<>
{/* ... */}
<YourPetercataiAssistant />
</>
);
}

其他

UMD 接入

petercat 同时支持 UMD 的接入方式

  1. external 和 UMD 加载资源
1
2
3
4
5
6
7
8
9
10
11
// example for umi project
// .umirc.ts
export default {
externals: {
react: 'React',
'react-dom': 'ReactDOM',
antd: 'antd',
dayjs: 'dayjs',
'lottie-web': 'lottie',
},
};

PHP+HTML页面引入

1
2
3
4
5
6
7
8
9
<head>
<script src="https://cdn.jsdelivr.net/npm/react/umd/react.development.js"></script>
<script src="https://cdn.jsdelivr.net/npm/react-dom/umd/react-dom.development.js"></script>
<script src="https://cdn.jsdelivr.net/npm/dayjs/dayjs.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/antd/dist/antd.js"></script>
<script src="https://cdn.jsdelivr.net/npm/lottie-web/build/player/lottie.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@petercatai/[email protected]/dist/umd/assistant.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@petercatai/[email protected]/dist/umd/assistant.min.css">
</head>

加载 PetercatLUI

1
2
3
4
5
6
7
8
9
10
11
<body>
...
<script>
PetercatLUI.initAssistant({
apiDomain: 'https://api.petercat.ai',
token: 'your-token',
starters: ['介绍下这个项目', '查看贡献指南', '我该怎样快速上手'],
clearMessage: true
});
</script>
</body>

私有化部署

部署方案支持:AWS + Supabase

自托管

本地安装

第一步:克隆仓库

将项目仓库克隆到本地计算机:

1
git clone https://github.com/petercat-ai/petercat.git

第二步:安装依赖

使用 Yarn 安装所有必需的依赖项:

1
yarn run bootstrap

第三步:在本地启动 supabase

参考 https://supabase.com/docs/guides/self-hosting/docker#installing-and-running-supabase

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Get the code
git clone --depth 1 https://github.com/supabase/supabase

# Go to the docker folder
cd supabase/docker

# Copy the fake env vars
cp .env.example .env

# Pull the latest images
docker compose pull

# Start the services (in detached mode)
docker compose up -d

第四步:复制 .env.example 文件

复制客户端环境配置示例文件:

1
cp client/.env.local.example client/.env

复制服务器环境配置示例文件:

1
cp server/.env.local.example server/.env

打开 server/.env 文件,把 SERVICE_ROLE_KEY 字段改成从 supabase 的 docker/.env 文件的 SERVICE_ROLE_KEY 的值

第五步:初始化数据库结构

第五步 5.1:导航到 Migrations 文件夹

导航到 migrations 文件夹,准备进行数据库设置:

1
cd migrations

第五步 5.2:安装 Supabase CLI

按照 Supabase 入门指南 中的说明安装 Supabase CLI:

1
brew install supabase/tap/supabase

第五步 5.3:执行迁移

将数据库迁移应用到您的远程数据库:

1
2
# postgres db url 在第四步的 .env 文件中可以找到
supabase db push --db-url "postgres://postgres.your-tenant-id:[email protected]:5432/postgres"

如果成功,您将看到类似以下的输出:

1
2
3
4
5
6
7
Connecting to remote database...
Do you want to push these migrations to the remote database?
• 20240902023033_remote_schema.sql

[Y/n] Y
Applying migration 20240902023033_remote_schema.sql...
Finished supabase db push.

第六步:启动服务器

使用以下命令启动服务器:

1
yarn run server:local

通过在浏览器中打开 http://127.0.0.1:8001/api/health_checker 检查服务器是否正在运行。

第七步:启动客户端

使用以下命令启动客户端:

1
yarn run client

您可以通过在浏览器中打开 http://127.0.0.1:3000 来检查客户端服务。

在 AWS 上部署 Petercat:准备步骤

在 AWS 上部署 Petercat 之前,请确保您已完成以下准备工作:

  • 开通 AWS 账户。
  • 本地安装 Docker。

示例:在亚太区 - 新加坡(ap-southeast-1)本地部署您的服务

第一步:安装 AWS CLI 和 SAM CLI

  1. 安装 AWS CLI 工具。
  2. 访问配置文档并配置您的 AWS CLI:AWS CLI 配置指南
  3. 安装 SAM CLI 工具。
  4. 访问 SAM CLI 安装指南

第二步:登录 AWS

使用单点登录 (SSO) 会话登录您的 AWS 账户:

1
aws sso login --sso-session $YOUR_PROFILE_NAME

第三步:复制并修改配置文件

运行以下命令复制示例配置文件:

1
cp .aws/petercat-example.toml .aws/petercat-ap-southeast.toml

第四步:更新 .toml 文件

打开 .toml 文件并更新必要的键值。您可以使用任何文本编辑器,例如 vimemacsvscodenano

1
vim .aws/petercat-ap-southeast.toml

YOUR_REGION 替换为 ap-southeast-1,并将 YOUR_STACK_NAME 替换为您的自定义栈名称,例如 petercat-selfhosted

1
2
3
4
5
6
7
8
9
version = 0.1
[default.deploy.parameters]
stack_name = "petercat-selfhosted"
resolve_s3 = true
s3_prefix = "petercat-selfhosted"
region = "ap-southeast-1"
confirm_changeset = true
capabilities = "CAPABILITY_IAM"
disable_rollback = true

第五步:本地构建 Docker 镜像

在项目的根目录中运行以下命令。根据您计算机的配置,这一步可能需要一些时间:

1
sam build --use-container --config-file .aws/petercat-ap-southeast.toml

构建完成后,您应该会看到以下输出:

1
2
3
4
5
6
7
8
9
10
11
Build Succeeded

Built Artifacts : .aws-sam/build
Built Template : .aws-sam/build/template.yaml

Commands you can use next
=========================
[*] Validate SAM template: sam validate
[*] Invoke Function: sam local invoke
[*] Test Function in the Cloud: sam sync --stack-name {{stack-name}} --watch
[*] Deploy: sam deploy --guided

第六步:加载环境变量并开始部署

在根目录中,执行以下命令以加载环境变量:

1
source server/.env

然后,运行以下命令进行部署:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
sam deploy \
--guided \
--no-confirm-changeset \
--config-file .aws/petercat-ap-southeast.toml \
--parameter-overrides APIUrl=$API_URL \
WebUrl=$WEB_URL \
AWSSecretName=$X_GITHUB_SECRET_NAME \
S3TempBucketName=$S3_TEMP_BUCKET_NAME \
GitHubAppID=$X_GITHUB_APP_ID \
GithubAppsClientId=$X_GITHUB_APPS_CLIENT_ID \
GithubAppsClientSecret=$X_GITHUB_APPS_CLIENT_SECRET \
OpenAIAPIKey=$OPENAI_API_KEY \
GeminiAPIKey=$GEMINI_API_KEY \
SupabaseServiceKey=$SUPABASE_SERVICE_KEY \
SupabaseUrl=$SUPABASE_URL \
TavilyAPIKey=$TAVILY_API_KEY \
APIIdentifier=$API_IDENTIFIER \
FastAPISecretKey=$FASTAPI_SECRET_KEY \
Auth0Domain=$AUTH0_DOMAIN \
Auth0ClientId=$AUTH0_CLIENT_ID \
Auth0ClientSecret=$AUTH0_CLIENT_SECRET

第七步:检查您的服务

查看 CloudFormation 部署栈的输出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
------------------------------------------------------------------------------------------------------------------------------------
Outputs
------------------------------------------------------------------------------------------------------------------------------------
Key FastAPIFunction
Description FastAPI Lambda Function ARN
Value arn:aws:lambda:ap-southeast-1:654654285942:function:petercat-selfhosted-FastAPIFunction-x0bez5v1EMDL

Key SQSSubscriptionFunction
Description SQS Subscription Function Lambda Function ARN
Value arn:aws:lambda:ap-southeast-1:654654285942:function:petercat-selfhosted-SQSSubscriptionFunction-ghluUSulMO4y

Key FastAPIFunctionUrl
Description Function URL for FastAPI function
Value https://itebdgout4h33aqpy2ygxaedgm0nlnys.lambda-url.ap-southeast-1.on.aws/

Key SQSSubscriptionFunctionUrl
Description Function URL for SQS Subscription function
Value https://q7kpxukbpgxkkjldgnvvbc6dyi0akzuk.lambda-url.ap-southeast-1.on.aws/
------------------------------------------------------------------------------------------------------------------------------------

使用 curl 测试您的服务:

1
curl https://itebdgout4h33aqpy2ygxaedgm0nlnys.lambda-url.ap-southeast-1.on.aws/api/health_checker

环境变量

本项目需要进行环境变量进行设置:

Client

1
.env.local
环境变量 类型 描述 示例
NEXT_PUBLIC_API_DOMAIN 必选 后端服务的 API 域名。 https://api.petercat.ai

Server

1
.env
环境变量 类型 描述 示例
应用基础环境变量
API_URL 必选 后端服务的 API 域名 https://api.petercat.ai
WEB_URL 必选 前端 Web 服务的域名 https://petercat.ai
STATIC_URL 必选 静态资源域名 https://static.petercat.ai
AWS 相关环境变量
X_GITHUB_SECRET_NAME 必选 AWS 托管的 Github 私钥文件名 prod/githubapp/petercat/pem
STATIC_SECRET_NAME 可选 AWS 托管的 CloudFront 签名私钥名称。如果配置了该项,将使用 CloudFront 签名 URL 来保护你的资源。更多信息请参阅 AWS 文档 prod/petercat/static
LLM_TOKEN_SECRET_NAME 可选 AWS 托管的 llm 签名私钥名称。如果配置了该项,petercat 将使用 RSA 算法托管用户的 LLM Token prod/petercat/llm
LLM_TOKEN_PUBLIC_NAME 可选 AWS 托管的 llm 签名公钥名称。如果配置了该项,petercat 将使用 RSA 算法托管用户的 LLM Token prod/petercat/llm/pub
STATIC_KEYPAIR_ID 可选 AWS CloudFront 的 Key Pair ID。如果配置了该项,将使用 CloudFront 签名 URL 来保护你的资源。更多信息请参阅 AWS 文档 APKxxxxxxxx
S3_TEMP_BUCKET_NAME 可选 用于托管 AWS 临时图片文件 S3 的 bucket xxx-temp
SQS_QUEUE_URL 必选 AWS SQS 消息队列 URL https://sqs.ap-northeast-1.amazonaws.com/xxx/petercat-task-queue
SUPABASE 相关 env
SUPABASE_URL 必选 supabase 服务的 URL,可以在这里找到 https://***.supabase.co
SUPABASE_SERVICE_KEY 必选 supabase 服务密钥,可以在这里找到 {{SUPABASE_SERVICE_KEY}}
Auth0 相关 env
AUTH0_DOMAIN 必选 auth0 服务域名,从 auth0 / Application / Basic Information 下获取 petercat.us.auth0.com
AUTH0_CLIENT_ID 必选 auth0 客户端 ID,从 auth0 / Application / Basic Information 下获取 artfiUxxxx
AUTH0_CLIENT_SECRET 必选 auth0 客户端密钥, 从 auth0 / Application / Basic Information 下获取 xxxx-xxxx-xxx
API_IDENTIFIER 必选 auth0 的 API Identifier https://petercat.us.auth0.com/api/v2/
LLM相关的 env
OPENAI_API_KEY 必选 OpenAI 的密钥 sk-xxxx
OPENAI_BASE_URL 可选 API 请求的基础 URL。仅在使用代理或服务模拟器时指定。 https://api.openai.com/v1
GEMINI_API_KEY 可选 Gemini 的密钥 xxxx
TAVILY_API_KEY 必选 Tavily 的密钥 tvly-xxxxx
注册为 Github App 的 env
X_GITHUB_APP_ID 可选 注册为 Github App 时,APPID 123456
X_GITHUB_APPS_CLIENT_ID 可选 注册为 Github App 时,APP 的 Client ID Iv1.xxxxxxx
X_GITHUB_APPS_CLIENT_SECRET 可选 注册为 Github App 时,APP 的 Client 密钥 xxxxxxxx
限流配置
RATE_LIMIT_ENABLED 可选 限流配置是否开启 True
RATE_LIMIT_REQUESTS 可选 限流的请求数量 100
RATE_LIMIT_DURATION 可选 限流的统计时长,单位为分钟 1