Запрос к huggingface API на php

antonio

Moderator
Команда форума
Извиняюсь за мой французский, но где там документация по API?
Hub API Endpoints (huggingface.co) если это оно, то возьми сначала CURL и из командной строки погоняй примеры запросов.
Потом, используя функции модуля CURL в PHP делаешь то же самое.

P.S.
Если тебе все равно на чем делать, то цитирую: "We offer a wrapper Python library, huggingface_hub, that allows easy access to these endpoints. We also provide webhooks to receive real-time incremental info about repos. Enjoy!"
 
Последнее редактирование:

danyx994

Новичок
Извиняюсь за мой французский, но где там документация по API?
Hub API Endpoints (huggingface.co) если это оно, то возьми сначала CURL и из командной строки погоняй примеры запросов.
Потом, используя функции модуля CURL в PHP делаешь то же самое.

P.S.
Если тебе все равно на чем делать, то цитирую: "We offer a wrapper Python library, huggingface_hub, that allows easy access to these endpoints. We also provide webhooks to receive real-time incremental info about repos. Enjoy!"
Вот мой код:
PHP:
$api_url = "https://choimirai-whisper-large-v3.hf.space/predict_2";

$data = array(
    'input_text' => 'https://www.youtube.com/watch?v=rotd-kaCX8c&t',
    'task_name' => 'transcribe',
    'return_timestamps' => true,
    'language' => 'English'
);

$ch = curl_init($api_url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$response = curl_exec($ch);

curl_close($ch);

echo $response;
Этот код выводит "{"detail":"Not Found"}", аналогичный запрос в Python работает.
Я не понимаю, в чем проблема с PHP.
 

antonio

Moderator
Команда форума
Значит что-то делаешь не так. Читай доку по API ищи 10 отличий

Или получи запрос, который формирует скрипт на питоне, потом получи запрос от курла и сравни.
 
Последнее редактирование:

antonio

Moderator
Команда форума
Даавно это было (CHANGES.0 - platform/external/curl), но помню, что есть 10 отличий при передаче с CURLOPT_POSTFIELDS массива или строки. Тогда используется разный алгоритм кодирования полей POST (multipart/form-data или application/x-www-form-urlencoded). Вот характерное обсуждение.

php - curl POST format for CURLOPT_POSTFIELDS - Stack Overflow
Протокол: POST (HTTP) - Wikipedia

Возможно - это твои грабли

Пример:
application-x-www-form-urlencoded post in php cURL - cpming
 
Последнее редактирование:

antonio

Moderator
Команда форума
Поковырялся немного. Вот резюме.

Безымянный.png

Вывод. Идем изучать документацию по API.
Там целый процесс
 
Последнее редактирование:

AmdY

Пью пиво
Команда форума
Там 4 метода. Пусть берет guzzle и за пять минут всё реализует не внимая в курл.
 

danyx994

Новичок
Поковырялся немного. Вот резюме.

Посмотреть вложение 1637

Вывод. Идем изучать документацию по API.
Там целый процесс
Ну поделись кодом если сделал, я не большой специалист по PHP. Я сделал по другому php --> python --> hugging face. Но мой вариант не очень нравится
 

antonio

Moderator
Команда форума
Я ничего не знаю, я никуда не летаю. Я ничего не делал :). Я просто потрейсил запросы от JS движка формы.
 

weregod

unserializer
ТС ничего делать и не собирается, думает, попопрошайничает и так сойдёт.
 

danyx994

Новичок
ТС ничего делать и не собирается, думает, попопрошайничает и так сойдёт.
Кто попрошайничает? Я уже сделал на python и через php --> python. Прочитал бы диалог выше, прежде чем свои 3 копейки вставить, гений! Откуда вы только беретесь! Такие форумы и существуют что б помочь, а не бессмысленные советы давать. Не можешь помочь, проходи дальше. На трех форумах, ни один гений php не смог помочь!
 

antonio

Moderator
Команда форума
А вот грубить не надо, не хорошо это (у меня тоже создалось впечатление того, что ты хочешь просто получить готовое решение).

У тебя есть пример сессии выполнения задачи. Тебе осталось почитать документацию по API на предмет формирования (или получения) id сессии, который надо передавать с данными запроса и можешь смело делать все на CURL, если запал не иссяк. Ручками, все своими ручками.
 
Последнее редактирование:

danyx994

Новичок
А вот грубить не надо, не хорошо это (у меня тоже создалось впечатление того, что ты хочешь просто получить готовое решение).

У тебя есть пример сессии выполнения задачи. Тебе осталось почитать документацию по API на предмет формирования (или получения) id сессии, который надо передавать с данными запроса и можешь смело делать все на CURL, если запал не иссяк. Ручками, все своими ручками.
Если б я хорошо понимал php, давно бы сделал! Я сделал 2 варианта, один вполне рабочий, но он мне не очень нравится. Речь совсем не о получить готовый вариант... Я пробовал разные подходы на php, прежде чем прийти суда. По поводу грубить, не я первый нагрубил... Просто, в одно место такие люди уже! Лишь бы что-то ляпнуть
 
Сверху