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

# API văn bản và chat

> Chọn API văn bản và chat của CometAPI phù hợp với định dạng request của bạn: Chat Completions, Responses, Anthropic Messages hoặc tạo nội dung Gemini.

Sử dụng tài liệu model văn bản của CometAPI bằng cách đối chiếu định dạng request của bạn với trang triển khai định dạng đó. Với chat tương thích OpenAI, hãy bắt đầu với Chat Completions hoặc Responses; với các định dạng gốc của nhà cung cấp, hãy dùng trang tương ứng của nhà cung cấp đó.

## Chọn một API văn bản và chat

<CardGroup cols={2}>
  <Card title="Tạo một chat completion" icon="message" href="/api/text/chat">
    Gửi tin nhắn chat tương thích OpenAI với một mảng `messages`.
  </Card>

  <Card title="Tạo một phản hồi của model" icon="sparkles" href="/api/text/responses">
    Sử dụng suy luận, đầu ra Multimodal và các công cụ tích hợp sẵn thông qua Responses API.
  </Card>

  <Card title="Tạo một Message" icon="message" href="/api/text/anthropic-messages">
    Gọi các quy trình Messages tương thích Claude với các trường gốc của nhà cung cấp.
  </Card>

  <Card title="Tạo nội dung" icon="sparkles" href="/api/text/gemini-generating-content">
    Gửi request tạo nội dung gốc của Gemini.
  </Card>
</CardGroup>

## Gọi một model văn bản

Sử dụng bất kỳ model ID có khả năng xử lý văn bản nào từ [trang Models](/vi/overview/models) hoặc [thư mục model](https://www.cometapi.com/models/). Các ví dụ bên dưới gọi endpoint Chat Completions tương thích OpenAI.

<Note>
  Các ví dụ này sử dụng giá trị giữ chỗ `your-model-id`. Hãy thay thế nó bằng một model ID văn bản khả dụng từ [trang Models](/vi/overview/models) hoặc [thư mục model](https://www.cometapi.com/models/) trước khi bạn chạy request.
</Note>

<CodeGroup>
  ```python Python theme={null}
  import os
  import requests

  response = requests.post(
      "https://api.cometapi.com/v1/chat/completions",
      headers={
          "Authorization": "Bearer " + os.environ["COMETAPI_KEY"],
          "Content-Type": "application/json",
      },
      json={
          "model": "your-model-id",
          "messages": [
              {
                  "role": "user",
                  "content": "Write one sentence about CometAPI.",
              }
          ],
      },
      timeout=30,
  )

  response.raise_for_status()
  result = response.json()
  print(result["choices"][0]["message"]["content"])
  ```

  ```javascript Node.js theme={null}
  const response = await fetch("https://api.cometapi.com/v1/chat/completions", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.COMETAPI_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      model: "your-model-id",
      messages: [
        {
          role: "user",
          content: "Write one sentence about CometAPI.",
        },
      ],
    }),
  });

  if (!response.ok) {
    throw new Error(await response.text());
  }

  const result = await response.json();
  console.log(result.choices[0].message.content);
  ```

  ```bash cURL theme={null}
  curl https://api.cometapi.com/v1/chat/completions \
    -H "Authorization: Bearer $COMETAPI_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "your-model-id",
      "messages": [
        {
          "role": "user",
          "content": "Write one sentence about CometAPI."
        }
      ]
    }'
  ```
</CodeGroup>

## Ví dụ phản hồi

Một phản hồi thành công có thể trông như sau. Giá trị các trường sẽ khác nhau tùy theo model và request:

```json theme={null}
{
  "id": "chatcmpl_example",
  "object": "chat.completion",
  "created": 1779960520,
  "model": "your-model-id",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "CometAPI lets developers route model requests through one API surface."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 12,
    "completion_tokens": 14,
    "total_tokens": 26
  }
}
```

## Bản ghi model ví dụ

<Info>
  Phản hồi danh mục model ví dụ này cho thấy envelope `/api/models` và hình dạng của một bản ghi model văn bản. Đây không phải là danh sách model đầy đủ.
</Info>

```bash cURL theme={null}
curl https://api.cometapi.com/api/models
```

```json theme={null}
{
  "success": true,
  "page": 1,
  "page_size": 20,
  "total": 302,
  "data": [
    {
      "created": 1773798949,
      "id": "your-text-model-id",
      "code": "your-text-model-id",
      "provider": "ExampleProvider",
      "provider_code": "example",
      "name": "Example text model",
      "model_type": "text",
      "features": [
        "text-to-text"
      ],
      "endpoints": "{\n  \"openai-chat\": {\n    \"path\": \"/v1/chat/completions\",\n    \"method\": \"POST\"\n  }\n}",
      "pricing": {
        "currency": "USD / M Tokens",
        "input": 0.5,
        "output": 1.5,
        "per_request": null,
        "per_second": null
      }
    }
  ]
}
```

## Các lỗi thường gặp

<AccordionGroup>
  <Accordion title="Thiếu hoặc API key không hợp lệ">
    Gửi `Authorization: Bearer $COMETAPI_KEY`.
  </Accordion>

  <Accordion title="Sai base URL">
    Sử dụng `https://api.cometapi.com/v1` cho các yêu cầu tương thích OpenAI.
  </Accordion>

  <Accordion title="Sai loại model">
    Chọn một model có khả năng xử lý văn bản từ [trang Models](/vi/overview/models).
  </Accordion>

  <Accordion title="Lỗi tham số dành riêng cho provider">
    Xóa các trường tùy chọn, sau đó thêm lại từng trường một.
  </Accordion>
</AccordionGroup>

## Mã lỗi và chiến lược thử lại

<AccordionGroup>
  <Accordion title="400">
    Không thử lại cho đến khi phần thân yêu cầu được sửa.
  </Accordion>

  <Accordion title="401">
    Không thử lại cho đến khi API key hiện diện và hợp lệ.
  </Accordion>

  <Accordion title="404">
    Kiểm tra base URL, path và model ID trước khi thử lại.
  </Accordion>

  <Accordion title="429">
    Thử lại với exponential backoff và giảm mức độ đồng thời.
  </Accordion>

  <Accordion title="500 or 503">
    Thử lại với backoff cho các lỗi provider hoặc dịch vụ mang tính tạm thời.
  </Accordion>
</AccordionGroup>

<Tip>
  Để tham khảo các mẫu triển khai, xem [Mã lỗi và chiến lược thử lại](/vi/guides/error-codes-and-retry-strategy) và [Giới hạn tốc độ và mức độ đồng thời](/vi/guides/rate-limits-and-concurrency).
</Tip>

## Giá và thư mục model

<CardGroup cols={3}>
  <Card title="Trang Models" icon="list" href="/overview/models">
    Tìm hiểu cách CometAPI hiển thị model ID trong tài liệu.
  </Card>

  <Card title="Thư mục model" icon="puzzle-piece" href="https://www.cometapi.com/models/">
    Duyệt qua khả năng sẵn có và năng lực của model.
  </Card>

  <Card title="Giá" icon="tag" href="https://www.cometapi.com/pricing/">
    Kiểm tra giá trước khi bạn gọi một model.
  </Card>
</CardGroup>
