wilfreedi/laravel-apifinder

PHP клиент для взаимодействия с API Finder

0.0.3 2025-04-09 17:42 UTC

This package is auto-updated.

Last update: 2025-06-11 17:35:10 UTC


README

API Finder

Packagist License Packagist Downloads Packagist Version

PHP клиент для взаимодействия с API Finder.

Установка

composer require wilfreedi/laravel-apifinder

Публикация файла настроек

php artisan vendor:publish --provider="Wilfreedi\ApiFinder\Providers\ApiFinderServiceProvider" --tag="config"

Переменные .env

APIFINDER_BASE_URL=https://apifinder.ru
APIFINDER_API_TOKEN=your_secure_bearer_token_here
APIFINDER_TIMEOUT=60

Использование

Вне Laravel

use Wilfreedi\ApiFinder\ApiFinderClient;

$baseUrl = 'https://apifinder.ru';
$apiToken = 'your_secure_bearer_token_here';
$timeout = 60; // опционально
$guzzleOptions = [ // опционально
    // 'proxy' => 'http://user:pass@host:port'
];

$client = new ApiFinderClient($baseUrl, $apiToken, $timeout, $guzzleOptions);

// Дальнейшее использование
$openaiService = $client->openAI();
// $deepseekService = $client->deepSeek();

Laravel (с фасадом)

use Wilfreedi\ApiFinder\Facades\ApiFinder;

// --- OpenAI Chat ---
try {
    $params = [
        'model'    => 'gpt-3.5-turbo',
        'messages' => [
            ['role' => 'user', 'content' => 'Hello!']
        ]
    ];
    $response = ApiFinder::openAI()->chat($params);
    print_r($response);
} catch (\Wilfreedi\ApiFinder\Exceptions\ApiException $e) {
    // Обработка ошибок API
    echo "API Error: " . $e->getMessage() . " (Status: " . $e->getCode() . ")\n";
}

// --- OpenAI Transcribe ---
try {
    $filePath = '/path/to/your/audio.mp3';
    $params = [
        'model'    => 'whisper-1',
        'language' => 'en' // опционально
    ];
    $response = ApiFinder::openAI()->transcribe($filePath, basename($filePath), $params);
    echo "Transcription: " . $response['text'] . "\n";
} catch (\Wilfreedi\ApiFinder\Exceptions\ApiException $e) {
    // Обработка ошибок
     echo "API Error: " . $e->getMessage() . " (Status: " . $e->getCode() . ")\n";
} catch (\InvalidArgumentException $e) {
     // Ошибка файла
     echo "File Error: " . $e->getMessage() . "\n";
}

Laravel (Dependency Injection)

use Illuminate\Http\Request;
use Wilfreedi\ApiFinder\ApiFinderClient;
use Wilfreedi\ApiFinder\Services\OpenAIService; // Если внедрять напрямую

class SomeController
{
    protected ApiFinderClient $apiFinderClient;
    // Или protected OpenAIService $openaiService;

    public function __construct(ApiFinderClient $apiFinderClient /* или OpenAIService $openaiService */) {
        $this->apiFinderClient = $apiFinderClient;
        // $this->openaiService = $openaiService;
    }

    public function handleOpenAI(Request $request) {
        $openaiService = $this->apiFinderClient->openAI();
        try {
            $response = $openaiService->chat($request->input('params'));
            // ...
        } catch (\Wilfreedi\ApiFinder\Exceptions\ApiException $e) {
            // ...
        }
    }
}

Сообщить о проблеме

Если вы обнаружите ошибку или у вас есть предложения по улучшению библиотеки, пожалуйста напишите нам