문서

문서

NextChat

자체 호스팅 NextChat은 OpenAI용으로 이미 제공되는 변수를 통해 Kunavo에 연결됩니다. OPENAI_API_KEY에 키를, BASE_URL에 원본 주소를, CUSTOM_MODELS에 ID를 지정하면 됩니다. 포크나 패치는 필요하지 않습니다.

환경 변수 세 개 — OPENAI_API_KEY, BASE_URL(기본 오리진), CUSTOM_MODELS — 하나의 키로 자체 호스팅 NextChat에서 Claude와 GPT를 사용할 수 있습니다

환경 변수 — Vercel 프로젝트 설정, docker -e 또는 .env.local
CODE=your-access-password
OPENAI_API_KEY=sk-kn-...
BASE_URL=https://api.kunavo.com
HIDE_USER_API_KEY=1
CUSTOM_MODELS=-all,+claude-sonnet-5@OpenAI,+claude-opus-5@OpenAI,+claude-haiku-4-5@OpenAI,+gpt-5-6-sol@OpenAI,+gpt-5-6-terra@OpenAI
BASE_URL에는 기본 원본 주소를 입력하고 /v1는 붙이지 않습니다. 문서 페이지에는 접미사에 관한 설명이 없지만, 해당 페이지의 기본값이 https://api.openai.com이고 https://api.openai.com/v1가 아니라는 점이 이를 명확히 보여 줍니다. NextChat이 나머지 경로를 덧붙입니다. 직접 추가한 /v1는 /v1/v1/chat/completions가 되어 404를 반환하고, 오타가 아니라 엔드포인트 오류처럼 보입니다.
키 보유 주체는 기본값이 아니라 배포 시 결정할 사항입니다. OPENAI_API_KEY가 설정되어 있으면 서버가 사용자의 키로 Kunavo를 호출하므로 CODE를 통과하는 모든 사용자가 사용자 잔액을 사용합니다. HIDE_USER_API_KEY=1에는 "사용자가 자체 API 키를 입력하지 않도록 하려면 이 값을 1로 설정하세요"라고 명시되어 있습니다. 이 값을 설정하지 않으면 각 방문자가 Settings에서 자신의 키를 붙여넣을 수 있으며, 공유 인스턴스에서는 이 방식이 적합합니다.
-all 접두사와 @OpenAI 접미사는 +, -, name=displayName만 다루는 문서 표에 없습니다. 이는 같은 날 확인한 NextChat 자체의 모델 수집 코드에서 가져온 것입니다. -all는 내장 목록을 비워 선택기에 Kunavo가 거부할 ID가 표시되지 않도록 하고, @OpenAI는 새 ID를 OpenAI 공급자에 고정해 BASE_URL로 전송되도록 합니다. 이 접미사 없이 ID를 입력하면 해당 ID 자체가 공급자 이름이 되어 구성한 경로를 거치지 않습니다. 대소문자 표기는 그대로 유지해야 합니다.
Kunavo는 텍스트 음성 변환 또는 음성 텍스트 변환 모델을 제공하지 않으므로 NextChat의 음성 기능은 여기서 사용할 수 없습니다. ENABLE_BALANCE_QUERY도 설정하지 않은 상태로 두세요. 잔액 확인은 OpenAI 자체 대시보드의 결제 경로를 호출하며, 이는 OpenAI 호환 인터페이스에 포함되지 않습니다. 잔액은 /app/billing에서 확인할 수 있습니다.
이 페이지는 테스트 실행 결과가 아니라 NextChat 문서를 바탕으로 작성되었습니다. Kunavo는 이 엔드포인트에서 NextChat을 실행해 보지 않았으며, 설정 안내 페이지가 공개되어 있다는 사실은 호환성 테스트가 아닙니다. 양쪽에서 문서화된 인터페이스는 Chat Completions입니다. 그 이상의 내용은 여기서 테스트되지 않았습니다.
아직 키가 없나요? Kunavo 계정을 만들고, 키를 생성한 다음(키는 sk-kn-로 시작합니다) $10부터 크레딧을 추가하세요. 호출 비용은 해당 잔액에서 차감되며 실패한 호출에는 요금이 부과되지 않습니다. 그러면 대시보드가 NextChat 설정 화면에서 열립니다.

단계별 안내

  1. /app/keys에서 키를 생성해 복사하세요. 키는 한 번만 표시됩니다.
  2. OPENAI_API_KEY을 해당 키로, BASE_URL을 https://api.kunavo.com로 설정하세요. Vercel에서는 프로젝트 환경 변수로, Docker에서는 -e 플래그로 설정하고, 로컬에서는 .env.local에 넣습니다.
  3. CODE을 액세스 비밀번호로 설정하세요. 그렇지 않으면 URL을 발견한 누구나 배포에 접속할 수 있고, 비용은 여러분의 키로 청구됩니다.
  4. CUSTOM_MODELS에 사용할 ID를 나열하고 각각에 @OpenAI 접미사를 붙이세요. 기본 제공 항목을 제외하려면 -all로 시작합니다.
  5. 다시 배포하세요. 환경 변수는 서버에서 읽으므로 Vercel 프로젝트는 새로 배포해야 하고, 컨테이너는 재시작해야 합니다. 실행 중인 인스턴스에서는 변수만 수정해도 아무런 변화가 없습니다.
  6. 앱을 열고 모델 선택기에서 ID 중 하나를 선택한 다음 메시지를 보내세요. 답변이 도착하면 세 변수가 서로 일치하는 것입니다.

NextChat의 환경 변수 페이지에서 확인했습니다(2026년 9월 21일 기준). 서드파티 설정은 변경될 수 있으므로, 여기의 필드 이름이 실제 화면과 다르면 이 문서가 아니라 해당 페이지를 기준으로 삼으세요.

클라이언트를 디버깅하기 전에 확인할 사항

한 번의 요청으로 문제가 엔드포인트, 키 또는 구성 파일 중 어디에 있는지 판단할 수 있습니다. 이 요청에서 JSON이 반환되면 동일한 base URL과 키가 NextChat에서 작동합니다.

# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/models \
  -H "Authorization: Bearer sk-kn-..."

필드에 입력할 model id

모든 텍스트 모델은 model id로 접근할 수 있습니다. 현재 목록은 GET /v1/models이며, 가격이 포함된 카탈로그는 모델 페이지에서 확인할 수 있습니다. 요금은 토큰 100만 개당 USD 기준이며 입력 / 출력 순서입니다.

모델 IDKunavo 입력/출력NextChat에서의 위치
claude-sonnet-5$1.40 / $7.00잔액을 신경 쓰지 않고 긴 대화를 나누는 일상적인 대화
claude-opus-5$3.50 / $17.50비싼 모델을 쓸 만한 주간 질문 하나
claude-haiku-4-5$0.70 / $3.50요약, 채팅 이름 변경, 공유 인스턴스에서 주로 오가는 짧은 대화
gpt-5-6-sol$2.00 / $12.00같은 선택기에서 같은 키로 사용하는 두 번째 모델군
gpt-5-6-terra$0.70 / $4.20컨텍스트 창이 결정적인 요소인 긴 문서 붙여넣기
월정액 없이 선불 잔액에서 토큰별로 청구됩니다. billing을 참고하세요. 반복되는 컨텍스트(에디터나 채팅 클라이언트가 보내는 데이터의 대부분)에서는 모델 선택보다 프롬프트 캐싱이 청구액에 더 큰 영향을 줍니다.

자주 묻는 질문

NextChat을 사용자 지정 API 엔드포인트에 연결하려면 어떻게 하나요?

자체 호스팅 배포에서 BASE_URL을 엔드포인트의 오리진으로, OPENAI_API_KEY를 해당 엔드포인트에서 발급한 키로 설정하세요. 둘 다 환경 변수로 설정하면 됩니다. NextChat의 환경 변수 페이지에는 BASE_URL이 "OpenAI API 요청 기본 URL 재정의"라고 설명되어 있으므로 코드를 수정할 필요가 없습니다. 앱은 계속 OpenAI 와이어 형식으로 통신하면서 요청을 다른 곳으로 보냅니다. 설정 후 다시 배포하세요. 값은 서버에서 읽으므로 실행 중인 인스턴스에는 적용되지 않습니다.

NextChat의 BASE_URL 끝에 /v1을 붙여야 하나요?

아니요. NextChat이 버전 구간과 경로를 직접 덧붙이기 때문에 BASE_URL의 문서화된 기본값은 https://api.openai.com/v1이 아니라 오리진만 있는 https://api.openai.com입니다. https://api.kunavo.com만 입력하세요. 접미사를 직접 붙이면 경로가 중복되어 404가 발생하고, 이를 엔드포인트가 다운된 것으로 오해하기 쉽습니다.

NextChat의 모델 목록에 사용자 지정 모델을 추가하려면 어떻게 하나요?

CUSTOM_MODELS에는 쉼표로 구분한 목록을 지정합니다. +는 모델 추가, -는 모델 숨기기, name=displayName은 모델 이름 변경을 뜻합니다. NextChat이 모르는 ID는 즉시 생성되므로 +claude-sonnet-5@OpenAI를 지정하면 해당 ID가 선택기에 표시됩니다. 두 가지 세부 사항은 정확히 따라야 합니다. 기본 제공 OpenAI ID를 선택했을 때 오류가 나지 않도록 목록을 -all로 시작해 해당 ID를 숨기고, ID가 모델 이름을 딴 제공업체가 아니라 BASE_URL을 통해 라우팅되도록 @OpenAI 접미사를 유지하세요.

NextChat에서 서버 API 키를 사용해야 하나요, 아니면 각 사용자가 직접 입력하게 해야 하나요?

둘 다 지원되며, 선택에 따라 비용을 부담하는 사람이 달라집니다. OPENAI_API_KEY에 넣은 키는 서버의 키이므로 CODE 비밀번호를 통과한 방문자는 모두 하나의 잔액에서 비용을 사용합니다. 비공개 인스턴스에는 적합하지만, 공유 링크에서는 비용이 커질 수 있습니다. HIDE_USER_API_KEY를 설정하지 않으면 방문자가 설정에서 자신의 키를 입력하고 직접 비용을 부담할 수 있습니다. 이 값을 1로 설정하면 해당 입력란이 사라집니다. 어느 방식이든 사용자가 직접 입력하지 않는 한 키가 브라우저에 전달되지 않습니다.