API 키
API 키는 LLM 제공업체 API에 액세스할 수 있게 해주는 인증 토큰입니다. AISCouncil는 BYOK(Bring Your Own Key) 모델을 사용합니다 -- 각 제공업체에서 직접 키를 받아 브라우저에 저장합니다. 키는 어떤 중개 서버도 통과하지 않습니다.
API 키 얻는 곳
각 제공업체에는 API 키를 만들 수 있는 자체 개발자 콘솔이 있습니다:
| 제공업체 | 콘솔 URL | 키 형식 | 무료 티어 |
|---|---|---|---|
| Anthropic | console.anthropic.com/settings/keys | sk-ant-api03-... | 아니요 (선불 크레딧 필요) |
| OpenAI | platform.openai.com/api-keys | sk-proj-... 또는 sk-... | 아니요 (선불 크레딧 필요) |
| xAI | console.x.ai | xai-... | 월 $25 무료 크레딧 |
| Google Gemini | aistudio.google.com/apikey | 영숫자 문자열 | 예 (관대한 무료 티어, 신용카드 불필요) |
| OpenRouter | openrouter.ai/keys | sk-or-v1-... | 예 (20개 이상의 무료 모델, 신용카드 불필요) |
| DeepSeek | platform.deepseek.com/api_keys | sk-... | 아니요 (선불 크레딧 필요) |
| Groq | console.groq.com/keys | gsk_... | 예 (속도 제한이 있는 무료 티어) |
| Mistral | console.mistral.ai/api-keys | 영숫자 문자열 | 아니요 |
| Ollama | N/A (로컬) | 필요 없음 | 예 (로컬 실행, 키 불필요) |
Google Gemini와 OpenRouter는 모두 신용카드 없이 무료 티어를 제공합니다. Gemini는 Gemini 2.5 Flash와 Pro에 액세스할 수 있습니다. OpenRouter는 DeepSeek R1, Llama 3.3, Qwen 3 등 20개 이상의 무료 모델에 액세스할 수 있습니다. 이것이 채팅을 시작하는 가장 빠른 방법입니다.
키 저장 방식
API 키는 제공업체별 키 아래 브라우저의 localStorage에 저장됩니다:
| localStorage 키 | 제공업체 |
|---|---|
ais-apikey-anthropic | Anthropic (Claude) |
ais-apikey-openai | OpenAI (GPT) |
ais-apikey-xai | xAI (Grok) |
ais-apikey-gemini | Google Gemini |
ais-apikey-openrouter | OpenRouter |
ais-apikey-deepseek | DeepSeek |
ais-apikey-groq | Groq |
ais-apikey-mistral | Mistral |
키는 localStorage의 일반 문자열입니다. 앱이 부팅 시 어떤 제공업체를 사용할 수 있는지 즉시 결정할 수 있도록 동기적으로 읽힙니다.
API 키 설정
설정 대화 상자를 통해
- 설정 열기 (사이드바의 기어 아이콘)
- API 키 섹션으로 이동
- 키 패널은 모델 레지스트리의 모든 제공업체를 제공업체별로 구성하여 표시
- 관련 제공업체의 필드에 키 입력
- 키는 입력 시 즉시 저장됨
설정 패널을 통해
- 설정 패널 열기 (오른쪽 사이드바)
- 하단의 API 키 필드에 현재 선택한 제공업체의 키 표시
- 키를 직접 입력하거나 업데이트
- 변경 시 키가 저장됨
브라우저 콘솔을 통해
// 키 설정
localStorage.setItem("ais-apikey-anthropic", "sk-ant-api03-your-key-here");
// 키 읽기
localStorage.getItem("ais-apikey-openai");
// 키 제거
localStorage.removeItem("ais-apikey-xai");
보안 모델
- 키는 URL에 절대 나타나지 않음 -- 봇 공유는 구성만 인코딩, 키는 안 함
- 키는 절대 내보내지지 않음 -- 모든 데이터 내보내기 기능은 모든 API 키를 명시적으로 제외
- 키는 브라우저를 떠나지 않음 -- 제공업체의 자체 API 엔드포인트로 직접 전송될 때 제외
- 키는 aiscouncil.net으로 전송되지 않음 -- 앱은 키와 함께 자체 서버에 요청을 하지 않음
- 키는 절대 로깅되지 않음 -- 콘솔, 분석, 오류 보고서에 없음
메시지를 보내면 API 호출이 브라우저에서 제공업체로 직접 이동합니다:
사용자 브라우저 --(HTTPS + API key)--> api.anthropic.com
사용자 브라우저 --(HTTPS + API key)--> api.openai.com
사용자 브라우저 --(HTTPS + API key)--> api.x.ai
사용자 브라우저 --(HTTPS + API key)--> generativelanguage.googleapis.com
프록시 없음, 미들웨어 없음, 중개자 없음. 키는 HTTPS를 통해 제공업체로 직접 이동하고 다른 곳으로는 이동하지 않습니다.
전역 vs 봇별 API 키
AISCouncil는 두 가지 수준의 API 키를 지원합니다:
전역 키 (제공업체별)
설정 > API 키에서 설정. 이것은 주어진 제공업체의 모든 봇이 사용하는 기본 키입니다. ais-apikey-{provider}로 localStorage에 저장됩니다.
봇별 키
설정 패널의 봇별 API 키 아래에서 설정. 이것은 특정 봇에만 전역 키를 재정의합니다. 사용 사례:
- 다른 프로젝트에 대한 다른 API 키 (별도 결제)
- 다른 봇에 영향을 주지 않고 새 키 테스트
- 다른 속도 제한이나 권한이 있는 키 사용
봇별 키는 IndexedDB의 봇 구성 객체(k 필드)에 저장됩니다. 봇 URL을 공유할 때 포함되지 않습니다 -- 받는 사람은 자신의 키를 사용합니다.
우선순위: 봇별 키 > 전역 제공업체 키
봇에 봇별 키가 설정되어 있으면 그것을 사용합니다. 그렇지 않으면 해당 제공업체의 전역 키로 대체됩니다.
키 검증
앱은 저장 시 명시적인 키 검증을 수행하지 않습니다. 대신 키가 유효하지 않으면 처음 메시지를 보내려고 할 때 오류가 표시됩니다. 일반적인 오류:
| 오류 | 원인 |
|---|---|
401 Unauthorized | 잘못된 API 키 또는 키가 취소됨 |
403 Forbidden | 키가 요청한 모델에 대한 권한이 없음 |
429 Too Many Requests | 속도 제한 초과 (나중에 다시 시도) |
402 Payment Required | 크레딧 부족 또는 결제 만료 |
키 교체
키를 교체(변경)하려면:
- 제공업체의 콘솔에서 새 키 생성
- 설정 > API 키에서 키 업데이트
- 이전 키는 즉시 교체됨 -- 전환 기간 없음
새 키는 다음 API 호출 시 적용됩니다. 재시작이나 다시 로드가 필요하지 않습니다.
제공업체별 참고사항
Anthropic
- 키는
sk-ant-api03-로 시작 (3세대 형식) - 모든 API 사용 전에 선불 크레딧 필요
- 브라우저 직접 호출을 위한
anthropic-dangerous-direct-browser-access헤더 지원 - 속도 제한은 사용 계층(1-4)에 따라 다름
OpenAI
- 프로젝트 키는
sk-proj-로 시작; 레거시 키는sk-로 시작 - 선불 크레딧 또는 활성 결제 플랜 필요
- 일부 모델(GPT-4, o1)은 더 높은 사용 계층 필요
xAI (Grok)
- 키는
xai-로 시작 - 새 계정은 월 $25의 무료 크레딧 받음
- Vision 및 함수 호출 지원
Google Gemini
- 키는 Google AI Studio의 영숫자 문자열
- API 키는 CORS 프리플라이트 요청을 피하기 위해
?key=쿼리 매개변수로 전달됨 (Bearer 헤더가 아님) - 무료 티어에는 Gemini 2.5 Flash (10 RPM), Gemini 2.5 Pro (5 RPM), Gemini 2.5 Flash-Lite (30 RPM) 포함
- 무료 티어에 신용카드 불필요
OpenRouter
- 키는
sk-or-v1-로 시작 - 많은 제공업체의 300개 이상의 모델에 액세스 제공
- 무료 모델은 즉시 사용 가능 (신용카드 불필요)
- 유료 모델은 OpenRouter의 자체 결제 시스템을 통해 청구
DeepSeek
- 키는
sk-로 시작 - 가격이 다른 제공업체보다 현저히 낮음
- 추론(DeepSeek R1) 및 코딩(DeepSeek Coder) 지원
Groq
- 키는
gsk_로 시작 - 빠른 추론 전문
- 속도 제한이 있는 무료 티어 사용 가능
- Llama, Mixtral 및 Gemma 모델 지원
Ollama
- API 키 불필요 -- Ollama는 기기에서 로컬로 실행
- 앱은 내부적으로 자리 표시자 값
'ollama'사용 - Ollama가 설치되어 실행 중이어야 함 (
ollama serve) - 브라우저 CORS 액세스를 위해
OLLAMA_ORIGINS=*설정 - 모델은
GET /api/tags를 통해 자동 감지
문제 해결
"No API key" 오류
- 설정에 올바른 제공업체에 대한 키를 입력했는지 확인
- 설정 패널의 제공업체 드롭다운이 설정한 키와 일치하는지 확인
- 키를 다시 붙여넣기 -- 일부 비밀번호 관리자는 클립보드를 변경할 수 있음
"401 Unauthorized" 또는 "Invalid API key"
- 제공업체의 콘솔에서 키 재생성
- 키가 취소되거나 만료되지 않았는지 확인
- Anthropic의 경우 계정에 크레딧을 추가했는지 확인
- OpenAI의 경우 결제 플랜이 활성인지 확인
"429 Too Many Requests"
- 제공업체의 속도 제한에 도달함
- 잠시 기다렸다가 다시 시도
- 제공업체와 함께 사용 계층 업그레이드 고려
- 무료 티어 모델의 경우 속도 제한이 더 낮음 (예: Gemini 무료: 10 RPM)
"402 Payment Required"
- 선불 크레딧이 소진됨
- 제공업체의 결제 대시보드에서 크레딧 추가
- 무료 티어 모델로 전환 (Gemini, OpenRouter 무료 모델)
브라우저 데이터 지우기 후 키 사라짐
- 브라우저 데이터, 사이트 데이터 또는 쿠키를 지우면
localStorage가 지워짐 - 지우기 전에 키 내보내기 (데이터 내보내기에서 제외되므로 수동으로 복사)
- API 키를 저장하기 위해 비밀번호 관리자 사용 고려
API 키를 누구와도 공유하지 마세요. 공개 채팅 메시지, 포럼 또는 코드 저장소에 붙여넣지 마세요. 키가 손상된 경우 제공업체의 콘솔에서 즉시 취소하고 새 키를 생성하세요.