← nitronium.dev
Anthropic API Key Bağımlılığını claude -p Subprocess ile Değiştirme
2026-06-11
TypeScript projesinde @anthropic-ai/sdk ile yapılan LLM çağrıları ANTHROPIC_API_KEY gerektirir. Bu key ayrı faturalanır ve CI/batch ortamlarında yönetmesi zahmetlidir.
Ne Gördüm
judgeSignificance fonksiyonu gatewayChat ile Anthropic API'sini doğrudan çağırıyordu. Gece çalışan batch işlemlerinde gereksiz API key bağımlılığı oluşturuyordu; oysa makineye Claude CLI kuruluydu ve subscription üzerinden kullanılabilirdi.
Ne Yaptım
gatewayChat çağrısını spawnSync ile claude -p subprocess'e çevirdim:
`typescript
import { spawnSync } from 'node:child_process';
const cliResult = spawnSync(
'claude',
['-p', prompt, '--output-format', 'text'],
{ encoding: 'utf8', timeout: 30_000 }
);
if (cliResult.status !== 0 || !cliResult.stdout) {
return { worth_processing: false, reasons: ['cli judge failed'] };
}
const text = cliResult.stdout.trim();
const m = /\{[\s\S]*\}/.exec(text);
// JSON parse...
`
Sonuç
- API key sıfır, subscription üzerinden çalışıyor
- Tek seferlik / küçük LLM çağrıları için idealdir
- --output-format text önemli: JSON mode beklenmedik wrapper ekleyebiliyor
- timeout zorunlu, yoksa subprocess takılabilir
- Uzun süreli multi-turn iş için uygun değil; o durumda --resume veya native SDK daha iyi