> ## 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와 함께 Promptfoo 사용하기

> 이 가이드를 사용해 base URL, API key, model 또는 provider 옵션을 설정하여 Promptfoo를 CometAPI와 구성하세요.

[Promptfoo](https://www.promptfoo.dev/)는 프롬프트 평가, 회귀 테스트, AI 레드 팀 구성을 위한 프레임워크입니다. Promptfoo에는 OpenAI 호환 엔드포인트를 통해 CometAPI를 호출하는 `cometapi` provider가 포함되어 있습니다.

## 사전 요구 사항

* Node.js 18+
* 로컬에 설치된 Promptfoo 또는 `npx`를 통해 실행
* 활성 API key가 있는 CometAPI 계정 — [대시보드에서 발급받기](https://www.cometapi.com/console/token)
* [CometAPI Models 페이지](/ko/overview/models)의 model ID

## 통합 구성하기

<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는 CometAPI에 대해 다음 provider ID 형식을 사용합니다:

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

    다음 provider type을 사용하세요:

    | Type         | 사용 사례                            |
    | ------------ | -------------------------------- |
    | `chat`       | 채팅 완성, 비전, 멀티모달(Multimodal) 프롬프트 |
    | `completion` | 텍스트 완성 모델                        |
    | `embedding`  | 텍스트 임베딩 평가                       |
    | `image`      | 이미지 생성 평가                        |

    기본 chat 모드에는 `cometapi:your-model-id`도 사용할 수 있습니다.
  </Step>

  <Step title="CLI 평가 실행">
    다음 명령은 단일 프롬프트 채팅 평가를 실행합니다:

    ```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`은 동일한 프롬프트를 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 type을 사용하세요:

```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) 테스트의 경우 `chat` provider type을 유지하고 Promptfoo 테스트 변수로 이미지 변수를 전달하세요.

## 문제 해결

<AccordionGroup>
  <Accordion title="Promptfoo가 API key를 찾을 수 없습니다">
    `promptfoo eval`을 실행하는 동일한 셸 세션에서 `COMETAPI_KEY`가 export되었는지 확인하세요.
  </Accordion>

  <Accordion title="provider type이 모델과 일치하지 않습니다">
    대화형 및 멀티모달 모델에는 `chat`, 임베딩 모델에는 `embedding`, 이미지 생성 모델에는 `image`를 사용하세요.
  </Accordion>

  <Accordion title="model ID가 실패합니다">
    `your-model-id`를 [CometAPI Models 페이지](/ko/overview/models)의 정확한 model ID로 바꾸세요.
  </Accordion>
</AccordionGroup>

## 관련 리소스

* [Promptfoo CometAPI provider](https://www.promptfoo.dev/docs/providers/cometapi/)
* [CometAPI 빠른 시작](/ko/overview/quick-start)
* [CometAPI Models 페이지](/ko/overview/models)

<script type="application/ld+json">
  {`
    {
    "@context": "https://schema.org",
    "@graph": [
      {
        "@type": "HowTo",
        "@id": "https://apidoc.cometapi.com/integrations/promptfoo#howto",
        "name": "CometAPI와 함께 Promptfoo 사용하기",
        "description": "이 가이드를 사용해 base URL, API key, model 또는 provider 옵션을 설정하여 Promptfoo를 CometAPI와 함께 구성하세요.",
        "step": [
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/promptfoo#step-1",
            "position": 1,
            "name": "CometAPI API key 설정",
            "text": "통합에서 사용하는 환경 변수 또는 설정 필드에 CometAPI API key를 저장하세요."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/promptfoo#step-2",
            "position": 2,
            "name": "provider 형식 선택",
            "text": "CometAPI와 함께 Promptfoo 사용하기 가이드에서 provider 형식 선택 단계를 완료하세요."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/promptfoo#step-3",
            "position": 3,
            "name": "CLI 평가 실행",
            "text": "CometAPI와 함께 Promptfoo 사용하기 가이드에서 CLI 평가 실행 단계를 완료하세요."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/promptfoo#step-4",
            "position": 4,
            "name": "Promptfoo config 파일 만들기",
            "text": "CometAPI와 함께 Promptfoo 사용하기 가이드에서 Promptfoo config 파일 만들기 단계를 완료하세요."
          }
        ]
      },
      {
        "@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와 함께 Promptfoo 사용하기",
            "item": "https://apidoc.cometapi.com/integrations/promptfoo"
          }
        ]
      }
    ]
    }
    `}
</script>
