> ## Documentation Index
> Fetch the complete documentation index at: https://apidoc.cometapi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# CometAPI와 함께 DeepSeek Harness 사용하기

> 채팅 완성, 응답, Anthropic 메시지 또는 Google generateContent를 통해 CometAPI를 사용하도록 DeepSeek Harness 0.1.0-rc.8을 구성합니다.

이 가이드를 사용하여 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) 을 CometAPI와 함께 사용하세요. DeepSeek Harness는 기본값이 `$DSH_HOME/settings.yaml`인 `~/.dsh/settings.yaml`에서 사용자 지정 모델 공급자를 로드합니다.

이 페이지의 구성은 `@deepseek-ai/dsh@0.1.0-rc.8`에서 검증되었습니다. 각 경로는 대표 모델 하나로 스트리밍 텍스트 턴과 파일 읽기 도구 루프를 완료했습니다. 이 범위가 모든 CometAPI 모델이 모든 API 형식을 허용한다는 의미는 아닙니다.

<Warning>
  DeepSeek Harness는 Developer Preview 단계이며 호환성이 깨지는 변경 사항이 도입될 수 있습니다. 이 가이드를 따를 때는 테스트된 패키지 버전을 고정하고, 업그레이드하기 전에 업스트림 릴리스 노트를 검토하세요.
</Warning>

공식 참고 자료:

* [DeepSeek Harness 리포지토리](https://github.com/deepseek-ai/deepseek-harness)
* [DeepSeek Harness 0.1.0-rc.8 소스](https://github.com/deepseek-ai/deepseek-harness/tree/dsh-v0.1.0-rc.8)
* [DeepSeek Harness CLI](https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.1.0-rc.8/apps/cli/README.md)
* [DeepSeek Harness 공급자 가이드](https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.1.0-rc.8/docs/user/guide/providers.md)

## 사전 요구 사항

* Node.js 및 npm
* CometAPI 계정 및 다음에서 발급받은 활성 API 키: [대시보드](https://www.cometapi.com/console/token)
* 다음 [CometAPI 모델 페이지](/ko/overview/models) 에서 사용하려는 각 API 형식에 맞는 모델 ID

## 공급자 경로 이해하기

`api` 값은 와이어 형식을 선택합니다. `baseURL`는 Harness가 추가하는 작업 경로 앞에서 끝납니다.

| 공급자 ID               | `api` 값              | `baseURL`                     | 요청 경로                  |
| -------------------- | -------------------- | ----------------------------- | ---------------------- |
| `cometapi-chat`      | `openai-completions` | `https://api.cometapi.com/v1` | `/v1/chat/completions` |
| `cometapi-responses` | `openai-responses`   | `https://api.cometapi.com/v1` | `/v1/responses`        |
| `cometapi-messages`  | `anthropic-messages` | `https://api.cometapi.com`    | `/v1/messages`         |

<Note>
  각 `your-model-id` 값을 서로 독립적으로 교체하세요. 해당 공급자 항목의 API 형식을 허용하는 모델을 선택하세요.
</Note>

## 제공업체 구성

<Steps>
  <Step title="테스트된 Harness 버전 확인">
    Harness를 구성하기 전에 고정된 패키지 버전을 확인하세요:

    ```bash theme={null}
    npx @deepseek-ai/dsh@0.1.0-rc.8 --version
    ```

    명령을 실행하면 `0.1.0-rc.8`가 출력되어야 합니다.
  </Step>

  <Step title="CometAPI API 키 설정">
    Harness를 시작하기 전에 키를 `COMETAPI_KEY`에 저장하세요:

    ```bash theme={null}
    read -rsp "CometAPI API key: " COMETAPI_KEY
    printf '\n'
    export COMETAPI_KEY
    ```

    Harness를 실행하는 모든 셸 세션에서 변수를 설정하세요. API 키를 버전 관리에 커밋하지 마세요.
  </Step>

  <Step title="CometAPI 제공업체 추가">
    `$DSH_HOME/settings.yaml`를 생성하세요. 파일에 이미 `llm-pi-ai` 섹션이 있으면 이 제공업체 항목을 기존 `providers` 맵에 병합하세요:

    ```yaml theme={null}
    llm-pi-ai:
      providers:
        cometapi-chat:
          displayName: CometAPI Chat Completions
          apiKeyEnv: COMETAPI_KEY
          api: openai-completions
          baseURL: https://api.cometapi.com/v1
          models:
            - id: your-model-id
        cometapi-responses:
          displayName: CometAPI Responses
          apiKeyEnv: COMETAPI_KEY
          api: openai-responses
          baseURL: https://api.cometapi.com/v1
          models:
            - id: your-model-id
        cometapi-messages:
          displayName: CometAPI Anthropic Messages
          apiKeyEnv: COMETAPI_KEY
          api: anthropic-messages
          baseURL: https://api.cometapi.com
          models:
            - id: your-model-id

    agent-default-model:
      provider: cometapi-responses
      model: your-model-id
    ```

    예시에서는 기본적으로 응답 제공업체를 선택합니다. 다른 구성 항목을 선택하려면 `agent-default-model.provider`와 `agent-default-model.model`를 변경하세요.

    Web UI를 사용하려면 `COMETAPI_KEY`를 내보낸 후 시작하고, 모델 설정을 사용하여 제공업체 항목을 추가 또는 편집하고 기본 모델을 선택하세요:

    ```bash theme={null}
    npx @deepseek-ai/dsh@0.1.0-rc.8 web
    ```

    기본 로컬 주소는 `http://127.0.0.1:3080`입니다. 이 가이드의 경로 이름과 기본 URL을 일치시키려면 YAML을 직접 사용하는 방법이 유지됩니다.
  </Step>

  <Step title="텍스트 턴 확인">
    Harness에서 사용할 프로젝트 디렉터리에서 일회성 헤드리스 작업을 실행하세요:

    ```bash theme={null}
    npx @deepseek-ai/dsh@0.1.0-rc.8 \
      --profile headless \
      "Reply exactly with: COMETAPI_DSH_OK"
    ```

    성공적으로 실행되면 `COMETAPI_DSH_OK`가 출력됩니다. 다른 제공업체를 확인하려면 `agent-default-model`를 업데이트하고 명령을 다시 실행하세요.
  </Step>

  <Step title="파일 도구 사용 확인">
    임시 센티널 파일을 만든 다음, Harness에 파일 도구를 사용해 이를 읽도록 요청하세요:

    ```bash theme={null}
    printf 'COMETAPI_DSH_TOOL_OK\n' > /tmp/cometapi-dsh-sentinel.txt
    npx @deepseek-ai/dsh@0.1.0-rc.8 \
      --profile headless \
      "Read /tmp/cometapi-dsh-sentinel.txt with a file tool, then reply with only its contents."
    ```

    최종 답변이 `COMETAPI_DSH_TOOL_OK`인지 확인하세요. 파일, 프로세스 및 네트워크 액세스를 허용하는 워크스페이스에서만 Harness를 실행하세요.
  </Step>
</Steps>

## 선택적 경로

Harness에는 `google`라는 기본 제공업체 경로가 하나 있습니다. 아래 구성은 이 경로를 CometAPI로 지정하므로 두 번째 Google 경로를 추가하는 대신 해당 경로의 기본 Google 엔드포인트를 대체합니다.

이 항목을 `llm-pi-ai.providers`에 병합한 다음 `agent-default-model`에서 선택하세요:

```yaml theme={null}
llm-pi-ai:
  providers:
    google:
      displayName: CometAPI Google generateContent
      apiKeyEnv: COMETAPI_KEY
      baseURL: https://api.cometapi.com/v1beta
      models:
        - id: your-model-id

agent-default-model:
  provider: google
  model: your-model-id
```

이 항목에 `api` 필드를 추가하지 마세요. 기본 제공 `google` 경로는 기본 Google 프로토콜을 유지하며 `/v1beta/models/{model}:streamGenerateContent?alt=sse`에 `x-goog-api-key` 인증을 사용해 스트리밍(Streaming) 요청을 전송합니다.

## 문제 해결

<AccordionGroup>
  <Accordion title="Harness에서 API 키가 누락되었다고 보고함">
    Harness를 실행하는 동일한 셸에서 `COMETAPI_KEY`이 설정되어 있는지 확인하세요. 환경 변수를 변경한 후 Harness를 다시 시작하세요.
  </Accordion>

  <Accordion title="Harness에 구성된 모델이 표시되지 않음">
    `$DSH_HOME/settings.yaml`이 유효한 YAML인지, 공급자가 `llm-pi-ai.providers` 아래에 있는지, 모델이 해당 공급자의 `models` 아래에 나열되어 있는지 확인하세요. 기본 `DSH_HOME`는 `~/.dsh`입니다.
  </Accordion>

  <Accordion title="채팅 완성 또는 응답에서 잘못된 경로를 사용함">
    `https://api.cometapi.com/v1`을 `baseURL`로 사용하세요. `/chat/completions` 또는 `/responses`을 추가하지 마세요. Harness가 작업 경로를 추가합니다.
  </Accordion>

  <Accordion title="Anthropic 메시지에서 경로 오류를 반환함">
    Messages `https://api.cometapi.com`을 `/v1` 없이 `baseURL`로 사용하세요. Anthropic 어댑터가 `/v1/messages`을 추가합니다.
  </Accordion>

  <Accordion title="Google에서 중복된 v1beta 경로를 생성함">
    `https://api.cometapi.com/v1beta`를 정확히 사용하세요. 모델 경로를 추가하지 말고, `api` 필드를 기본 제공 `google` 경로에 추가하지 마세요.
  </Accordion>

  <Accordion title="한 공급자에서는 작동하지만 다른 공급자에서는 작동하지 않는 모델">
    모델 가용성과 허용되는 API 형식은 다를 수 있습니다. 하나의 모델이 네 가지 형식 모두에서 작동한다고 가정하지 말고 각 공급자 항목에 맞는 모델을 선택하세요.
  </Accordion>

  <Accordion title="업그레이드 후 구성이 작동하지 않음">
    DeepSeek Harness는 Developer Preview에 있습니다. `@deepseek-ai/dsh@0.1.0-rc.8`로 돌아간 다음, 다른 버전에 맞게 구성을 조정하기 전에 업스트림 변경 사항을 검토하세요.
  </Accordion>
</AccordionGroup>

## 관련 리소스

* [CometAPI 빠른 시작](/ko/overview/quick-start)
* [CometAPI 모델 페이지](/ko/overview/models)
* [DeepSeek Harness 리포지토리](https://github.com/deepseek-ai/deepseek-harness)
* [DeepSeek Harness 공급자 가이드](https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.1.0-rc.8/docs/user/guide/providers.md)

<script type="application/ld+json">
  {`
    {
    "@context": "https://schema.org",
    "@graph": [
      {
        "@type": "HowTo",
        "@id": "https://apidoc.cometapi.com/integrations/deepseek-harness#howto",
        "name": "CometAPI에서 DeepSeek Harness 사용",
        "description": "Chat Completions, Responses, Anthropic Messages 또는 Google generateContent를 통해 CometAPI를 사용하도록 DeepSeek Harness 0.1.0-rc.8을 구성합니다.",
        "step": [
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/deepseek-harness#step-1",
            "position": 1,
            "name": "테스트된 Harness 버전 확인",
            "text": "고정된 DeepSeek Harness 0.1.0-rc.8 패키지 버전을 확인합니다."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/deepseek-harness#step-2",
            "position": 2,
            "name": "CometAPI API 키 설정",
            "text": "Harness를 시작하기 전에 CometAPI API 키를 COMETAPI_KEY에 저장합니다."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/deepseek-harness#step-3",
            "position": 3,
            "name": "CometAPI 공급자 추가",
            "text": "검증된 공급자 경로를 Harness settings.yaml 파일에 추가합니다."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/deepseek-harness#step-4",
            "position": 4,
            "name": "텍스트 턴 확인",
            "text": "고정된 헤드리스 작업을 실행하고 예상된 텍스트 응답을 확인합니다."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/deepseek-harness#step-5",
            "position": 5,
            "name": "파일 도구 사용 확인",
            "text": "Harness에 센티널 파일을 읽도록 요청하고 정확한 최종 답변을 확인합니다."
          }
        ]
      },
      {
        "@type": "BreadcrumbList",
        "itemListElement": [
          {
            "@type": "ListItem",
            "position": 1,
            "name": "CometAPI 문서",
            "item": "https://apidoc.cometapi.com/"
          },
          {
            "@type": "ListItem",
            "position": 2,
            "name": "통합",
            "item": "https://apidoc.cometapi.com/integrations"
          },
          {
            "@type": "ListItem",
            "position": 3,
            "name": "CometAPI에서 DeepSeek Harness 사용",
            "item": "https://apidoc.cometapi.com/integrations/deepseek-harness"
          }
        ]
      }
    ]
    }
    `}
</script>
