---
title: การใช้งานและการส่งออกของ Gateway
description: แท็บการใช้งานแสดงค่าใช้จ่าย คำขอ และโมเดล คีย์ แผนก ผู้ใช้ปลายทางของแต่ละคำขอ ส่งออกทั้งเดือนเป็น CSV ได้จากคอนโซลหรือ gateway.usage.export ไม่มีพรอมต์หรือคำตอบ
url: https://agentlab.cresclab.com/docs/th/gateway/usage
language: th
updated: 2026-10-28
---

# การใช้งานและการส่งออกของ Gateway

แท็บการใช้งานแสดงค่าใช้จ่าย คำขอ และโมเดล คีย์ แผนก ผู้ใช้ปลายทางของแต่ละคำขอ ส่งออกทั้งเดือนเป็น CSV ได้จากคอนโซลหรือ gateway.usage.export ไม่มีพรอมต์หรือคำตอบ

## แท็บการใช้งาน

**AI Gateway › การใช้งาน** มีไว้สำหรับเจ้าของและผู้ดูแลเวิร์กสเปซ เลือกช่วงเวลา และเลือกคีย์ใดคีย์หนึ่งได้ถ้าต้องการ หน้านี้แสดงค่าใช้จ่าย จำนวนคำขอ และอัตราสำเร็จ แนวโน้มรายวัน ค่าใช้จ่ายแยกตามคีย์และตามโมเดล วิธีที่ `auto` เลือก แล้วตามด้วยแต่ละคำขอ ได้แก่ เวลาที่ทำงาน คีย์ โมเดลที่ตอบและเหตุผล โทเค็น และผลลัพธ์ คำขอที่ถูกปฏิเสธจะบอกว่าขีดจำกัดใดเป็นผู้ปฏิเสธ

## ผู้ใช้ปลายทาง

ระบบที่ให้บริการคนจำนวนมากผ่านคีย์เดียวระบุได้ว่าแต่ละคำขอเป็นของใคร Gateway จะบันทึกค่านี้เป็นผู้ใช้ปลายทางของคำขอ

| Endpoint               | ช่อง               |
| ---------------------- | ------------------ |
| `/v1/chat/completions` | `user`             |
| `/v1/responses`        | `user`             |
| `/v1/messages`         | `metadata.user_id` |

บันทึกเฉพาะตัวระบุนี้เท่านั้น ไม่มีข้อมูลอื่นในคำขอถูกเก็บไว้เพื่อการนี้ และช่องนี้ยังส่งต่อให้ผู้ให้บริการโดยไม่เปลี่ยนแปลง ให้ใช้ id ที่ระบบของคุณเข้าใจ เช่น รหัสพนักงานหรือที่อยู่ที่แฮชแล้ว แทนการใช้ชื่อ คำขอที่ไม่มีค่านี้จะแสดงว่าไม่มีผู้ใช้ปลายทาง

## แท็ก

แท็กระบุว่าคำขอใช้ทำอะไร เช่น ทีม ฟีเจอร์ หรือลูกค้า เพื่อให้แท็บการใช้งานแยกและกรองค่าใช้จ่ายตามแท็กได้ ส่งเป็นออบเจ็กต์ JSON หนึ่งตัวในเฮดเดอร์ `X-AgentLab-Metadata` ได้ในทุก endpoint สำหรับ inference

```bash
curl https://api.agentlab.cresclab.com/v1/chat/completions \
  -H "Authorization: Bearer $AGENTLAB_API_KEY" \
  -H "Content-Type: application/json" \
  -H 'X-AgentLab-Metadata: {"team": "support", "feature": "summary"}' \
  -d '{"model": "auto", "messages": [{"role": "user", "content": "Hello"}]}'
```

เมื่อใช้ SDK ให้ส่งเฮดเดอร์เดียวกัน เช่นใน Python

```python
reply = client.chat.completions.create(
    model="auto",
    messages=[{"role": "user", "content": "Hello"}],
    extra_headers={"X-AgentLab-Metadata": '{"team": "support", "feature": "summary"}'},
)
```

ใน `/v1/chat/completions` และ `/v1/responses` ฟิลด์ `metadata` ในเนื้อหาของ OpenAI จะถูกอ่านเป็นแท็กด้วย และยังส่งต่อให้ผู้ให้บริการตามเดิม หากคำขอส่งทั้งสองแบบจะถูกรวมกัน คีย์ที่มีทั้งสองที่ต้องมีค่าเดียวกัน เฮดเดอร์นี้จะไม่ถูกส่งไปยังผู้ให้บริการ

| กฎ   | ขีดจำกัด                                          |
| ---- | ------------------------------------------------- |
| แท็ก | ไม่เกิน 16 แท็กต่อคำขอ                            |
| คีย์ | ตัวอักษร ตัวเลข `_` `.` หรือ `-` ยาว 1 ถึง 64 ตัว |
| ค่า  | สตริงยาว 1 ถึง 512 ตัวอักษร ไม่มีอักขระควบคุม     |

คำขอที่แท็กผิดกฎจะถูกปฏิเสธด้วย `400 invalid_metadata` พร้อมข้อความที่บอกกฎข้อนั้น แท็กจะไม่ถูกทิ้งไปเงียบ ๆ ใน **AI Gateway › การใช้งาน** ให้เลือก **แท็ก** ในตารางแยกรายการแล้วเลือกคีย์ เพื่อดูค่าใช้จ่ายตามค่าของคีย์นั้น เลือกค่าใดค่าหนึ่งเพื่อกรองทั้งหน้า รายละเอียดคำขอและไฟล์ CSV ที่ส่งออกจะแสดงแท็กของแต่ละคำขอ แท็กเป็นป้ายกำกับของคุณเองเช่นเดียวกับผู้ใช้ปลายทาง อย่าใส่ข้อมูลส่วนบุคคลหรือเนื้อหาพรอมต์

## ส่งออกทั้งเดือน

ในแท็บการใช้งาน เลือก **ส่งออก CSV** เลือกเดือน แล้วดาวน์โหลด ไฟล์มีหนึ่งแถวต่อความพยายามส่งคำขอหนึ่งครั้ง เปิดใน Excel ได้โดยตัวอักษรไม่เพี้ยน และไม่มีข้อความของพรอมต์หรือคำตอบ

| คอลัมน์                                    | เนื้อหา                                                                                      |
| ------------------------------------------ | -------------------------------------------------------------------------------------------- |
| `request_id`                               | id ของคำขอ ตรงกับที่ส่งในเฮดเดอร์ `X-Request-Id`                                             |
| `attempt_id`                               | ความพยายามครั้งนี้ คำขอที่ `auto` ประเมินก่อน หรือที่ถูกลองใหม่ จะมีมากกว่าหนึ่งรายการ       |
| `started_at`                               | เวลาที่ความพยายามเริ่ม เป็น UTC (ISO 8601)                                                   |
| `state`                                    | `completed`, `failed`, `uncertain` (ไม่เคยได้รายงานการใช้งาน), `dispatched` หรือ `prepared`  |
| `model`                                    | โมเดลที่ความพยายามนั้นถูกส่งไป                                                               |
| `decision`                                 | เหตุผลที่ใช้โมเดลนั้น: `explicit_pin` สำหรับโมเดลที่ระบุชื่อ นอกนั้นคือวิธีที่ `auto` ตัดสิน |
| `input_tokens`, `output_tokens`            | โทเค็นที่วัดได้ เว้นว่างเมื่อไม่ทราบการใช้งาน                                                |
| `cached_read_tokens`, `cache_write_tokens` | โทเค็นของแคชพรอมต์ เว้นว่างเมื่อผู้ให้บริการไม่ได้รายงาน                                     |
| `cost_usd`                                 | ค่าใช้จ่ายตามราคาในแค็ตตาล็อกของโมเดลในวันนั้น เว้นว่างเมื่อไม่ทราบการใช้งานหรือราคา         |
| `key_id`, `key_name`                       | คีย์ที่ส่งคำขอ                                                                               |
| `departments`                              | แผนกที่คีย์คิดค่าใช้จ่ายด้วยตอนที่ความพยายามเริ่ม คั่นด้วย `; `                              |
| `end_user`                                 | ผู้ใช้ปลายทางที่คำขอระบุ หรือเว้นว่าง                                                        |
| `failure_code`                             | เหตุที่ความพยายามไม่ได้คำตอบ เมื่อ Gateway บันทึกไว้ เช่น `inference_allowance_exceeded`     |
| `tags`                                     | แท็กของคำขอเป็นออบเจ็กต์ JSON เช่น `{"team":"support"}` หรือเว้นว่าง                         |

ช่องว่างหมายถึงไม่ทราบ ไม่ใช่ศูนย์ เดือนนับตามปฏิทิน UTC ช่องที่ขึ้นต้นด้วย `=`, `+`, `-`, `@`, แท็บ หรือ carriage return จะมี `'` นำหน้า เพื่อให้สเปรดชีตแสดงค่าแทนการเรียกใช้

## ส่งออกด้วยโค้ด

ไฟล์เดียวกันนี้ได้จาก procedure `gateway.usage.export` ของ API คอนโซล ทีละหน้า แต่ละการเรียกส่งคืนได้สูงสุด 5,000 แถวเป็นข้อความ CSV ใน `content` พร้อม `nextCursor` ให้เรียกอีกครั้งด้วย cursor นั้นจนกว่าจะเป็น `null` แล้วต่อ `content` ของทุกหน้าตามลำดับ เฉพาะหน้าแรกเท่านั้นที่มี byte-order mark และแถวหัวตาราง ผู้เรียกต้องเป็นเจ้าของหรือผู้ดูแลเวิร์กสเปซ
