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

# Использование Promptfoo с CometAPI

> Используйте это руководство, чтобы настроить Promptfoo с CometAPI, указав base URL, API key, а также параметры model или provider.

[Promptfoo](https://www.promptfoo.dev/) — это фреймворк для оценки prompt, регрессионного тестирования и AI red teaming. Promptfoo включает provider `cometapi`, который вызывает CometAPI через OpenAI-совместимые endpoints.

## Предварительные требования

* Node.js 18+
* Promptfoo, установленный локально, или запуск через `npx`
* Учетная запись CometAPI с активным API key — [получите его в панели управления](https://www.cometapi.com/console/token)
* model ID со [страницы моделей CometAPI](/ru/overview/models)

## Настройка интеграции

<Steps>
  <Step title="Установите ваш CometAPI API key">
    Установите `COMETAPI_KEY` перед запуском оценок:

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

  <Step title="Выберите формат provider">
    Promptfoo использует следующий формат provider ID для CometAPI:

    ```yaml theme={null}
    providers:
      - cometapi:<type>:<model>
    ```

    Используйте следующие типы provider:

    | Type         | Use case                                     |
    | ------------ | -------------------------------------------- |
    | `chat`       | Chat completions, vision и multimodal prompt |
    | `completion` | Модели завершения текста                     |
    | `embedding`  | Оценка text embedding                        |
    | `image`      | Оценка генерации изображений                 |

    Вы также можете использовать `cometapi:your-model-id` для режима chat по умолчанию.
  </Step>

  <Step title="Запустите оценку через CLI">
    Следующая команда запускает оценку chat с одним prompt:

    ```bash theme={null}
    npx promptfoo@latest eval \
      --prompts "Write a concise release note for {{feature}}" \
      --vars feature="a unified API dashboard" \
      -r cometapi:chat:your-model-id
    ```
  </Step>

  <Step title="Создайте файл конфигурации Promptfoo">
    Следующий файл `promptfooconfig.yaml` оценивает тот же prompt на модели CometAPI:

    ```yaml theme={null}
    prompts:
      - "Classify this support request: {{message}}"

    providers:
      - id: cometapi:chat:your-model-id
        config:
          temperature: 0.2
          max_tokens: 256

    tests:
      - vars:
          message: "The API key works locally but fails in production."
        assert:
          - type: contains-any
            value:
              - authentication
              - configuration
    ```

    Запустите файл конфигурации с помощью Promptfoo:

    ```bash theme={null}
    npx promptfoo@latest eval -c promptfooconfig.yaml
    ```
  </Step>
</Steps>

## Примеры provider

Используйте тип provider, соответствующий поведению модели, которое вы хотите оценить:

```yaml theme={null}
providers:
  - cometapi:chat:your-model-id
  - cometapi:completion:your-model-id
  - cometapi:embedding:your-model-id
  - cometapi:image:your-model-id
```

Для multimodal-тестов сохраняйте тип provider `chat` и передавайте переменные изображения через тестовые переменные Promptfoo.

## Устранение неполадок

<AccordionGroup>
  <Accordion title="Promptfoo не может найти API key">
    Убедитесь, что `COMETAPI_KEY` экспортирован в той же сессии shell, в которой выполняется `promptfoo eval`.
  </Accordion>

  <Accordion title="Тип provider не соответствует модели">
    Используйте `chat` для разговорных и multimodal-моделей, `embedding` для embedding-моделей и `image` для моделей генерации изображений.
  </Accordion>

  <Accordion title="model ID не работает">
    Замените `your-model-id` на точный model ID со [страницы моделей CometAPI](/ru/overview/models).
  </Accordion>
</AccordionGroup>

## Связанные ресурсы

* [Провайдер Promptfoo CometAPI](https://www.promptfoo.dev/docs/providers/cometapi/)
* [Быстрый старт CometAPI](/ru/overview/quick-start)
* [Страница моделей CometAPI](/ru/overview/models)

<script type="application/ld+json">
  {`
    {
    "@context": "https://schema.org",
    "@graph": [
      {
        "@type": "HowTo",
        "@id": "https://apidoc.cometapi.com/integrations/promptfoo#howto",
        "name": "Использование Promptfoo с CometAPI",
        "description": "Используйте это руководство, чтобы настроить Promptfoo с CometAPI, указав базовый URL, API-ключ и параметры model или provider.",
        "step": [
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/promptfoo#step-1",
            "position": 1,
            "name": "Укажите свой API-ключ CometAPI",
            "text": "Сохраните свой API-ключ CometAPI в переменной окружения или в поле настроек, используемом интеграцией."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/promptfoo#step-2",
            "position": 2,
            "name": "Выберите формат provider",
            "text": "Выполните шаг «Выберите формат provider» в руководстве «Использование Promptfoo с CometAPI»."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/promptfoo#step-3",
            "position": 3,
            "name": "Запустите CLI-оценку",
            "text": "Выполните шаг «Запустите CLI-оценку» в руководстве «Использование Promptfoo с CometAPI»."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/promptfoo#step-4",
            "position": 4,
            "name": "Создайте файл конфигурации Promptfoo",
            "text": "Выполните шаг «Создайте файл конфигурации Promptfoo» в руководстве «Использование Promptfoo с CometAPI»."
          }
        ]
      },
      {
        "@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": "Использование Promptfoo с CometAPI",
            "item": "https://apidoc.cometapi.com/integrations/promptfoo"
          }
        ]
      }
    ]
    }
    `}
</script>
