사용자 정의 제공자
사용자 정의 제공자 만들기
사용자 정의 제공자를 만들려면 EchoLabs\Prism\Contracts\Provider
인터페이스를 구현해야 합니다. 다음은 단계별 가이드입니다:
- 제공자를 위한 새 클래스를 만듭니다. 예:
MyCustomProvider
. Provider
인터페이스에서 필요한 메서드를 구현합니다:
php
<?php
namespace App\Prism\Providers;
use EchoLabs\Prism\Contracts\Provider;
use EchoLabs\Prism\Providers\ProviderResponse;
use EchoLabs\Prism\Requests\TextRequest;
class MyCustomProvider implements Provider
{
protected $model;
public function usingModel(string $model): Provider
{
$this->model = $model;
return $this;
}
public function text(TextRequest $request): ProviderResponse
{
// 사용자 정의 AI 제공자에게 요청을 보내는 로직을 구현하고
// ProviderResponse 객체를 반환합니다
}
}
text
메서드에서 다음을 수행해야 합니다:TextRequest
를 제공자가 이해할 수 있는 형식으로 변환- 제공자에게 요청 전송
- 응답 파싱
- 결과와 함께
ProviderResponse
객체 반환
사용자 정의 제공자 등록하기
사용자 정의 제공자를 만들었다면 Prism에 등록해야 합니다. 이를 위한 최적의 장소는 AppServiceProvider
와 같은 서비스 제공자입니다:
php
<?php
namespace App\Providers;
use App\Prism\Providers\MyCustomProvider;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
public function boot()
{
$this->app['prism-manager']->extend('my-custom-provider', function ($app, $config) {
return new MyCustomProvider(
apiKey: data_get($config, 'api_key'),
);
});
}
}
제공자 사용하기
사용자 정의 제공자를 사용하려면 config/prism.php
파일에 추가해야 합니다:
php
<?php
'providers' => [
// ... 다른 제공자들 ...
'my-custom-provider' => [
'api_key' => env('MY_CUSTOM_API_KEY')
],
],
이제 Prism 호출에서 사용자 정의 제공자를 사용할 수 있습니다:
php
<?php
$response = Prism::text()
->using('my-custom-provider', 'model-name')
->withPrompt('안녕하세요, 사용자 정의 AI!')
->generate();
사용자 정의 제공자를 위한 모범 사례
- 오류 처리: API 문제나 예상치 못한 응답을 우아하게 관리할 수 있도록 제공자에 강력한 오류 처리를 구현하세요.
- 구성: API 엔드포인트나 인증과 같은 주요 매개변수를 구성을 통해 설정할 수 있도록 하여 제공자를 유연하게 만드세요.
- 테스트: 다양한 시나리오를 올바르게 처리하는지 확인하기 위해 제공자에 대한 단위 테스트를 작성하세요.
반응형
'프로그래밍 > Web' 카테고리의 다른 글
svelte 번역 - 1 - Introduction (1) | 2024.10.17 |
---|---|
Laravel Prism 사용하기(번역) - 7 - (0) | 2024.10.15 |
Laravel Prism 사용하기(번역) - 5 - (0) | 2024.10.15 |
Laravel Prism 사용하기(번역) - 4 - (0) | 2024.10.15 |
Laravel Prism 사용하기(번역) - 3 - (0) | 2024.10.15 |
댓글