DeepSeek Harness 타사 키 설정 — APIMaster.ai 사용자 지정 프로바이더
DeepSeek Harness(dsh)에 APIMaster.ai OpenAI 호환 API 키를 추가하는 방법. Settings → Models → Add a custom provider에서 Base URL, API 키, 모델 ID를 입력한 뒤 채팅에서 모델을 선택하세요.
DeepSeek Harness(dsh)는 DeepSeek의 오픈소스 로컬 에이전트 프레임워크입니다. Web UI 기본 주소는 http://127.0.0.1:3080입니다. 내장 DeepSeek 카드는 공식 키만 받습니다. APIMaster의 GPT / Claude / DeepSeek 등 마켓플레이스 모델을 쓰려면 Add a custom provider가 필요합니다.
먼저 API 키를 받으세요. 키는
$DSH_HOME/.credentials.yaml(기본~/.dsh/)에만 저장됩니다. 채팅이나 스크린샷에 공유하지 마세요.
사전 준비
- Node.js
22.19+또는24+. - Web UI 실행:
npx @deepseek-ai/dsh web
터미널에 출력된 주소(보통 http://127.0.0.1:3080)를 엽니다.
3. APIMaster 콘솔에서 API Key 복사.
4. 마켓플레이스의 model id (예: gpt-5.6-sol, claude-sonnet-4-6, deepseek-v4-pro).
1단계 — Models 열기
- Settings를 엽니다.
- 왼쪽에서 Models를 선택합니다.
- DeepSeek 카드의 Edit는 공식 키입니다. 누르지 마세요.

| 버튼 | 용도 |
|---|---|
| + Add provider | 카탈로그(Anthropic, OpenAI 등) |
| + Add a custom provider | APIMaster (이것) |
2단계 — 사용자 지정 프로바이더 입력
| 필드 | 값 |
|---|---|
| Provider ID | apimaster (소문자, 저장 후 이름 변경 불가) |
| Display name | apimaster 또는 APIMaster.ai |
| Base URL | https://apimaster.ai/v1 (/v1 필수) |
| API protocol | openai-completions |
| API key | APIMaster 키 |
모델을 최소 하나 추가하세요. 왼쪽은 요청 model id, 오른쪽은 표시 이름입니다. 예: gpt-5.6-sol. 또는 Fetch available models. Create provider를 클릭합니다.

목록에 없는 id는 로컬에서 UNKNOWN_MODEL로 실패합니다. /v1을 빼면 연결이 실패합니다.
- 비전 모델의 경우 아래의 이미지 입력 구성도 확인하세요. UI에서 모델을 추가하는 것만으로는 이미지가 활성화되지 않을 수 있습니다.
비전 / 멀티모달 모델과 사용자 지정 공급자
수동으로 추가한 모델이 이미지를 지원하는 경우 .dsh/settings.yaml에서 해당 기능을 선언해야 할 수 있습니다. 사용자 지정 공급자 양식에는 현재 모델 입력 유형 필드가 없으므로, 모델 카탈로그에 비전 기능이 누락된 경우 UI에서 모델을 구성하는 것만으로는 충분하지 않습니다.
$DSH_HOME/settings.yaml(기본값 ~/.dsh/settings.yaml)을 열고 기존 공급자 및 모델 항목을 편집합니다. 이미 구성한 Provider ID, 자격 증명, Base URL 및 기타 설정을 유지하고, 파일을 교체하는 대신 아래 필드를 해당 항목에 병합합니다.
특정 모델에 이미지 활성화
비전을 지원하는 모델에 input: [text, image]를 추가합니다:
llm-pi-ai:
providers:
my-gateway:
apiKeyEnv: GATEWAY_API_KEY
api: openai-completions
baseURL: https://your-api-endpoint/v1
models:
- id: legacy-chat
- id: vision-model
input: [text, image]
위의 공급자 및 모델 ID는 자리 표시자입니다. APIMaster 설정의 경우 저장된 Provider ID(예: apimaster), https://apimaster.ai/v1 및 실제 모델 ID를 사용하세요. apiKeyEnv는 키가 포함된 환경 변수를 지정합니다. UI를 통해 키를 저장한 경우 기존 자격 증명 구성을 유지하세요.
input: [text, image]는 해당 모델에만 텍스트 및 이미지 입력을 모두 지원함을 선언합니다. 이 예에서는vision-model에 적용되며legacy-chat은 변경하지 않습니다.input이 생략되거나[]로 설정된 경우 Harness는 모델 카탈로그의 기능 정보를 사용합니다. 카탈로그에 해당 정보가 없으면 공급자 / 라우트의defaultInput으로 폴백합니다.- 명시적인 모델 수준 선언은 카탈로그가 비전 기능을 인식하지 못하는 수동 추가 모델에 특히 유용합니다.
공급자 모델의 기본값 설정
사용자 지정 공급자 아래의 모든 수동 추가 모델이 이미지를 지원하는 경우 공급자에 defaultInput: [text, image]를 설정하는 것이 더 간결합니다:
llm-pi-ai:
providers:
vision-gateway:
apiKeyEnv: GATEWAY_API_KEY
api: openai-completions
baseURL: https://your-api-endpoint/v1
defaultInput: [text, image]
models:
- id: first-model
- id: second-model
| 필드 | 범위 | 사용 시점 |
|---|---|---|
input |
단일 모델의 입력 기능 | 일부 모델만 이미지를 지원하는 경우 이 방법을 권장합니다 |
defaultInput |
해당 공급자 / 라우트의 모델에 대한 기본 입력 기능 | 모든 수동 추가 모델이 이미지를 지원하는 경우 편리합니다 |
해석 순서: 비어 있지 않은 모델 input → 모델 카탈로그 기능 정보 → 공급자 / 라우트 defaultInput(기본값은 [text]). defaultInput은 폴백입니다. 명시적인 모델 선언이나 알려진 카탈로그 기능을 재정의하지 않습니다. 카탈로그가 비전 모델을 텍스트 전용으로 설명하는 경우 해당 모델에 input: [text, image]를 명시적으로 설정하세요.
이러한 설정은 기능을 선언할 뿐, 텍스트 전용 모델에 비전 지원을 추가하지는 않습니다. 모델과 사용자 지정 공급자의 API가 모두 전송되는 이미지 입력 형식을 지원해야 합니다.
파일을 저장하고 이미지가 포함된 새 요청을 전송하세요. Harness는 다음 요청 시 설정을 다시 읽으므로 일반적으로 재시작이 필요 없습니다. 변경 사항이 적용되지 않으면 UI를 새로 고치거나 DeepSeek Harness를 재시작한 후 구성된 모델을 다시 선택하세요.
3단계 — 저장 확인
DeepSeek와 회색 Custom 배지의 apimaster가 함께 보여야 합니다.

4단계 — 채팅에서 모델 선택
입력창 오른쪽 모델 이름을 클릭하고 apimaster 그룹에서 선택하세요. DeepSeek 그룹이 아닙니다.

5단계 — 테스트
hi를 전송하세요. 정상적인 응답과 함께 푸터 메트릭(LLM / TTFT / tok)이 표시되면 키와 Base URL이 텍스트 요청에 대해 작동한다는 의미입니다. 비전을 검증하려면 이미지 입력을 구성한 후 이미지도 전송하세요.

문제 해결
| 증상 | 해결 |
|---|---|
| 폼을 찾을 수 없음 | Settings → Models → + Add a custom provider |
401 / MISSING_CREDENTIAL |
Edit에서 키를 다시 붙여넣기 |
| 연결 실패 | https://apimaster.ai/v1 |
UNKNOWN_MODEL |
Models 목록에 id 추가 |
| 공식 DeepSeek로 나감 | apimaster 그룹에서 선택 |
| Provider ID 오류 | 새로 만들고 기존 항목 Delete |
| 이미지 거부됨 | 모델의 비전 기능과 ~/.dsh/settings.yaml의 input / defaultInput을 확인하세요. 아래의 이미지 문제 해결 체크리스트를 참조하세요 |
수동으로 추가한 모델에서 이미지가 작동하지 않음
텍스트 요청은 작동하지만 이미지가 포함된 요청이 실패하는 경우 다음을 확인하세요:
- 모델 지원: 선택한 모델이 실제로 비전 / 이미지 입력을 지원하는지 확인합니다.
- 모델 구성: 카탈로그가 비전 기능을 식별하지 못하는 경우
.dsh/settings.yaml의 해당 항목에input: [text, image]가 선언되어 있는지 확인합니다. - 공급자 기본값: 또는 공급자에 폴백이 적용되는
defaultInput: [text, image]가 있는지 확인합니다. 모델 선언이나 카탈로그 항목이 텍스트 전용으로 지정된 경우 모델 수준input을 사용하여 지원되는 모델에 이미지를 명시적으로 활성화하세요. - 구성 로드: 실행 중인 인스턴스가 사용하는 설정 파일을 저장하고 다시 시도하세요. 변경 사항이 반영되지 않으면 UI를 새로 고치거나 DeepSeek Harness를 재시작하세요.
- API 호환성: 사용자 지정 공급자의 API 프로토콜과 엔드포인트가 Harness가 전송하는 이미지 입력 형식을 허용하는지 확인합니다. 텍스트 요청 성공만으로는 이미지 호환성을 검증할 수 없습니다.
두 YAML 예제는 비전 / 멀티모달 모델과 사용자 지정 공급자를 참조하세요.
체크리스트
-
npx @deepseek-ai/dsh web실행 - + Add a custom provider 사용
- API protocol =
openai-completions - Base URL =
https://apimaster.ai/v1 - apimaster 그룹 모델이 응답함
- 비전 모델의 경우 이미지 입력이 선언되었거나 카탈로그에서 해석되었으며, 이미지가 포함된 요청이 성공합니다
