# Python & JavaScript

Nguồn: https://docs.openaihub.net/sdk/

Các ví dụ sau dùng OpenAI SDK cho model tương thích Chat Completions. Đây không phải cấu hình mặc định cho mọi giao thức hoặc mọi model.

Chuẩn bị `OPENAI_API_KEY` và `OPENAI_MODEL` như [Bắt đầu nhanh](https://docs.openaihub.net/quickstart/). Chọn model từ tài khoản, không dùng nguyên placeholder.

## Python

```bash
python -m pip install openai
```

```python
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["OPENAI_API_KEY"],
    base_url="https://api.openaihub.net/v1",
    timeout=60.0,
    max_retries=0,
)
response = client.chat.completions.create(
    model=os.environ["OPENAI_MODEL"],
    messages=[{"role": "user", "content": "Xin chào!"}],
)
print(response.choices[0].message.content)
```

Lưu thành `example.py`, chạy `python example.py`.

## JavaScript / Node.js

Dùng phiên bản Node.js còn được hỗ trợ, đáp ứng yêu cầu của phiên bản SDK đang cài.

```bash
npm install openai
```

```javascript
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.OPENAI_API_KEY,
  baseURL: "https://api.openaihub.net/v1",
  timeout: 60_000,
  maxRetries: 0,
});
const response = await client.chat.completions.create({
  model: process.env.OPENAI_MODEL,
  messages: [{ role: "user", content: "Xin chào!" }],
});
console.log(response.choices[0].message.content);
```

Lưu thành `example.mjs`, chạy `node example.mjs`. Chạy ở máy chủ hoặc máy cá nhân; không đưa key vào JavaScript trên trình duyệt.

## Timeout và retry

Ví dụ tắt retry tự động để dễ đọc lỗi và tránh gửi lại ngoài ý muốn. Khi tích hợp production, chỉ thêm retry có giới hạn sau khi hiểu mã lỗi và rủi ro lặp yêu cầu/tính phí. Không retry liên tục lỗi xác thực hoặc yêu cầu không hợp lệ.

## Công cụ khác

Chọn provider **OpenAI-compatible / Custom OpenAI** nếu công cụ có hỗ trợ, nhập base URL theo [hướng dẫn](https://docs.openaihub.net/base-url/), rồi chọn model thật từ tài khoản. Nếu công cụ chỉ hỗ trợ đăng nhập thuê bao chính thức, việc có API key không bảo đảm dùng được.
