An intelligent Q&A bot solution specifically designed for community maintainers and developers.
We provide 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 with a single click and quickly integrate them into various official websites or projects, providing a more efficient technical support ecosystem for your community.
You only need to provide the address or name of your repository, and PeterCat will automatically complete the entire process of creating a bot.
After the bot is created, all relevant GitHub documentation and issues will be automatically added to the knowledge base as the bot's knowledge source.
Various integration options, such as SDK integration into official websites or one-click installation of the GitHub App into GitHub repositories.
project information Query | Discussion Reply |
---|---|
PR Summary | Code Review |
---|---|
| |
Issue Search | Issue Submit | Issue Reply |
---|---|---|
Deployment solution: AWS + Supabase
Here you can find the complete guides:
The project requires environment variables to be set:
.env.local
Environment Variable | Type | Description | Example |
---|---|---|---|
NEXT_PUBLIC_API_DOMAIN |
Required | API domain of the backend service | https://api.petercat.ai |
.env
Environment Variable | Type | Description | Example |
---|---|---|---|
Basic Application Environment Variables | |||
API_URL |
Required | API domain of the backend service | https://api.petercat.ai |
WEB_URL |
Required | Domain of the frontend web service | https://petercat.ai |
STATIC_URL |
Required | Static resource domain | https://static.petercat.ai |
AWS Related Environment Variables | |||
X_GITHUB_SECRET_NAME |
Required | AWS secret file name | prod/githubapp/petercat/pem |
STATIC_SECRET_NAME |
Optional | The name of the AWS-managed CloudFront private key. If configured, CloudFront signed URLs will be used to protect your resources. For more information, see the AWS documentation. | prod/petercat/static |
LLM_TOKEN_SECRET_NAME |
Optional | The name of the LLM signing private key managed by AWS. If configured, Petercat will use the RSA algorithm to manage the user's LLM Token. | prod/petercat/llm |
LLM_TOKEN_PUBLIC_NAME |
Optional | The name of the LLM signing public key managed by AWS. If configured, Petercat will use the RSA algorithm to manage the user's LLM Token. | prod/petercat/llm/pub |
STATIC_KEYPAIR_ID |
Optional | The Key Pair ID for AWS CloudFront. If configured, CloudFront signed URLs will be used to protect your resources. For more information, see the AWS documentation. | APKxxxxxxxx |
S3_TEMP_BUCKET_NAME |
Required | AWS S3 bucket for temporary image files | xxx-temp |
SQS_QUEUE_URL |
Required | AWS SQS queue URL | https://sqs.ap-northeast-1.amazonaws.com/xxx/petercat-task-queue |
Supabase Related Environment Variables | |||
SUPABASE_URL |
Required | Supabase service URL, found here | https://***.supabase.co |
SUPABASE_SERVICE_KEY |
Required | Supabase service key, found here | {{SUPABASE_SERVICE_KEY}} |
Auth0 Related Environment Variables | |||
AUTH0_DOMAIN |
Required | Auth0 domain, from Auth0 / Application / Basic Information | petercat.us.auth0.com |
AUTH0_CLIENT_ID |
Required | Auth0 Client ID, from Auth0 / Application / Basic Information | artfiUxxxx |
AUTH0_CLIENT_SECRET |
Required | Auth0 Client Secret, from Auth0 / Application / Basic Information | xxxx-xxxx-xxx |
API_IDENTIFIER |
Required | Auth0 API Identifier | https://petercat.us.auth0.com/api/v2/ |
LLM Related Environment Variables | |||
OPENAI_API_KEY |
Required | OpenAI API key | sk-xxxx |
OPENAI_BASE_URL |
Optional | Base URL for API requests. Only specify if using a proxy or service emulator. | https://api.openai.com/v1 |
GEMINI_API_KEY |
Optional | Gemini API key | xxxx |
TAVILY_API_KEY |
Optional | Tavily API key | tvly-xxxxx |
GitHub App Registration Environment Variables | |||
X_GITHUB_APP_ID |
Optional | GitHub App ID | 123456 |
X_GITHUB_APPS_CLIENT_ID |
Optional | GitHub App Client ID | Iv1.xxxxxxx |
X_GITHUB_APPS_CLIENT_SECRET |
Optional | GitHub App Client Secret | xxxxxxxx |
Rate Limiting Configuration | |||
RATE_LIMIT_ENABLED |
Optional | Whether rate limiting is enabled | True |
RATE_LIMIT_REQUESTS |
Optional | Number of requests for rate limiting | 100 |
RATE_LIMIT_DURATION |
Optional | Duration for rate limiting (in minutes) | 1 |
PeterCat uses yarn as the package manager.
git clone https://github.com/petercat-ai/petercat.git
# Install dependencies
yarn run bootstrap
# Debug client
yarn run client
# Debug assistant
yarn run assistant
# Debug server
yarn run server
# Start website locally
yarn run client:server
# Start assistant component locally
yarn run assistant:server
# Build assistant
cd assistant
yarn run build
npm publish
# Docker build
yarn run build:docker
# PyPI build
yarn run build:pypi
yarn run publish:pypi
Please send your project address, usage scenarios, usage frequency, and other information to petercat.assistant@gmail.com
PeterCat is still in its growth stage, and occasional “tantrums” are to be expected. Please report issues via the following channels:
- [Submit an Issue(https://github.com/petercat-ai/petercat/issues/new/choose)
- Discussions
👬 Contributors
MIT@PeterCat