Ваш первый вызов за 30 секунд
Получите API-ключ в dashboard и выберите язык. Специфика QSP — только base_url и ключ; всё остальное — стандартный OpenAI SDK.
1. Получите API-ключ
Войдите на quicksilverpro.io/dashboard и скопируйте ключ из секции "Connect your agent".
Установите его как переменную окружения QSP_KEY, чтобы сниппеты ниже работали без правок:
export QSP_KEY="sk-..."2. Выполните вызов
Python
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.quicksilverpro.io/v1",
api_key=os.environ["QSP_KEY"],
)
resp = client.chat.completions.create(
model="deepseek-v4.1-flash",
messages=[{"role": "user", "content": "Hello!"}],
)
print(resp.choices[0].message.content)Node.js / TypeScript
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.quicksilverpro.io/v1",
apiKey: process.env.QSP_KEY,
});
const resp = await client.chat.completions.create({
model: "deepseek-v4.1-flash",
messages: [{ role: "user", content: "Hello!" }],
});
console.log(resp.choices[0].message.content);Отключение размышлений: первый вызов возвращает видимый ответ с настройками модели по умолчанию. Для прямого ответа без цепочки рассуждений передайте нестандартное поле reasoning через параметр extra_body в Python SDK.
resp = client.chat.completions.create(
model="deepseek-v4.1-flash",
messages=[{"role": "user", "content": "Hello!"}],
extra_body={"reasoning": {"enabled": False}},
)
print(resp.choices[0].message.content)В TypeScript используйте описанный в документации параметр запроса body как второй аргумент create. Он заменяет тело запроса: сначала разверните стандартные params, затем добавьте reasoning. См. OpenAI Node SDK.
const params = {
model: "deepseek-v4.1-flash",
messages: [{ role: "user" as const, content: "Hello!" }],
};
const resp = await client.chat.completions.create(params, {
body: { ...params, reasoning: { enabled: false } },
});
console.log(resp.choices[0].message.content);Swift
import Foundation
import OpenAI
let openAI = OpenAI(
configuration: .init(
token: ProcessInfo.processInfo.environment["QSP_KEY"]!,
host: "api.quicksilverpro.io",
basePath: "/v1"
)
)
let query = ChatQuery(
messages: [.user(.init(content: .string("Hello!")))],
model: "deepseek-v4.1-flash"
)
let resp = try await openAI.chats(query: query)
print(resp.choices.first?.message.content?.string ?? "")curl
curl https://api.quicksilverpro.io/v1/chat/completions \
-H "Authorization: Bearer $QSP_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4.1-flash",
"messages": [{"role": "user", "content": "Hello!"}],
"reasoning": {"enabled": false}
}'3. Что приходит в ответ
Стандартный OpenAI chat-completions JSON. choices[0].message.content — это ответ модели. usage сообщает количество prompt- и completion-токенов плюс синтетическое поле cost, рассчитанное по публичной цене за миллион.
{
"id": "chatcmpl-...",
"object": "chat.completion",
"created": 1715800000,
"model": "deepseek-v4.1-flash",
"choices": [{
"index": 0,
"message": {"role": "assistant", "content": "Hello! How can I help?"},
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 9,
"completion_tokens": 8,
"total_tokens": 17,
"cost": 0.00000275
}
}Что дальше
- Выберите модель под вашу задачу — Модели.
- Получайте токены по мере генерации — Streaming.
- Получайте строго типизированный JSON — Structured output.