Загрузка файла
Эндпоинт загружает файл на сервер, проверяет валидность API ключа и инициирует обработку файла. Пользователь должен предоставить язык содержимого файла и (опционально) количество спикеров. Если количество спикеров не указано или указано как -1, нейросеть автоматически определит количество спикеров. Если значение превышает 3, также будет применен автоматический алгоритм.
После загрузки файла, создается уникальный код заказа, и файл сохраняется на сервере. Затем инициируется процесс обработки заказа.
-
Метод:
POST
-
URL:
/file/upload
-
Авторизация: Требуется передача API ключа в заголовке
.Authorization
Параметры запроса:
-
Query параметры:
-
(int, необязательный): Количество спикеров в файле (от -1 до 50). Значение по умолчанию: -1 (автоматическое определение).speakers_count
-
(string, обязательный): Язык содержимого файла (language
'ru'
,'en'
).
-
-
File параметры:
-
file
(обязательный): Файл для загрузки.
-
-
Header параметры:
-
Authorization
(обязательный): API-ключ в форматеBearer {api_key}.
-
Ошибки:
-
: Вебхук не назначен.APIWebhookNotSet
-
: Вебхук не прошел проверку.APIWebhookNotVerified
-
: Неизвестное или неподдерживаемое расширение файла.UnknownFileExtension
{
"status": "uploaded",
"order_code": "unique_order_code"
}
Успех:
{
"status": "completed",
"order_code": "unique_order_code"
}
Ошибка:
{
"status": "failure",
"order_code": "unique_order_code"
}
import httpx
import asyncio
API_URL = "https://api.teamlogs.ru/api/v1/file/upload"
AUTH_TOKEN = "your_api_token_here" # Укажите ваш токен авторизации
FILE_PATH = "path_to_your_file" # Укажите путь к файлу
LANGUAGE = "ru" # 'ru', 'en'
SPEAKERS_COUNT = 1 # от -1 до 50
async def test_upload():
async with httpx.AsyncClient() as client:
headers = {
"Authorization": f"Bearer {AUTH_TOKEN}"
}
files = {
"file": (FILE_PATH, open(FILE_PATH, "rb"), "application/octet-stream")
}
data = {
"language": LANGUAGE,
"speakers_count": SPEAKERS_COUNT
}
response = await client.post(API_URL, headers=headers, params=data, files=files)
print(f"Status Code: {response.status_code}")
print(f"Response: {response.json()}")
asyncio.run(test_upload())