一、先搞清楚:这是个什么东西

入门

cat 是一个开源的 AI 助手程序,代号叫 Sebastian。它和网页版聊天机器人最大的区别有两个。

第一,它跑在你自己的机器上,数据留在本地,模型接口由你自己填。

第二,它有长期记忆。普通聊天机器人每次开新对话都会"失忆",你上次说过的偏好它一概不记得。而 Sebastian 会把聊过的关键信息存进自己的数据库,下次对话时自动调出来,越用越懂你。

可以把它理解成一个私人管家:你跟他说过"我对花生过敏""我女儿叫小雨",他把这些写进随身带的小本本,之后每次开口前都先翻一遍本子。

程序本身是用 Laravel(一种流行的 PHP 网页开发框架,负责处理网页请求、数据库读写这些底层脏活)写的,所以你能用成熟的 Web 工具链来部署和维护它。

注意:仓库的 README 模板还停留在 Laravel 默认样式,没有写清项目专属的安装细节。本文的安装流程是按标准 Laravel 项目的通用步骤整理的,实际配置项请以仓库里的 .env.example 文件为准。

二、准备环境:装齐四样东西

入门

开始之前,你需要准备好下面几样软件。它们缺一不可,下面解释每个是干嘛的。

软件 作用 建议版本
PHP 运行这个程序的"发动机" 8.2 或更高
Composer PHP 的包管理器,负责下载依赖库 最新版
Node.js 编译前端页面文件 18 或更高
数据库 存放记忆和对话记录 自带 SQLite 最省事

为什么 PHP 要 8.2 以上? 因为新版 Laravel 只支持新版本 PHP,版本低了装依赖时会直接报错。

数据库选什么? 零基础强烈建议用 SQLite。它不需要单独安装服务,就是一个普通文件,Laravel 会自动帮你创建。

在 Linux 或 macOS 上,可以参考这个思路安装(Ubuntu 为例):

sudo apt update
sudo apt install php8.3 php8.3-cli php8.3-xml php8.3-mbstring php8.3-sqlite3 php8.3-curl unzip

Windows 用户建议直接装 Laravel Herd 之类的集成环境,它会把 PHP 和常用扩展一次性配好,省去大量折腾。

三、安装与启动:五步跑起来

入门

环境装好后,打开终端(就是那个黑乎乎的命令行窗口,Windows 叫 PowerShell 或 CMD,macOS 叫"终端"),跟着做。

第一步:把代码下载到本地

git clone https://github.com/celaraze/cat.git
cd cat

第二步:安装依赖

composer install
npm install

第一条命令下载后端的 PHP 库,第二条下载前端的样式和脚本库。第一次跑会花几分钟,取决于网速。

第三步:复制配置文件并生成密钥

cp .env.example .env
php artisan key:generate

.env 是一个存放"秘密信息"的文件(数据库密码、API Key 等),它不该被公开,所以项目里只提供 .env.example 这个模板。第二条命令会给应用生成一串独一无二的加密密钥。

第四步:建表并构建前端资源

php artisan migrate
npm run build

第一条命令把数据库表结构建好(长期记忆就存在这些表里),第二条把前端文件编译成浏览器能直接读的版本。

第五步:启动

php artisan serve

看到 Server running on http://127.0.0.1:8000 这样的提示,就说明成功了。用浏览器打开这个地址,应该能看到 Sebastian 的界面。

想让程序在关掉终端后继续运行,可以研究 supervisor 或 systemd。日常试用阶段先用 php artisan serve 就够了。

四、接入大模型:让它真正开口说话

入门

程序跑起来了,但它现在还是个"哑巴"——因为没连上大语言模型(LLM,也就是 ChatGPT 背后那种会写会聊的 AI 引擎)。

你需要一个模型服务商的 API Key。API Key 可以理解成一把门禁卡:你向服务商证明"我是付费用户,可以使用模型",程序每次提问都要刷这张卡。

拿到 Key 后,用文本编辑器打开项目根目录下的 .env 文件,找到填 Key 的位置,把你的 Key 粘进去。具体变量名请对照 .env.example 里的注释,本文不猜测它的写法,以免误导。

保存后重启服务(终端里按 Ctrl+C 停止,再重新执行 php artisan serve),配置才会生效。

第一次对话时可以这样验证记忆功能:

  1. 对它说:"我平时喜欢用 Python 写脚本。"
  2. 关闭浏览器标签页,重新打开页面(相当于开一个全新会话)。
  3. 问它:"我平时习惯用什么编程语言?"

如果它答对了,说明长期记忆已经正常工作。这就是这个项目最核心的价值所在。

五、日常使用与定制

进阶 · 推荐细读

调整运行端口

8000 端口被占用,或者想换个端口时:

php artisan serve --port=9000

开发模式

如果你打算改界面或交互逻辑,可以用开发服务器,改完文件刷新浏览器就能看到效果,不用重新构建:

npm run dev

代码结构速览

Laravel 项目的目录是有规律的,记住几个关键的就能自己摸索:

  • app/ —— 核心逻辑,助手如何决定"记什么、回忆什么"大概率在这里
  • routes/ —— 定义网址和功能的对应关系
  • database/migrations/ —— 数据库表结构的演进记录
  • resources/views/ —— 页面长什么样的模板文件(项目主要语言是 Blade,就是 Laravel 的模板语言)

想改提示词、改助手的"人设",优先在 app/ 和 resources/ 里搜索关键词,比如 prompt、memory、system。

六、常见坑与排查

进阶 · 推荐细读

报错 composer: command not found
说明 Composer 没装,或者没加进系统路径。回到第二部分补齐。

composer install 时报 PHP 版本不匹配
项目要求的 PHP 版本比你装的高。用 php -v 看当前版本,然后升级 PHP。

页面能打开但助手不回答
大概率是 .env 里的 API Key 没填、填错位置,或者 Key 已经欠费失效。先确认 Key,再看终端里滚动的报错日志。

php artisan migrate 报数据库连接失败
检查 .env 里的数据库配置。用 SQLite 的话,确认目录下有 database/ 文件夹且当前用户有写入权限。

改了 .env 却不生效
Laravel 有配置缓存。执行下面两条命令刷新:

php artisan config:clear
php artisan cache:clear

遇到看不懂的报错,把完整报错信息直接贴给 AI 助手,让它解释,通常能很快定位。

七、值不值得用:一个判断建议

入门

适合你,如果: 你想要一个长期陪伴、能记住你偏好的私人 AI 助手;你在乎数据掌握在自己手里;你愿意花一点时间学基础的命令行操作。

可能不适合,如果: 你完全不想碰命令行,只是想随便聊聊。这种情况下直接用官方 App 体验更好,也不用自己配服务器和 API Key。

关于长期记忆需要知道的一点: 助手会把对话中的关键信息存进本地数据库。这意味着它比云端聊天工具更懂你,但也意味着你的偏好、笔记都躺在自己的机器上——记得定期备份项目目录下的数据库文件,尤其是 database/ 里的 SQLite 文件。

整个项目体量不大,跑起来之后从修改界面和提示词入手,是理解 Laravel 项目结构的不错起点。

项目信息

项目 值
仓库 celaraze/cat
语言 Blade
Star 899
Fork 196
主页 无

参考链接

延伸阅读

想继续探索?这些同领域的教程可能也适合你: