> ## 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.

# Sử dụng DeepSeek Harness với CometAPI

> Cấu hình DeepSeek Harness 0.1.0-rc.8 để sử dụng CometAPI thông qua Chat Completions, Responses, Anthropic Messages hoặc Google generateContent.

Sử dụng hướng dẫn này để chạy [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) với CometAPI. DeepSeek Harness tải các nhà cung cấp model tùy chỉnh từ `$DSH_HOME/settings.yaml`, với giá trị mặc định là `~/.dsh/settings.yaml`.

Các cấu hình trên trang này đã được xác minh với `@deepseek-ai/dsh@0.1.0-rc.8`. Mỗi route đã hoàn tất một lượt văn bản Streaming và một vòng lặp công cụ đọc tệp với một model đại diện. Phạm vi này không có nghĩa là mọi model CometAPI đều chấp nhận mọi định dạng API.

<Warning>
  DeepSeek Harness đang ở giai đoạn Developer Preview và có thể có các thay đổi không tương thích. Hãy cố định phiên bản gói đã được kiểm thử khi làm theo hướng dẫn này, đồng thời xem lại ghi chú phát hành upstream trước khi nâng cấp.
</Warning>

Tài liệu tham khảo chính thức:

* [Kho lưu trữ DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)
* [Mã nguồn DeepSeek Harness 0.1.0-rc.8](https://github.com/deepseek-ai/deepseek-harness/tree/dsh-v0.1.0-rc.8)
* [CLI DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.1.0-rc.8/apps/cli/README.md)
* [Hướng dẫn nhà cung cấp DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.1.0-rc.8/docs/user/guide/providers.md)

## Điều kiện tiên quyết

* Node.js và npm
* Tài khoản CometAPI có API key đang hoạt động từ [bảng điều khiển](https://www.cometapi.com/console/token)
* Một ID model từ [trang Models của CometAPI](/vi/overview/models) cho từng định dạng API bạn dự định sử dụng

## Tìm hiểu các route của nhà cung cấp

Giá trị `api` chọn định dạng truyền tải. `baseURL` dừng trước đường dẫn thao tác mà Harness thêm vào.

| ID nhà cung cấp      | `api` giá trị        | `baseURL`                     | Đường dẫn yêu cầu      |
| -------------------- | -------------------- | ----------------------------- | ---------------------- |
| `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>
  Thay thế độc lập từng giá trị `your-model-id`. Chọn một model chấp nhận định dạng API của mục nhập nhà cung cấp tương ứng.
</Note>

## Cấu hình các provider

<Steps>
  <Step title="Xác nhận phiên bản Harness đã kiểm thử">
    Xác nhận phiên bản package đã ghim trước khi cấu hình Harness:

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

    Lệnh sẽ in ra `0.1.0-rc.8`.
  </Step>

  <Step title="Thiết lập API key CometAPI của bạn">
    Lưu key của bạn trong `COMETAPI_KEY` trước khi khởi động Harness:

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

    Thiết lập biến trong mọi phiên shell khởi chạy Harness. Không commit API key vào hệ thống quản lý phiên bản.
  </Step>

  <Step title="Thêm các provider CometAPI">
    Tạo `$DSH_HOME/settings.yaml`. Nếu tệp đã có phần `llm-pi-ai`, hãy gộp các mục provider này vào map `providers` hiện có của tệp:

    ```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
    ```

    Ví dụ này chọn provider Responses theo mặc định. Thay đổi `agent-default-model.provider` và `agent-default-model.model` để chọn một mục đã cấu hình khác.

    Nếu bạn muốn dùng Web UI, hãy khởi động nó sau khi export `COMETAPI_KEY`, rồi dùng phần cài đặt model để thêm hoặc chỉnh sửa các mục provider và chọn model mặc định:

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

    Địa chỉ cục bộ mặc định là `http://127.0.0.1:3080`. YAML vẫn là cách trực tiếp để khớp tên route và base URL trong hướng dẫn này.
  </Step>

  <Step title="Xác minh một lượt tương tác văn bản">
    Chạy một tác vụ headless một lần từ thư mục dự án mà bạn muốn Harness sử dụng:

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

    Một lần chạy thành công sẽ in ra `COMETAPI_DSH_OK`. Để kiểm tra provider khác, hãy cập nhật `agent-default-model` rồi chạy lại lệnh.
  </Step>

  <Step title="Xác minh việc sử dụng công cụ tệp">
    Tạo một tệp sentinel tạm thời, rồi yêu cầu Harness đọc tệp đó bằng công cụ tệp:

    ```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."
    ```

    Xác nhận câu trả lời cuối cùng là `COMETAPI_DSH_TOOL_OK`. Chỉ chạy Harness trong workspace nơi bạn chấp nhận quyền truy cập tệp, tiến trình và mạng của nó.
  </Step>
</Steps>

## Route tùy chọn

Harness có một route provider tích hợp tên là `google`. Cấu hình bên dưới trỏ route đó đến CometAPI, nên nó thay thế endpoint Google gốc của route thay vì thêm route Google thứ hai.

Gộp mục này vào `llm-pi-ai.providers`, rồi chọn mục đó trong `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
```

Không thêm trường `api` vào mục này. Route `google` tích hợp giữ nguyên giao thức Google gốc và gửi các yêu cầu Streaming đến `/v1beta/models/{model}:streamGenerateContent?alt=sse` bằng xác thực `x-goog-api-key`.

## Khắc phục sự cố

<AccordionGroup>
  <Accordion title="Harness báo thiếu API key">
    Xác nhận rằng `COMETAPI_KEY` được thiết lập trong cùng shell dùng để khởi chạy Harness. Khởi động lại Harness sau khi thay đổi biến môi trường.
  </Accordion>

  <Accordion title="Harness không hiển thị model đã cấu hình">
    Xác nhận rằng `$DSH_HOME/settings.yaml` là YAML hợp lệ, provider nằm trong `llm-pi-ai.providers`, và model được liệt kê trong `models` của provider đó. `DSH_HOME` mặc định là `~/.dsh`.
  </Accordion>

  <Accordion title="Chat Completions hoặc Responses sử dụng đường dẫn sai">
    Sử dụng `https://api.cometapi.com/v1` làm `baseURL`. Không thêm `/chat/completions` hoặc `/responses`; Harness sẽ thêm đường dẫn thao tác.
  </Accordion>

  <Accordion title="Anthropic Messages trả về lỗi đường dẫn">
    Sử dụng `https://api.cometapi.com` không kèm `/v1` làm `baseURL` của Messages. Adapter Anthropic sẽ thêm `/v1/messages`.
  </Accordion>

  <Accordion title="Google tạo đường dẫn v1beta bị trùng lặp">
    Sử dụng chính xác `https://api.cometapi.com/v1beta`. Không thêm đường dẫn model và không thêm trường `api` vào route `google` tích hợp sẵn.
  </Accordion>

  <Accordion title="Một model hoạt động trên provider này nhưng không hoạt động trên provider khác">
    Khả năng cung cấp model và các định dạng API được chấp nhận có thể khác nhau. Hãy chọn một model cho từng mục provider thay vì cho rằng một model hoạt động trên cả bốn định dạng.
  </Accordion>

  <Accordion title="Cấu hình ngừng hoạt động sau khi nâng cấp">
    DeepSeek Harness đang ở giai đoạn Developer Preview. Hãy quay lại `@deepseek-ai/dsh@0.1.0-rc.8`, sau đó xem xét các thay đổi thượng nguồn trước khi điều chỉnh cấu hình cho một phiên bản khác.
  </Accordion>
</AccordionGroup>

## Tài nguyên liên quan

* [Bắt đầu nhanh với CometAPI](/vi/overview/quick-start)
* [Trang Models của CometAPI](/vi/overview/models)
* [Kho lưu trữ DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)
* [Hướng dẫn provider của 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": "Sử dụng DeepSeek Harness với CometAPI",
        "description": "Cấu hình DeepSeek Harness 0.1.0-rc.8 để sử dụng CometAPI thông qua Chat Completions, Responses, Anthropic Messages hoặc Google generateContent.",
        "step": [
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/deepseek-harness#step-1",
            "position": 1,
            "name": "Xác nhận phiên bản Harness đã được kiểm thử",
            "text": "Xác nhận phiên bản gói DeepSeek Harness 0.1.0-rc.8 đã được ghim."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/deepseek-harness#step-2",
            "position": 2,
            "name": "Thiết lập khóa API CometAPI",
            "text": "Lưu khóa API CometAPI trong COMETAPI_KEY trước khi khởi động Harness."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/deepseek-harness#step-3",
            "position": 3,
            "name": "Thêm các provider CometAPI",
            "text": "Thêm các route provider đã được xác minh vào tệp settings.yaml của Harness."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/deepseek-harness#step-4",
            "position": 4,
            "name": "Xác minh một lượt văn bản",
            "text": "Chạy một tác vụ headless đã được ghim và xác nhận phản hồi văn bản như mong đợi."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/deepseek-harness#step-5",
            "position": 5,
            "name": "Xác minh việc sử dụng công cụ tệp",
            "text": "Yêu cầu Harness đọc một tệp sentinel và xác nhận câu trả lời cuối cùng chính xác."
          }
        ]
      },
      {
        "@type": "BreadcrumbList",
        "itemListElement": [
          {
            "@type": "ListItem",
            "position": 1,
            "name": "Tài liệu CometAPI",
            "item": "https://apidoc.cometapi.com/"
          },
          {
            "@type": "ListItem",
            "position": 2,
            "name": "Tích hợp",
            "item": "https://apidoc.cometapi.com/integrations"
          },
          {
            "@type": "ListItem",
            "position": 3,
            "name": "Sử dụng DeepSeek Harness với CometAPI",
            "item": "https://apidoc.cometapi.com/integrations/deepseek-harness"
          }
        ]
      }
    ]
    }
    `}
</script>
