# OpenAI и Anthropic SDK

> Подключение официальных SDK OpenAI и Anthropic на Python и Node.

Официальные SDK работают со шлюзом без изменений кода — достаточно задать base
URL и ключ.

## OpenAI SDK

```python [Python]
from openai import OpenAI

client = OpenAI(base_url="https://ai-seller.vibe-codes.ru/v1", api_key="$AISELLER_API_KEY")
resp = client.chat.completions.create(
    model="gpt-5.6-sol",
    messages=[{"role": "user", "content": "Привет!"}],
)
print(resp.choices[0].message.content)
```

```ts [Node]
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://ai-seller.vibe-codes.ru/v1",
  apiKey: process.env.AISELLER_API_KEY,
});
const resp = await client.chat.completions.create({
  model: "gpt-5.6-sol",
  messages: [{ role: "user", content: "Привет!" }],
});
console.log(resp.choices[0].message.content);
```

Без параметров клиент читает переменные `OPENAI_BASE_URL` и `OPENAI_API_KEY`:

```bash
export OPENAI_BASE_URL=https://ai-seller.vibe-codes.ru/v1
export OPENAI_API_KEY=$AISELLER_API_KEY
```

Тот же клиент работает с [Responses](https://ai-seller.vibe-codes.ru/docs/responses)
(`client.responses.create`) и [изображениями](https://ai-seller.vibe-codes.ru/docs/images)
(`client.images.generate`).

## Anthropic SDK

```python [Python]
import anthropic

client = anthropic.Anthropic(base_url="https://ai-seller.vibe-codes.ru", api_key="$AISELLER_API_KEY")
msg = client.messages.create(
    model="gpt-5.6-sol",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Привет!"}],
)
print(msg.content[0].text)
```

```ts [Node]
import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
  baseURL: "https://ai-seller.vibe-codes.ru",
  apiKey: process.env.AISELLER_API_KEY,
});
const msg = await client.messages.create({
  model: "gpt-5.6-sol",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Привет!" }],
});
console.log(msg.content[0].text);
```

Base URL — без `/v1`: SDK добавит `/v1/messages` сам. Без параметров клиент
читает `ANTHROPIC_BASE_URL` и `ANTHROPIC_API_KEY`.

> Anthropic SDK работает через `/v1/messages`, а шлюз не переводит форматы:
> подойдёт только модель, провайдер которой поддерживает Anthropic Messages (см.
> [Messages](https://ai-seller.vibe-codes.ru/docs/messages)).

## Повторы и таймауты

- Оба SDK сами повторяют `429` и `5xx` с учётом заголовка `Retry-After` —
  отдельный код повторов не нужен.
- Для изображений, видео и рассуждающих моделей увеличьте таймаут клиента:
  генерация может идти минуты.
