linguo2625469/workbuddy2api-panel

把腾讯WorkBuddy账号变成 OpenAI 兼容 API 的多账号网关,同时自动完成任务中心全部任务,附 Web 管理面板(账号池可视化 / 积分任务 / 配置热更新)。基于 Sliverkiss/workbuddy2api 的增强分支

WorkBuddy2API Panel – 텐센트 CodeBuddy에 대한 오픈AI 호환 게이트웨이 (자체 호스팅)

무엇인가요 – 오픈AI 호환 클라이언트(챗GPT SDK, CLI 도구 등)를 텐센트 CodeBuddy(copilot.tencent.com)와 함께 사용할 수 있게 해주는 Go 기반 역방향 프록시입니다. 하나 이상의 CodeBuddy 계정을 감싸며, OAuth 디바이스 플로우 로그인을 처리하고 토큰을 자동 갱신하며, 오픈AI API를 모방하는 단일 /v1/chat/completions 엔드포인트를 제공합니다.

왜 존재하는가 – 텐센트는 공개적인 오픈AI 스타일 API를 제공하지 않습니다. 이 프로젝트는 CodeBuddy 계정을 보유한 개인이 기존의 오픈AI 인터페이스를 통해 자신의 크레딧을 재사용할 수 있게 해주며, 기존 도구와의 0코드 통합을 가능하게 합니다.


핵심 기능 (README에 설명된 내용)

기능 설명
OAuth 일클릭 로그인 login.sh 또는 웹 패널의 계정 추가 버튼이 디바이스 인증 플로우를 실행하고, 인증 정보 JSON을 저장하며 서비스 재시작 없이 새 계정을 즉시 로드합니다.
다중 계정 풀 인증 정보 풀을 유지하며, 크레딧, 비활성 시간 보너스, 성공률을 고려한 3요소 가중 무작위 알고리즘으로 요청마다 계정을 선택합니다. 상위 5개 후보를 고려하고, 빠른 재사용을 막기 위해 짧은 "버스트 방지" 지연을 적용합니다.
회로 차단기 및 쿨다운 429 응답에 대해 소프트 쿨다운(지수 백오프 최대 2시간), 404에 대해 고정 60초 쿨다운, 402(잔액 소진)에 대해 다음 날 04:00까지 하드 쿨다운, 그리고 실패 횟수 기반 차단기 기능을 제공합니다.
세션 스티키니스 conversation_id (또는 유사한 해시)를 공유하는 요청은 세션 기간 동안 동일한 업스트림 계정으로 라우팅됩니다(기본 TTL 30분, 성공적인 호출마다 갱신). 상태는 Upstash Redis에 미러링하여 재시작 후에도 유지될 수 있습니다.
스케줄된 작업 자동 일일 로그인, 활동 보고서, "고양이 여행", 토큰 유지, "블랙캣" 야행성 작업 등이 있습니다. 각 작업은 독립적인 케이스 스위치와 구성 가능한 시간대를 가집니다.
스트리밍 및 비스트리밍 외부 호출은 stream:true로 강제됩니다. 클라이언트가 비스트리밍을 요청할 경우 게이트웨이는 스트리밍 청크를 하나의 응답으로 재조합합니다.
모델 수준 호환성 모델 이름을 그대로 전달하며, DeepSeek의 "사고 체인" 삽입, 자동 노력 수준 낮추기, 응답 콘텐츠 보충 기능을 제공합니다.
시스템 프롬프트 처리 기본적으로 클라이언트가 제공한 system 메시지를 사용자 정의 프롬프트로 대체합니다(원본을 제거하여 CodeBuddy의 콘텐츠 필터링 오진을 방지). passthrough 모드도 제공됩니다.
지문 정제 블랙리스트된 필드(예: 디바이스 지문)는 외부 페이로드에서 제거되며, 비활성화 가능합니다.
관측성 요청당 1줄의 CSV 로그(TTFB, 토큰 속도, uid), 서비스 상태를 보여주는 /healthz 엔드포인트, 선택적 Redis 미러링 기능을 제공합니다.
웹 관리 패널 단일 페이지 UI(내장된 go:embed를 통해)를 통해 계정 추가, 풀 상태 확인, config.json 실시간 편집, 성장 작업 자동화 트리거, 로그 검사, 스케줄된 작업 수동 실행이 가능합니다.
성장 작업 자동화 CodeBuddy "성장" 작업 중 17개(로그인, 캔버스 생성, 채팅 활동, 전문가 소환 등)를 패널에서 일클릭으로 자동 완료하고 보상 자동 청구가 가능합니다.

빠른 시작 (Docker Compose – 추천 방법)

# 리포지토리 복제
git clone https://github.com/linguo2625469/workbuddy2api-panel.git
cd workbuddy2api-panel

# 예제 설정 복사 및 원하는 경우 수정
cp config.example.json config.json   # 원하는 경우 config.json 수정

# 서비스 시작 (Docker가 Go 바이너리 빌드)
docker compose up -d --build

# 건강 상태 확인
curl -s http://localhost:7863/healthz
# → {"healthy":0,"total":0,"service":"workbuddy2api"}

브라우저에서 http://localhost:7863/panel/에 접속하여 계정 추가를 클릭하고, OAuth 디바이스 플로우 링크를 따라가서 CodeBuddy 자격 증명으로 로그인하면 새 계정이 즉시 풀에 나타납니다.


Docker 없이 실행하기 (싱글 바이너리)

  1. 릴리스된 wb2api.exe (Windows) 다운로드 또는 소스에서 빌드 (go build -trimpath -ldflags="-s -w" -o wb2api ./cmd/server).
  2. 실행: ./wb2api -config config.json – 첫 실행 시 api_key 필드가 비어 있으면 임의의 api_key가 생성됩니다.
  3. http://127.0.0.1:7863/panel/ 열고 위와 같이 계정 추가.

구성 요약

기본값 의미
listen :7863 HTTP 바인드 주소
api_key 비어 있음 클라이언트가 필요로 하는 베어러 토큰; 비어 있으면 인증 비활성화(공개 노출 시 권장되지 않음)
auth_dir ./auths OAuth 인증 정보 JSON 파일이 저장되는 디렉터리
state_file ./data/state.json 지속적인 풀 상태
server.max_body_mb 8 최대 요청 본문 크기; 더 큰 본문은 413으로 거부됩니다
cooldown.soft_rate / soft_rate_max 600s / 2h 429 이후 지수 백오프의 기본값 및 최대값
schedule.*_enabled true 다섯 가지 스케줄된 작업(로그인, 활동, 여행, 유지, 블랙캣)의 스위치
upstash.url / upstash.token 비어 있음 설정 시 풀 상태와 세션 바인딩이 Upstash Redis에 미러링되어 충돌에 강건해집니다
prompt.mode custom custom은 클라이언트 시스템 프롬프트를 대체; passthrough는 그대로 유지
features.sanitize_blacklist_fingerprints true 외부 페이로드에서 알려진 지문 필드 제거

모든 필드는 WB2A_ 접두사가 붙은 환경 변수를 통해 런타임에 오버라이드 가능합니다(예: WB2A_API_KEY).


내부 동작 방식 (고수준 개요)

  1. 입력 요청 – HTTP 핸들러는 선택적 API 키를 검증하고, 본문 크기 제한을 적용하며, 페이로드를 재작성(스트리밍 플래그, 프롬프트 처리, 도구 호출 정규화)하고, 풀에서 업스트림 계정을 선택합니다.
  2. 풀 로직 – 비활성화/쿨다운/차단기 상태인 계정을 필터링하고, 가중치를 적용한 후 무작위로 상위 5개 후보를 선택합니다. 최근 사용 방지 및 비활성 보너스 규칙을 준수합니다.
  3. 세션 스티키니스 – 요청에 conversation_id (또는 유사한 메타데이터)가 포함되어 있으면, 세션의 TTL 동안 동일한 업스트림 계정에 연결을 시도합니다.
  4. 업스트림 호출 – 얇은 클라이언트가 요청을 CodeBuddy(/v1/chat/completions)로 스트리밍합니다. 응답은 호출자에게 스트리밍으로 반환되며, 비스트리밍 요청의 경우 선택적으로 통합됩니다.
  5. 오류 분류 – 응답을 분류(잔액 소진, 레이트 제한, 세션 손실, 5xx 등)하고, 풀은 쿨다운 카운터, 차단기 상태, 또는 계정 비활성화를 업데이트합니다.
  6. 관측성 및 지속성 – 각 요청은 CSV 라인으로 로깅되며, 풀 상태는 state.json에 원자적으로 쓰이고, 선택적으로 Redis에 미러링됩니다. /healthz 엔드포인트는 로드 밸런서용 전체 풀 상태를 보고합니다.
  7. 웹 패널 – UI(바이너리 내장)는 동일한 HTTP API와 통신하여 풀 메트릭 표시, config.json 실시간 편집, 성장 작업 자동화 실행, 로그 검사가 가능합니다.

누가 이 도구를 사용할까?

  • 개인 개발자 – 개인 CodeBuddy 구독을 보유하고 있으며, 오픈AI API만 이해하는 도구와 함께 사용하고 싶은 경우.
  • 파워 유저 – 여러 CodeBuddy 계정을 관리하는 경우(예: 부하 분산 또는 계정별 레이트 제한 회피).
  • 자체 호스팅 AI 플레이그라운드 – 오픈AI 엔드포인트를 즉시 사용할 수 있지만, 백엔드 서비스는 비공개로 유지하고 싶은 경우.

법적/준수 참고사항

README는 이 도구가 비공식 게이트웨이임을 강조합니다. 소유한 계정만 사용하고, 개인 환경에서만 사용하며, 적절한 인증 없이 공개적으로 노출해서는 안 됩니다. 이 도구는 텐센트의 라이선스를 우회하지 않으며, 단지 디바이스 플로우 로그인과 토큰 갱신을 자동화할 뿐입니다.


TL;DR

WorkBuddy2API Panel = 텐센트 CodeBuddy 계정을 표준 오픈AI 호환 API로 변환하는 Go 서버이며, 스마트 라우팅을 지원하는 다중 계정 풀, 자동 일일 작업, 내장된 웹 UI를 제공합니다. Docker 또는 싱글 바이너리로 배포하고, OAuth를 통해 계정을 추가한 후, 어떤 오픈AI 클라이언트도 http://localhost:7863/v1/...에 연결할 수 있습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트