August 22, 2023

Sydney API

Документация по API

Введение

API предоставляет 4 конечные точки для различных функциональностей: `/v1/chat` для языковых моделей на основе чата, `/v1/prompt` для языковых моделей на основе запросов, `/v1/image` для работы с изображениями и `/v1/moderate`. Каждая конечная точка требует ключ API (`API_KEY`) для авторизации.


Конечная точка: /v1/chat

Эта конечная точка используется для языковых моделей на основе чата. Она принимает POST-запросы и требует следующие параметры:

- `model` (строка, обязательно): Модель, используемая для генерации ответов. Допустимые значения: 'gpt-3.5-turbo', 'gpt-4', 'claude-2-100k', 'claude-1.3-100k' и 'claude-instant-1-100k'.

- `messages` (массив, обязательно): Массив объектов сообщений, представляющих разговор. Каждый объект сообщения должен иметь `role` ('user', 'system' или 'assistant') и `content` (текст сообщения).

# Пример на питоне
import requests

API_KEY = ''API_KEY"
headers = {'Authorization': API_KEY}
data = {
'model': 'gpt-3.5-turbo',
'messages': [
{'role': 'user', 'content': 'Привет, как дела?'}
]
}

response = requests.post('https://не-твоё-дело.понос.орг.рус/v1/chat', headers=headers, json=data)

response.json()
// пример на nodejs
const axios = require('axios');

const API_KEY = 'ваш_api_ключ';
const headers = {
'Authorization': API_KEY
};
const data = {
model: 'gpt-3.5-turbo',
messages: [
{
role: 'user',
content: 'Привет, как дела?'
}
]
};

axios.post('https://не-твоё-дело.понос.орг.рус/v1/chat', data, { headers })
.then(response => {
console.log(response.data);
}).catch(error => {
console.error(error);
});

Конечная точка: `/v1/prompt`


Не использовать если не знаете что делаете, лучше используйте `/v1/chat`


Эта конечная точка используется для языковых моделей claude на основе запросов. Она принимает POST-запросы и требует следующие параметры:

- `model` (строка, обязательно): Модель, используемая для генерации ответов. Допустимые значения - все модели claude

- `prompt` (строка, обязательно): Входной запрос или запрос.

# Пример на питоне
import requests

API_KEY = 'ваш_api_ключ'
headers = {
'Authorization': API_KEY
}
data = {
'model': ''claude-2-100k",
'prompt': '\n\nHuman: Переведите следующий английский текст на французский: "Hello, how are you?\n\nAssistant: "'
}

response = requests.post('https://не-твоё-дело.понос.орг.рус/v1/prompt', headers=headers, json=data)
print(response.json())
// Пример запроса на жс
const axios = require('axios');

const API_KEY = 'ваш_api_ключ';
const headers = { 'Authorization': API_KEY };
const data = {
model: 'claude-2-100k',
prompt: '\n\nHuman: Переведите следующий английский текст на французский: "Hello, how are you?"\n\nAssistant: '
};

axios.post('https://не-твоё-дело.понос.орг.рус/v1/prompt', data, { headers })
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});

Конечная точка: `/v1/image`

Эта конечная точка используется для работы с изображениями. Она принимает POST-запросы и требует следующие параметры:

- `model` (строка, обязательно): Модель, используемая для генерации изображения. Допустимые значения: 'sdxl' и 'kandisky'.

- `prompt` (строка, обязательно): Запрос или описание для генерации изображения.

- `ar` (строка, опционально): Соотношение сторон. Доступны - 16:9, 3:2, 1:1, 2:3, 9:16

- `negative` (строка, опционально): Негативный промпт, sdxl only

import requests

API_KEY = 'ваш_api_ключ'
headers = {'Authorization': API_KEY}
data = {
'model': 'sdxl',
'prompt': 'A cat at night, photorealistic, ultradetalized'
}

response = requests.post('https://не-твоё-дело.понос.орг.рус/v1/image', headers=headers, json=data)
print(response.json())
const axios = require('axios');

const API_KEY = 'ваш_api_ключ';
const headers = { 'Authorization': API_KEY };
const data = {
model: 'sdxl',
prompt: 'A cat at night, photorealistic '
};

axios.post('https://не-твоё-дело.понос.орг.рус/v1/image', data, { headers })
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});

Конечная точка `/v1/moderate`

Эта конечная точка используется для модерации сообщения юзера. Она принимает POST-запросы и требует следующие параметры:
- `q`: сообщение пользователя
- `filters` (список, опционально): Что фильтровать, например ["nsfw","nsfl"]

import requests

headers = {'Authorization':'ddosxd-api-1jq4e9xbzu2ilgn'}

data = {'q':'Привет, как дела?','filters':['nsfw','политика']}

r = requests.post('https://не-твоё-дело.понос.орг.рус/v1/moderate',headers=headers, json=data)

r.json()
const axios = require('axios');
const headers = {
'Authorization':'ddosxd-api-1jq4e9xbzu2ilgn'
};
const data = {
q:'Привет, как дела?',
filters:['nsfw','политика']
};
axios.post('https://не-твоё-дело.понос.орг.рус/v1/moderate', {
headers,data
}) .then(res =>
console.log(res.data)
).catch(err =>
console.log(err)
);

Ответ

Ответы API могут быть успешными, возвращая URL сгенерированного изображения или ответы чата, либо сообщением об ошибке
Варианты ответов:

  1. 200 - Всё ок
  2. 429 - Вы отправляете слишком много запросов
  3. 401 - Неавторизован, проверьте ключ
  4. 403 - Вам сюда низя
  5. 500 - Сервер ерор, пишите @ddosxd

Если сообщение об ошибке, то текст сообщения находится в ключе "error"
Если фото, то ссылка находится в ключе "url"
Если ответ от чатбота то ключ "reply"

Рейт лимиты

/v1/chat и /v1/prompt

gpt-4:
500 в день
2 в минуту

gpt-3.5-turbo:
2000 в день
10 в минуту

claude:
1500 в день
7 в минуту

/v1/image

sdxl:
1000 в день
3 в минуту

kandinsky:
10000 в день
20 в минуту

Получение ключа API

Для получения ключа API вы можете использовать команду `/key_get` с @SydneyAIbot в Telegram.

Также можете использовать "всеобщий" ключ

ddosxd-api-1jq4e9xbzu2ilgn

Пожалуйста, обратите внимание, что вышеупомянутая документация предоставляет обзор конечных точек API и их использования. Обязательно обращайтесь к официальной документации API для получения подробной информации и любых обновлений.

Upd:
api endpoint: https://не-твоё-дело.понос.орг.рус/ --> https://api.ddosxd.ru/
https://api.ddosxd.ru/v1/chat etc