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

# Utiliser DeepSeek Harness avec CometAPI

> Configurez DeepSeek Harness 0.1.0-rc.8 pour utiliser CometAPI via Chat Completions, Responses, Anthropic Messages ou Google generateContent.

Utilisez ce guide pour exécuter [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) avec CometAPI. DeepSeek Harness charge les fournisseurs de modèles personnalisés depuis `$DSH_HOME/settings.yaml`, dont la valeur par défaut est `~/.dsh/settings.yaml`.

Les configurations de cette page ont été vérifiées avec `@deepseek-ai/dsh@0.1.0-rc.8`. Chaque route a effectué un échange textuel en Streaming et une boucle d’outil de lecture de fichiers avec un modèle représentatif. Cela ne signifie pas que tous les modèles CometAPI acceptent tous les formats d’API.

<Warning>
  DeepSeek Harness est en Developer Preview et peut introduire des changements incompatibles. Épinglez la version du package testée lorsque vous suivez ce guide et consultez les notes de version en amont avant toute mise à niveau.
</Warning>

Références officielles :

* [Dépôt DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)
* [Code source de DeepSeek Harness 0.1.0-rc.8](https://github.com/deepseek-ai/deepseek-harness/tree/dsh-v0.1.0-rc.8)
* [CLI de DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.1.0-rc.8/apps/cli/README.md)
* [Guide des fournisseurs DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.1.0-rc.8/docs/user/guide/providers.md)

## Prérequis

* Node.js et npm
* Un compte CometAPI avec une clé API active depuis le [tableau de bord](https://www.cometapi.com/console/token)
* Un ID de modèle de la [page Modèles de CometAPI](/fr/overview/models) pour chaque format d’API que vous prévoyez d’utiliser

## Comprendre les routes des fournisseurs

La valeur `api` sélectionne le format de transmission. `baseURL` s’arrête avant le chemin d’opération ajouté par Harness.

| ID du fournisseur    | `api` valeur         | `baseURL`                     | Chemin de requête      |
| -------------------- | -------------------- | ----------------------------- | ---------------------- |
| `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>
  Remplacez chaque valeur `your-model-id` indépendamment. Choisissez un modèle qui accepte le format d’API de son entrée de fournisseur.
</Note>

## Configurer les fournisseurs

<Steps>
  <Step title="Confirmer la version de Harness testée">
    Confirmez la version du package épinglée avant de configurer Harness :

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

    La commande doit afficher `0.1.0-rc.8`.
  </Step>

  <Step title="Définir votre clé API CometAPI">
    Stockez votre clé dans `COMETAPI_KEY` avant de démarrer Harness :

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

    Définissez la variable dans chaque session shell qui lance Harness. Ne validez pas de clés API dans le contrôle de version.
  </Step>

  <Step title="Ajouter les fournisseurs CometAPI">
    Créez `$DSH_HOME/settings.yaml`. Si le fichier contient déjà une section `llm-pi-ai`, fusionnez ces entrées de fournisseur dans sa map `providers` existante :

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

    L’exemple sélectionne le fournisseur Responses par défaut. Modifiez `agent-default-model.provider` et `agent-default-model.model` pour sélectionner une autre entrée configurée.

    Si vous préférez l’interface Web, démarrez-la après avoir exporté `COMETAPI_KEY`, puis utilisez ses paramètres de modèle pour ajouter ou modifier des entrées de fournisseur et sélectionner le modèle par défaut :

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

    L’adresse locale par défaut est `http://127.0.0.1:3080`. YAML reste la méthode directe pour faire correspondre les noms de routes et les URL de base de ce guide.
  </Step>

  <Step title="Vérifier un tour de texte">
    Exécutez une tâche ponctuelle sans interface depuis le répertoire de projet que vous souhaitez faire utiliser à Harness :

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

    Une exécution réussie affiche `COMETAPI_DSH_OK`. Pour vérifier un autre fournisseur, mettez à jour `agent-default-model` et exécutez de nouveau la commande.
  </Step>

  <Step title="Vérifier l’utilisation de l’outil de fichiers">
    Créez un fichier sentinelle temporaire, puis demandez à Harness de le lire à l’aide d’un outil de fichiers :

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

    Confirmez que la réponse finale est `COMETAPI_DSH_TOOL_OK`. Exécutez Harness uniquement dans un espace de travail où vous acceptez ses accès aux fichiers, aux processus et au réseau.
  </Step>
</Steps>

## Route facultative

Harness possède une route de fournisseur intégrée nommée `google`. La configuration ci-dessous dirige cette route vers CometAPI afin de remplacer le point de terminaison Google natif de la route au lieu d’ajouter une seconde route Google.

Fusionnez cette entrée dans `llm-pi-ai.providers`, puis sélectionnez-la dans `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
```

N’ajoutez pas de champ `api` à cette entrée. La route `google` intégrée conserve son protocole Google natif et envoie des requêtes Streaming à `/v1beta/models/{model}:streamGenerateContent?alt=sse` avec l’authentification `x-goog-api-key`.

## Résolution des problèmes

<AccordionGroup>
  <Accordion title="Harness indique que la clé API est manquante">
    Vérifiez que `COMETAPI_KEY` est défini dans le même shell que celui qui lance Harness. Redémarrez Harness après avoir modifié la variable d’environnement.
  </Accordion>

  <Accordion title="Harness n’affiche pas le modèle configuré">
    Vérifiez que `$DSH_HOME/settings.yaml` est un YAML valide, que le fournisseur se trouve sous `llm-pi-ai.providers` et que le modèle est répertorié sous `models` de ce fournisseur. La valeur `DSH_HOME` par défaut est `~/.dsh`.
  </Accordion>

  <Accordion title="Chat Completions ou Responses utilise le mauvais chemin">
    Utilisez `https://api.cometapi.com/v1` comme `baseURL`. N’ajoutez pas `/chat/completions` ni `/responses` ; Harness ajoute le chemin de l’opération.
  </Accordion>

  <Accordion title="Anthropic Messages renvoie une erreur de chemin">
    Utilisez `https://api.cometapi.com` sans `/v1` comme `baseURL` de Messages. L’adaptateur Anthropic ajoute `/v1/messages`.
  </Accordion>

  <Accordion title="Google génère un chemin v1beta dupliqué">
    Utilisez exactement `https://api.cometapi.com/v1beta`. N’ajoutez pas de chemin de modèle et n’ajoutez pas de champ `api` à la route `google` intégrée.
  </Accordion>

  <Accordion title="Un modèle fonctionne avec un fournisseur, mais pas avec un autre">
    La disponibilité des modèles et les formats d’API acceptés peuvent varier. Choisissez un modèle pour chaque entrée de fournisseur au lieu de supposer qu’un même modèle fonctionne avec les quatre formats.
  </Accordion>

  <Accordion title="La configuration cesse de fonctionner après une mise à niveau">
    DeepSeek Harness est en aperçu développeur. Revenez à `@deepseek-ai/dsh@0.1.0-rc.8`, puis examinez les modifications en amont avant d’adapter la configuration à une autre version.
  </Accordion>
</AccordionGroup>

## Ressources associées

* [Démarrage rapide de CometAPI](/fr/overview/quick-start)
* [Page des modèles CometAPI](/fr/overview/models)
* [Dépôt DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)
* [Guide du fournisseur 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": "Utiliser DeepSeek Harness avec CometAPI",
        "description": "Configurez DeepSeek Harness 0.1.0-rc.8 pour utiliser CometAPI via Chat Completions, Responses, Anthropic Messages ou Google generateContent.",
        "step": [
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/deepseek-harness#step-1",
            "position": 1,
            "name": "Confirmer la version de Harness testée",
            "text": "Confirmez la version 0.1.0-rc.8 du package DeepSeek Harness verrouillée."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/deepseek-harness#step-2",
            "position": 2,
            "name": "Définir votre clé API CometAPI",
            "text": "Stockez la clé API CometAPI dans COMETAPI_KEY avant de démarrer Harness."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/deepseek-harness#step-3",
            "position": 3,
            "name": "Ajouter les fournisseurs CometAPI",
            "text": "Ajoutez les routes de fournisseur vérifiées au fichier settings.yaml de Harness."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/deepseek-harness#step-4",
            "position": 4,
            "name": "Vérifier un échange de texte",
            "text": "Exécutez une tâche headless verrouillée et confirmez la réponse textuelle attendue."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/deepseek-harness#step-5",
            "position": 5,
            "name": "Vérifier l’utilisation de l’outil de fichier",
            "text": "Demandez à Harness de lire un fichier sentinelle et confirmez la réponse finale exacte."
          }
        ]
      },
      {
        "@type": "BreadcrumbList",
        "itemListElement": [
          {
            "@type": "ListItem",
            "position": 1,
            "name": "Documentation CometAPI",
            "item": "https://apidoc.cometapi.com/"
          },
          {
            "@type": "ListItem",
            "position": 2,
            "name": "Intégrations",
            "item": "https://apidoc.cometapi.com/integrations"
          },
          {
            "@type": "ListItem",
            "position": 3,
            "name": "Utiliser DeepSeek Harness avec CometAPI",
            "item": "https://apidoc.cometapi.com/integrations/deepseek-harness"
          }
        ]
      }
    ]
    }
    `}
</script>
