> ## Documentation Index
> Fetch the complete documentation index at: https://docs.prismgateway.io/llms.txt
> Use this file to discover all available pages before exploring further.

# เริ่มต้นอย่างรวดเร็ว

# เริ่มต้นอย่างรวดเร็ว

<Steps>
  <Step title="สร้าง API key">
    Sign in เข้า developer console เปิดหน้า **API keys** แล้วสร้าง key ใหม่ ระบบ
    จะแสดง secret ที่ขึ้นต้นด้วย `sk-prism-` เพียงครั้งเดียว
  </Step>

  <Step title="ตั้ง environment variables">
    ```bash theme={null}
    export PRISM_BASE_URL="https://api.prismgateway.io/v1"
    export PRISM_API_KEY="sk-prism-..."
    ```
  </Step>

  <Step title="ตรวจเครดิตและเลือกโมเดล chat สำหรับ trial">
    ```bash theme={null}
    prism_get_json() {
      local response status body action help_url
      if ! response="$(curl -sS -w '\n%{http_code}' "$@")"; then
        echo "เชื่อมต่อ Prism API ไม่ได้" >&2
        return 1
      fi
      status="${response##*$'\n'}"
      body="${response%$'\n'*}"
      if ! echo "$body" | jq -e . >/dev/null; then
        printf 'Prism คืน JSON ไม่ถูกต้อง (HTTP %s)\n' "$status" >&2
        return 1
      fi
      case "$status" in
        2??) printf '%s' "$body"; return 0 ;;
      esac

      echo "$body" | jq . >&2
      if [ "$status" = "402" ]; then
        action="$(echo "$body" | jq -r '.error.action // empty')"
        help_url="$(echo "$body" | jq -r '.error.help_url // empty')"
        case "$action" in
          top_up) echo "เติมเครดิต: $help_url" >&2 ;;
          contact_org_admin) echo "ติดต่อผู้ดูแลองค์กร" >&2 ;;
        esac
      fi
      return 1
    }

    PRISM_CREDIT_SUMMARY="$(
      prism_get_json "$PRISM_BASE_URL/credits" \
        -H "Authorization: Bearer $PRISM_API_KEY"
    )" || exit 1
    echo "$PRISM_CREDIT_SUMMARY" | jq '{balance_minor, spent_minor}'

    PRISM_TRIAL_POLICY="$(
      prism_get_json "$PRISM_BASE_URL/trial-policy"
    )" || exit 1
    PRISM_MODEL_CATALOG="$(
      prism_get_json "$PRISM_BASE_URL/models" \
        -H "Authorization: Bearer $PRISM_API_KEY"
    )" || exit 1

    export PRISM_MODEL="$(
      jq -nr \
        --argjson policy "$PRISM_TRIAL_POLICY" \
        --argjson catalog "$PRISM_MODEL_CATALOG" \
        '$policy.allowed_models as $allowed |
          first($catalog.data[].id |
            select(. as $id | $allowed | index($id))) // empty'
    )"

    test -n "$PRISM_MODEL" || {
      echo "API key นี้ไม่มี trial chat model ที่เรียกได้" >&2
      exit 1
    }
    ```

    การ signup ไม่ได้รับประกันว่าจะมี welcome credit และ `balance_minor` เป็นยอดรวม
    ทุก credit kind ดังนั้น `/v1/models` คือ admission check ที่ใช้จริง เมื่อเจอ
    `402` ตัวอย่างจะทำตาม typed `error.action` ส่วน auth, policy, rate limit และ
    server errors จะแสดง response เดิม คำสั่งยังหา model ที่อยู่ทั้งใน trial policy
    และ catalog ที่ API key มองเห็น จึงไม่เลือก model ที่ถูกซ่อนหรือถูก policy
    ปฏิเสธ ส่วนบัญชีแบบ paid หรือองค์กรควรใช้ chat model ที่ผู้ดูแลองค์กรอนุมัติ
  </Step>

  <Step title="สร้าง chat completion">
    ```bash theme={null}
    curl -sS "$PRISM_BASE_URL/chat/completions" \
      -H "Authorization: Bearer $PRISM_API_KEY" \
      -H "Content-Type: application/json" \
      -d "$(jq -n --arg model "$PRISM_MODEL" '{
        model: $model,
        messages: [{role: "user", content: "สวัสดี"}]
      }')"
    ```
  </Step>
</Steps>

สำหรับ non-streaming chat response อาจมี `x-prism-trace-id`,
`x-prism-cost-credits` และ `x-prism-cache` เพื่อใช้ติดตาม usage และต้นทุน

<Warning>
  ห้ามใส่ Prism API key ใน browser, mobile app, public repository, log หรือ
  screenshot ให้เรียก Prism จาก server ของคุณเท่านั้น
</Warning>

[English version](/quickstart)
