petercat

petercat

A conversational Q&A agent configuration system, self-hosted deployment solutions, and a convenient all-in-one application SDK, allowing you to create intelligent Q&A bots for your GitHub repositories

Stars: 480

Visit
 screenshot

Peter Cat is an intelligent Q&A chatbot solution designed for community maintainers and developers. It provides a conversational Q&A agent configuration system, self-hosting deployment solutions, and a convenient integrated application SDK. Users can easily create intelligent Q&A chatbots for their GitHub repositories and quickly integrate them into various official websites or projects to provide more efficient technical support for the community.

README:

banner

Peter Cat

简体中文 | English | 日本語

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

npm Version DockerHub Version CI Test Status codecov License

🏠 主页

🐱窝: petercat.ai

✨ 特性

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

对话即创造

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

对话即创造

知识自动入库

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

知识自动入库

多平台集成

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

官网 GitHub

完整演示视频

不止是 QA 机器人

项目信息查询 回复 Discussion
search_repo  discussion replay
PR Summary Code Review
image image
查 Issue 提 Issue 回 Issue
image image image

完整演示视频

Agent 工作流

我们为猫猫预置了一个创建机器人的机器人,当得到用户 GitHub 仓库地址或名称时,它会使用创建工具,生成该仓库答疑机器人的各项配置(Prompt,、名字、 头像、开场白、引导语、工具集……),同时触发 Issue 和 Markdown 的入库任务。这些任务会拆分为多个子任务,将该仓库的所有已解决 issue 、高票回复以及所有 Markdown 文件内容经过 load -> split -> embed -> store 的加工过程进行知识库构建,作为机器人的回复知识依据。

Agent workflow

📦 私有化部署

部署方案:AWS + Supabase

你可以在这里看到完整方案:

架构方案

演示视频

⚙️ 环境变量

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

Client

.env.local

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

Server

.env

环境变量 类型          描述 示例
应用基础环境变量
API_URL 必选 后端服务的 API 域名 https://api.petercat.ai
WEB_URL 必选 前端 Web 服务的域名 https://petercat.ai
STATIC_URL 必选 静态资源域名 https://static.petercat.ai
AWS 相关环境变量
AWS_GITHUB_SECRET_NAME 必选 AWS 托管的 Github 私钥文件名 prod/githubapp/petercat/pem
AWS_STATIC_SECRET_NAME 可选 AWS 托管的 CloudFront 签名私钥名称。如果配置了该项,将使用 CloudFront 签名 URL 来保护你的资源。更多信息请参阅 AWS 文档 prod/petercat/static
AWS_LLM_TOKEN_SECRET_NAME 可选 AWS 托管的 llm 签名私钥名称。如果配置了该项,petercat 将使用 RSA 算法托管用户的 LLM Token prod/petercat/llm
AWS_LLM_TOKEN_PUBLIC_NAME 可选 AWS 托管的 llm 签名公钥名称。如果配置了该项,petercat 将使用 RSA 算法托管用户的 LLM Token prod/petercat/llm/pub
AWS_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

🤝 参与贡献

Peter Cat 使用 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] 或者扫码加入我们的交流群

钉钉群 GitHub

📧 反馈问题

猫猫还在养成阶段,难免有些 “小脾气”,遇到问题请对它宽容一些,可以通过以下两种途径告知铲屎官:

👬 Contributors

https://github.com/petercat-ai/petercat/graphs/contributors

💗 Sponsor

Ant Design

📄 License

MIT@Peter Cat

For Tasks:

Click tags to check more tools for each tasks

For Jobs:

Alternative AI tools for petercat

Similar Open Source Tools

For similar tasks

For similar jobs