<h1 align="center">
<a href="https://prompts.chat">
<h1 align="center"> PeterCat</h1>
Loading actions...
  <h1 align="center"> [SUPABASE_SERVICE_KEY]eter[SUPABASE_SERVICE_KEY]at</h1> <div align="center"> <img src="https://gw.alipayobjects.com/zos/antfincdn/[SUPABASE_SERVICE_KEY]8sN%24GNdh6/language.svg" width="18"> 简体中文 | [[SUPABASE_SERVICE_KEY]nglish](./[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]DM[SUPABASE_SERVICE_KEY].en-[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY].md) | [日本語](./[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]DM[SUPABASE_SERVICE_KEY].ja-J[SUPABASE_SERVICE_KEY].md) **专为社区维护者和开发者打造的智能答疑机器人解决方案。** [](https://www.npmjs.com/package/@petercatai/assistant) [![[SUPABASE_SERVICE_KEY]ersion](https://img.shields.io/npm/v/petercat-lui/latest.svg)](https://www.npmjs.com/package/petercat-lui) [![DockerHub [SUPABASE_SERVICE_KEY]ersion](https://img.shields.io/docker/v/petercatai/petercat?logo=docker&logo[SUPABASE_SERVICE_KEY]olor=white)](https://hub.docker.com/r/petercatai/petercat) [![[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY] Test [SUPABASE_SERVICE_KEY]tatus](https://github.com/petercat-ai/petercat/actions/workflows/pr-tests.yml/badge.svg)](https://github.com/petercat-ai/petercat/actions/workflows/pr-tests.yml) [](https://codecov.io/github/petercat-ai/petercat) [](https://github.com/petercat-ai/petercat/blob/master/L[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]N[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]) </div> ## 🏠 主页 [🐱 窝: petercat.ai](https://petercat.ai) ## ✨ 特性 我们提供对话式答疑 [SUPABASE_SERVICE_KEY]gent 配置系统、自托管部署方案和便捷的一体化应用 [SUPABASE_SERVICE_KEY]D[SUPABASE_SERVICE_KEY],让您能够为自己的 GitHub 仓库一键创建智能答疑机器人,并快速集成到各类官网或项目中, 为社区提供更高效的技术支持生态。 ### 对话即创造 仅需要告知你的仓库地址或名称,[SUPABASE_SERVICE_KEY]eter[SUPABASE_SERVICE_KEY]at 即可自动完成创建机器人的全部流程  ### 知识自动入库 机器人创建后,所有相关 Github 文档和 issue 将自动入库,作为机器人的知识依据  ### 多平台集成 多种集成方式自由选择,如对话应用 [SUPABASE_SERVICE_KEY]D[SUPABASE_SERVICE_KEY] 集成至官网,Github [SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY] 一键安装至 Github 仓库等 |  |  | | :-: | :-: | [完整演示视频](https://www.bilibili.com/video/[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]1[SUPABASE_SERVICE_KEY]iH[SUPABASE_SERVICE_KEY]eF[SUPABASE_SERVICE_KEY]4p) ### 不止是 Q[SUPABASE_SERVICE_KEY] 机器人 | 项目信息查询 | 回复 Discussion | | --- | --- | | ![search[SUPABASE_SERVICE_KEY]repo](https://github.com/user-attachments/assets/a7e6d37b-4674-4fd0-a89b-678e10ec01c8) |  | | [SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY] [SUPABASE_SERVICE_KEY]ummary | [SUPABASE_SERVICE_KEY]ode [SUPABASE_SERVICE_KEY]eview | | --- | --- | |  |  | | | 查 [SUPABASE_SERVICE_KEY]ssue | 提 [SUPABASE_SERVICE_KEY]ssue | 回 [SUPABASE_SERVICE_KEY]ssue | | --- | --- | --- | |  |  |  | [完整演示视频](https://www.bilibili.com/video/[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]12eH[SUPABASE_SERVICE_KEY]e8[SUPABASE_SERVICE_KEY]kT/) ## [SUPABASE_SERVICE_KEY]gent 工作流 我们为猫猫预置了一个创建机器人的机器人,当得到用户 GitHub 仓库地址或名称时,它会使用创建工具,生成该仓库答疑机器人的各项配置([SUPABASE_SERVICE_KEY]rompt,、名字、 头像、开场白、引导语、工具集……),同时触发 [SUPABASE_SERVICE_KEY]ssue 和 Markdown 的入库任务。这些任务会拆分为多个子任务,将该仓库的所有已解决 issue 、高票回复以及所有 Markdown 文件内容经过 load -> split -> embed -> store 的加工过程进行知识库构建,作为机器人的回复知识依据。 ![[SUPABASE_SERVICE_KEY]gent workflow](https://mdn.alipayobjects.com/huamei[SUPABASE_SERVICE_KEY]j8gzmo/afts/img/[SUPABASE_SERVICE_KEY]*m24tT[SUPABASE_SERVICE_KEY]ZpW7c[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]Dr[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]Q/original) ## 📦 私有化部署 部署方案:[[SUPABASE_SERVICE_KEY]W[SUPABASE_SERVICE_KEY]](https://aws.amazon.com) + [[SUPABASE_SERVICE_KEY]upabase](https://supabase.com) 你可以在这里看到完整方案: - [私有化部署 - 本地启动服务](./docs/guides/self[SUPABASE_SERVICE_KEY]hosted[SUPABASE_SERVICE_KEY]local[SUPABASE_SERVICE_KEY]cn.md) - [私有化部署 - 部署到 [SUPABASE_SERVICE_KEY]W[SUPABASE_SERVICE_KEY] ](./docs/guides/self[SUPABASE_SERVICE_KEY]hosted[SUPABASE_SERVICE_KEY]aws[SUPABASE_SERVICE_KEY]cn.md)  [](https://www.youtube.com/watch?v=[SUPABASE_SERVICE_KEY]l6[SUPABASE_SERVICE_KEY]9[SUPABASE_SERVICE_KEY]e5m[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]) ## ⚙️ 环境变量 本项目需要进行环境变量进行设置: ### [SUPABASE_SERVICE_KEY]lient `.env.local` | 环境变量 | 类型 | 描述 | 示例 | | --- | --- | --- | --- | | `N[SUPABASE_SERVICE_KEY]XT[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]L[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]DOM[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]N` | 必选 | 后端服务的 [SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY] 域名。 | `https://api.petercat.ai` | ### [SUPABASE_SERVICE_KEY]erver `.env` | 环境变量 | 类型 | 描述 | 示例 | | --- | --- | --- | --- | | **应用基础环境变量** | | `[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]L` | 必选 | 后端服务的 [SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY] 域名 | `https://api.petercat.ai` | | `W[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]L` | 必选 | 前端 Web 服务的域名 | `https://petercat.ai` | | `[SUPABASE_SERVICE_KEY]T[SUPABASE_SERVICE_KEY]T[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]L` | 必选 | 静态资源域名 | `https://static.petercat.ai` | | **[SUPABASE_SERVICE_KEY]W[SUPABASE_SERVICE_KEY] 相关环境变量** | | `X[SUPABASE_SERVICE_KEY]G[SUPABASE_SERVICE_KEY]TH[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]T[SUPABASE_SERVICE_KEY]N[SUPABASE_SERVICE_KEY]M[SUPABASE_SERVICE_KEY]` | 必选 | [SUPABASE_SERVICE_KEY]W[SUPABASE_SERVICE_KEY] 托管的 Github 私钥文件名 | `prod/githubapp/petercat/pem` | | `[SUPABASE_SERVICE_KEY]T[SUPABASE_SERVICE_KEY]T[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]T[SUPABASE_SERVICE_KEY]N[SUPABASE_SERVICE_KEY]M[SUPABASE_SERVICE_KEY]` | 可选 | [SUPABASE_SERVICE_KEY]W[SUPABASE_SERVICE_KEY] 托管的 [SUPABASE_SERVICE_KEY]loudFront 签名私钥名称。如果配置了该项,将使用 [SUPABASE_SERVICE_KEY]loudFront 签名 [SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]L 来保护你的资源。更多信息请参阅 [[SUPABASE_SERVICE_KEY]W[SUPABASE_SERVICE_KEY] 文档](https://docs.aws.amazon.com/[SUPABASE_SERVICE_KEY]mazon[SUPABASE_SERVICE_KEY]loudFront/latest/DeveloperGuide/private-content-trusted-signers.html)。 | `prod/petercat/static` | | `LLM[SUPABASE_SERVICE_KEY]TO[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]N[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]T[SUPABASE_SERVICE_KEY]N[SUPABASE_SERVICE_KEY]M[SUPABASE_SERVICE_KEY]` | 可选 | [SUPABASE_SERVICE_KEY]W[SUPABASE_SERVICE_KEY] 托管的 llm 签名私钥名称。如果配置了该项,petercat 将使用 [SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY] 算法托管用户的 LLM Token | `prod/petercat/llm` | | `LLM[SUPABASE_SERVICE_KEY]TO[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]N[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]L[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]N[SUPABASE_SERVICE_KEY]M[SUPABASE_SERVICE_KEY]` | 可选 | [SUPABASE_SERVICE_KEY]W[SUPABASE_SERVICE_KEY] 托管的 llm 签名公钥名称。如果配置了该项,petercat 将使用 [SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY] 算法托管用户的 LLM Token | `prod/petercat/llm/pub` | | `[SUPABASE_SERVICE_KEY]T[SUPABASE_SERVICE_KEY]T[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]D` | 可选 | [SUPABASE_SERVICE_KEY]W[SUPABASE_SERVICE_KEY] [SUPABASE_SERVICE_KEY]loudFront 的 [SUPABASE_SERVICE_KEY]ey [SUPABASE_SERVICE_KEY]air [SUPABASE_SERVICE_KEY]D。如果配置了该项,将使用 [SUPABASE_SERVICE_KEY]loudFront 签名 [SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]L 来保护你的资源。更多信息请参阅 [[SUPABASE_SERVICE_KEY]W[SUPABASE_SERVICE_KEY] 文档](https://docs.aws.amazon.com/[SUPABASE_SERVICE_KEY]mazon[SUPABASE_SERVICE_KEY]loudFront/latest/DeveloperGuide/private-content-trusted-signers.html)。 | `[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]xxxxxxxx` | | `[SUPABASE_SERVICE_KEY]3[SUPABASE_SERVICE_KEY]T[SUPABASE_SERVICE_KEY]M[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]T[SUPABASE_SERVICE_KEY]N[SUPABASE_SERVICE_KEY]M[SUPABASE_SERVICE_KEY]` | 可选 | 用于托管 [SUPABASE_SERVICE_KEY]W[SUPABASE_SERVICE_KEY] 临时图片文件 [SUPABASE_SERVICE_KEY]3 的 bucket | `xxx-temp` | | **[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY] 相关 env** | | `[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]L` | 必选 | supabase 服务的 [SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]L,可以在[这里](https://supabase.com/dashboard/project/[SUPABASE_SERVICE_KEY]/settings/database)找到 | `https://***.supabase.co` | | `[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]` | 必选 | supabase 服务密钥,可以在[这里](https://supabase.com/dashboard/project/[SUPABASE_SERVICE_KEY]/settings/database)找到 | `[[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]]` | | **[SUPABASE_SERVICE_KEY]uth0 相关 env** | | `[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]TH0[SUPABASE_SERVICE_KEY]DOM[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]N` | 必选 | auth0 服务域名,从 auth0 / [SUPABASE_SERVICE_KEY]pplication / [SUPABASE_SERVICE_KEY]asic [SUPABASE_SERVICE_KEY]nformation 下获取 | `petercat.us.auth0.com` | | `[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]TH0[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]L[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]NT[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]D` | 必选 | auth0 客户端 [SUPABASE_SERVICE_KEY]D,从 auth0 / [SUPABASE_SERVICE_KEY]pplication / [SUPABASE_SERVICE_KEY]asic [SUPABASE_SERVICE_KEY]nformation 下获取 | `artfi[SUPABASE_SERVICE_KEY]xxxx` | | `[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]TH0[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]L[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]NT[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]T` | 必选 | auth0 客户端密钥, 从 auth0 / [SUPABASE_SERVICE_KEY]pplication / [SUPABASE_SERVICE_KEY]asic [SUPABASE_SERVICE_KEY]nformation 下获取 | `xxxx-xxxx-xxx` | | `[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]D[SUPABASE_SERVICE_KEY]NT[SUPABASE_SERVICE_KEY]F[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]` | 必选 | auth0 的 [SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY] [SUPABASE_SERVICE_KEY]dentifier | `https://petercat.us.auth0.com/api/v2/` | | **LLM 相关的 env** | | `O[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]N[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]` | 必选 | Open[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY] 的密钥 | `sk-xxxx` | | `O[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]N[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]L` | 可选 | [SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY] 请求的基础 [SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]L。仅在使用代理或服务模拟器时指定。 | `https://api.openai.com/v1` | | `G[SUPABASE_SERVICE_KEY]M[SUPABASE_SERVICE_KEY]N[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]` | 可选 | Gemini 的密钥 | `xxxx` | | `T[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]L[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]` | 必选 | Tavily 的密钥 | `tvly-xxxxx` | | **注册为 Github [SUPABASE_SERVICE_KEY]pp 的 env** | | `X[SUPABASE_SERVICE_KEY]G[SUPABASE_SERVICE_KEY]TH[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]D` | 可选 | 注册为 Github [SUPABASE_SERVICE_KEY]pp 时,[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]D | `123456` | | `X[SUPABASE_SERVICE_KEY]G[SUPABASE_SERVICE_KEY]TH[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]L[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]NT[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]D` | 可选 | 注册为 Github [SUPABASE_SERVICE_KEY]pp 时,[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY] 的 [SUPABASE_SERVICE_KEY]lient [SUPABASE_SERVICE_KEY]D | `[SUPABASE_SERVICE_KEY]v1.xxxxxxx` | | `X[SUPABASE_SERVICE_KEY]G[SUPABASE_SERVICE_KEY]TH[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]L[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]NT[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]T` | 可选 | 注册为 Github [SUPABASE_SERVICE_KEY]pp 时,[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY] 的 [SUPABASE_SERVICE_KEY]lient 密钥 | `xxxxxxxx` | | **限流配置** | | `[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]T[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]L[SUPABASE_SERVICE_KEY]M[SUPABASE_SERVICE_KEY]T[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]N[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]L[SUPABASE_SERVICE_KEY]D` | 可选 | 限流配置是否开启 | `True` | | `[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]T[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]L[SUPABASE_SERVICE_KEY]M[SUPABASE_SERVICE_KEY]T[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]Q[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]T[SUPABASE_SERVICE_KEY]` | 可选 | 限流的请求数量 | `100` | | `[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]T[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]L[SUPABASE_SERVICE_KEY]M[SUPABASE_SERVICE_KEY]T[SUPABASE_SERVICE_KEY]D[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]T[SUPABASE_SERVICE_KEY]ON` | 可选 | 限流的统计时长,单位为分钟 | `1` | | **[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]G 服务配置** | | `WH[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]L` | 必选 | WH[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY] [SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]G 服务地址 | `http://....` | | `WH[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]` | 必选 | WH[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY] [SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]G 服务的 [SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY] | `sk-xxxx` | ## 🤝 参与贡献 > [SUPABASE_SERVICE_KEY]eter[SUPABASE_SERVICE_KEY]at 使用 yarn 作为包管理器 ```bash git clone https://github.com/petercat-ai/petercat.git # 安装依赖 yarn run bootstrap # 调试 client yarn run client # 调试 assistant yarn run assistant # 调试 server yarn run server # 本地启动网站 yarn run client:server # 本地启动 assistant 组件 yarn run assistant:server # assistant 构建 cd assistant yarn run build npm publish # docker 构建 yarn run build:docker # pypi 构建 yarn run build:pypi yarn run publish:pypi ``` ## 💼 企业版接入 请把您的项目地址,使用场景,使用频率等信息发送至 [[email protected] ]([email protected]) ## 📧 反馈问题 猫猫还在养成阶段,难免有些 “小脾气”,遇到问题请对它宽容一些,可以通过以下两种途径告知铲屎官: - [提交 [SUPABASE_SERVICE_KEY]ssue](https://github.com/petercat-ai/petercat/issues/new/choose) - [Discussions](https://github.com/petercat-ai/petercat/discussions) 提问 ## 👬 [SUPABASE_SERVICE_KEY]ontributors  ## 💗 [SUPABASE_SERVICE_KEY]ponsor [[SUPABASE_SERVICE_KEY]nt Design](https://ant.design/) ## 📄 License M[SUPABASE_SERVICE_KEY]T@[[SUPABASE_SERVICE_KEY]eter[SUPABASE_SERVICE_KEY]at](https://github.com/petercat-ai/petercat/blob/main/L[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY]N[SUPABASE_SERVICE_KEY][SUPABASE_SERVICE_KEY])
<a href="https://prompts.chat">
TypeScript and ESLint rules that MUST be followed when creating, modifying, or reviewing any file under apps/frontend/, including .ts, .tsx, .js, and .jsx files. Also apply when discussing frontend linting, type safety, or ESLint configuration.
risks
我们提供对话式答疑 Agent 配置系统、自托管部署方案和便捷的一体化应用 SDK,让您能够为自己的 GitHub 仓库一键创建智能答疑机器人,并快速集成到各类官网或项目中, 为社区提供更高效的技术支持生态。
仅需要告知你的仓库地址或名称,PeterCat 即可自动完成创建机器人的全部流程
机器人创建后,所有相关 Github 文档和 issue 将自动入库,作为机器人的知识依据
多种集成方式自由选择,如对话应用 SDK 集成至官网,Github APP 一键安装至 Github 仓库等
| 项目信息查询 | 回复 Discussion |
|---|---|
| PR Summary | Code Review |
|---|---|
| 查 Issue | 提 Issue | 回 Issue |
|---|---|---|
我们为猫猫预置了一个创建机器人的机器人,当得到用户 GitHub 仓库地址或名称时,它会使用创建工具,生成该仓库答疑机器人的各项配置(Prompt,、名字、 头像、开场白、引导语、工具集……),同时触发 Issue 和 Markdown 的入库任务。这些任务会拆分为多个子任务,将该仓库的所有已解决 issue 、高票回复以及所有 Markdown 文件内容经过 load -> split -> embed -> store 的加工过程进行知识库构建,作为机器人的回复知识依据。
你可以在这里看到完整方案:
本项目需要进行环境变量进行设置:
.env.local
| 环境变量 | 类型 | 描述 | 示例 |
|---|---|---|---|
NEXT_PUBLIC_API_DOMAIN | 必选 | 后端服务的 API 域名。 | https://api.petercat.ai |
.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 |
| 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 |
| RAG 服务配置 | |||
WHISKER_API_URL | 必选 | WHISKER RAG 服务地址 | http://.... |
WHISKER_API_KEY | 必选 | WHISKER RAG 服务的 KEY | sk-xxxx |
PeterCat 使用 yarn 作为包管理器
git clone https://github.com/petercat-ai/petercat.git
# 安装依赖
yarn run bootstrap
# 调试 client
yarn run client
# 调试 assistant
yarn run assistant
# 调试 server
yarn run server
# 本地启动网站
yarn run client:server
# 本地启动 assistant 组件
yarn run assistant:server
# assistant 构建
cd assistant
yarn run build
npm publish
# docker 构建
yarn run build:docker
# pypi 构建
yarn run build:pypi
yarn run publish:pypi
请把您的项目地址,使用场景,使用频率等信息发送至 [email protected]
猫猫还在养成阶段,难免有些 “小脾气”,遇到问题请对它宽容一些,可以通过以下两种途径告知铲屎官:
MIT@PeterCat