From 139d621fd8f518c6455db0dced7986e31db44e93 Mon Sep 17 00:00:00 2001 From: JOUNGWOOK KWON Date: Tue, 31 Mar 2026 12:09:14 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20Claude=20Opus=20via=20cliproxy=20?= =?UTF-8?q?=ED=94=84=EB=A1=9D=EC=8B=9C=20=EC=84=A4=EC=A0=95=20+=20base=5Fu?= =?UTF-8?q?rl=20=EC=A7=80=EC=9B=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ClaudeWriter에 base_url 파라미터 추가 (프록시 지원) - engine.json: provider=claude, cliproxy.gru.farm 프록시 설정 - fallback_chain: claude → gemini → groq 순서 Co-Authored-By: Claude Sonnet 4.6 --- bots/engine_loader.py | 10 +++++++--- config/engine.json | 7 ++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/bots/engine_loader.py b/bots/engine_loader.py index 1806d6c..eba41ea 100644 --- a/bots/engine_loader.py +++ b/bots/engine_loader.py @@ -66,13 +66,14 @@ BaseVideoGenerator = object # ─── Writer 구현체 ────────────────────────────────────── class ClaudeWriter(BaseWriter): - """Anthropic Claude API를 사용하는 글쓰기 엔진""" + """Anthropic Claude API를 사용하는 글쓰기 엔진 (프록시 base_url 지원)""" def __init__(self, cfg: dict): self.api_key = os.getenv(cfg.get('api_key_env', 'ANTHROPIC_API_KEY'), '') - self.model = cfg.get('model', 'claude-opus-4-5') + self.model = cfg.get('model', 'claude-sonnet-4-6') self.max_tokens = cfg.get('max_tokens', 4096) self.temperature = cfg.get('temperature', 0.7) + self.base_url = cfg.get('base_url', '') # 프록시 URL (옵션) def write(self, prompt: str, system: str = '') -> str: if not self.api_key: @@ -80,7 +81,10 @@ class ClaudeWriter(BaseWriter): return '' try: import anthropic - client = anthropic.Anthropic(api_key=self.api_key) + client_kwargs = {'api_key': self.api_key} + if self.base_url: + client_kwargs['base_url'] = self.base_url + client = anthropic.Anthropic(**client_kwargs) kwargs: dict = { 'model': self.model, 'max_tokens': self.max_tokens, diff --git a/config/engine.json b/config/engine.json index 605f662..4f3cfec 100644 --- a/config/engine.json +++ b/config/engine.json @@ -2,8 +2,8 @@ "_comment": "The 4th Path 블로그 자동 수익 엔진 — 엔진 설정 (v3)", "_updated": "2026-03-29", "writing": { - "provider": "gemini", - "fallback_chain": ["groq"], + "provider": "claude", + "fallback_chain": ["gemini", "groq"], "_comment_provider": "openclaw=ChatGPT Pro(OAuth), claude_web=Claude Max(웹쿠키), gemini_web=Gemini Pro(웹쿠키), claude=Anthropic API키, gemini=Google AI API키, groq=Groq API키", "options": { "openclaw": { @@ -20,7 +20,8 @@ "psidts_env": "GEMINI_WEB_1PSIDTS" }, "claude": { - "api_key_env": "ANTHROPIC_API_KEY", + "api_key_env": "CLIPROXY_API_KEY", + "base_url": "https://cliproxy.gru.farm", "model": "claude-opus-4-6", "max_tokens": 4096, "temperature": 0.7