PeterCat: GitHub 저장소 기반 대화형 Q&A Agent 구축 시스템
요약
PeterCat은 GitHub 저장소를 기반으로 대화형 Q&A Agent를 원클릭으로 구축하고, 공식 웹사이트나 프로젝트에 통합할 수 있는 시스템입니다. 이 에이전트는 저장소의 문서, Issue, PR 등 다양한 데이터를 지식 기반으로 활용하여 효율적인 기술 지원을 제공합니다.
핵심 포인트
- GitHub 저장소를 기반으로 Q&A 봇 자동 생성 가능
- Issue, PR 요약, 코드 리뷰 등 다차원적 기능 제공
- SDK 및 GitHub APP 연동으로 쉬운 통합 환경 구축
- Load -> split -> embed -> store 과정을 거쳐 지식 기반 구축
저희는 대화형 Q&A Agent 구성 시스템, 자체 호스팅 배포 솔루션, 그리고 편리한 통합 애플리케이션 SDK를 제공합니다. 이를 통해 사용자는 자신의 GitHub 저장소를 기반으로 스마트 Q&A 봇을 원클릭으로 생성하고, 다양한 공식 웹사이트나 프로젝트에 빠르게 통합하여 커뮤니티에 더욱 효율적인 기술 지원 생태계를 제공할 수 있습니다.
저장소 주소나 이름만 알려주면 PeterCat이 로봇 생성의 모든 과정을 자동으로 완료합니다.
로봇이 생성되면 관련 GitHub 문서와 Issue들이 자동으로 데이터베이스에 저장되어 로봇의 지식 기반으로 활용됩니다.
다양한 통합 방식 중 원하는 것을 자유롭게 선택할 수 있습니다. 예를 들어, 대화형 애플리케이션 SDK를 공식 웹사이트에 통합하거나, GitHub APP을 통해 GitHub 저장소에 원클릭 설치하는 방식 등이 있습니다.
| 프로젝트 정보 조회 | 토론(Discussion) 답변 |
|---|---|
| PR 요약 (PR Summary) | 코드 리뷰 (Code Review) |
|---|---|
| Issue 검색 | Issue 생성 | Issue 답변 |
|---|---|
|
|
|
저희는 PeterCat에 로봇 생성기를 미리 설정해 두었습니다. 사용자가 GitHub 저장소 주소나 이름을 제공하면, 이 도구를 사용하여 해당 저장소 Q&A 로봇의 모든 구성 요소(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 문서를 참조하십시오. |
⚠️ [IMG:N] 형식 토큰은 이미지 placeholder 입니다. 번역하지 말고 원래 위치에 그대로 유지하세요.
| APKxxxxxxxx |
S3_TEMP_BUCKET_NAME | 선택 | AWS 임시 이미지 파일을 호스팅하는 S3 버킷 | xxx-temp |
SUPABASE 관련 환경 변수 |
|||
SUPABASE_URL | 필수 | supabase 서비스의 URL. 여기에서 찾을 수 있습니다. | https://***.supabase.co |
SUPABASE_SERVICE_KEY | 필수 | supabase 서비스 키. 여기에서 찾을 수 있습니다. | {{SUPABASE_SERVICE_KEY}} |
Auth0 관련 환경 변수 |
|||
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 관련 환경 변수 |
|||
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으로 등록하는 환경 변수 |
|||
X_GITHUB_APP_ID | 선택 | Github App으로 등록할 때의 APPID | 123456 |
X_GITHUB_APPS_CLIENT_ID | 선택 | Github App으로 등록할 때의 APP 클라이언트 ID | Iv1.xxxxxxx |
X_GITHUB_APPS_CLIENT_SECRET | 선택 | Github App으로 등록할 때의 APP 클라이언트 비밀 키 | xxxxxxxx |
속도 제한(Rate Limit) 설정 |
|||
RATE_LIMIT_ENABLED | 선택 | 속도 제한 설정 활성화 여부 | True |
RATE_LIMIT_REQUESTS | 선택 | 속도 제한 요청 수량 | 100 |
RATE_LIMIT_DURATION | 선택 | 속도 제한 통계 시간 (단위: 분) | 1 |
RAG 서비스 설정 |
|||
WHISKER_API_URL | 필수 | WHISKER RAG 서비스 주소 | http://.... |
WHISKER_API_KEY | 필수 | WHISKER RAG 서비스 키 | sk-xxxx |
PeterCat은 패키지 관리자로 yarn을 사용합니다.
git clone https://github.com/petercat-ai/petercat.git
# 의존성 설치
yarn run bootstrap
...
프로젝트 주소, 사용 시나리오, 사용 빈도 등의 정보를 [email protected]으로 보내주세요.
고양이는 아직 성장 단계라 '작은 변덕'이 있을 수 있습니다. 문제가 발생하면 부디 너그럽게 대해주시고, 다음 두 가지 경로를 통해 보호자에게 알려주세요:
MIT@PeterCat
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기