목차
반응형
1. OpenAI API 키 발급
- OpenAI 웹사이트에 가입하거나 로그인합니다.
- API 키 발급 페이지를 통해 API 키를 발급받습니다.
2. Laravel 프로젝트 설정
- 새 Laravel 프로젝트 생성 (이미 프로젝트가 있는 경우 이 단계 건너뛰기):
composer create-project --prefer-dist laravel/laravel my-project
- 환경 파일(.env) 설정:
OPENAI_API_KEY=your_openai_api_key
.env
파일에 OpenAI API 키를 추가합니다.
3. Guzzle 설치
Guzzle은 HTTP 클라이언트 라이브러리로, API 요청을 보내는 데 사용됩니다.
composer require guzzlehttp/guzzle
4. 서비스 설정
config/services.php
파일에 OpenAI 서비스를 추가합니다.
return [
// ...
'openai' => [
'key' => env('OPENAI_API_KEY'),
],
];
5. ChatGPT API 호출
컨트롤러를 생성하여 OpenAI API를 호출합니다.
php artisan make:controller OpenAIController
OpenAIController.php
파일에 다음 코드를 추가합니다.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use GuzzleHttp\Client;
class OpenAIController extends Controller
{
public function generateResponse(Request $request)
{
$client = new Client();
$response = $client->post('https://api.openai.com/v1/engines/davinci-codex/completions', [
'headers' => [
'Authorization' => 'Bearer ' . config('services.openai.key'),
'Content-Type' => 'application/json',
],
'json' => [
'prompt' => $request->input('prompt'),
'max_tokens' => 100,
],
]);
$data = json_decode($response->getBody(), true);
return response()->json($data);
}
}
6. 라우트 설정
routes/web.php
파일에 다음 라우트를 추가합니다.
use App\Http\Controllers\OpenAIController;
Route::post('/generate-response', [OpenAIController::class, 'generateResponse']);
7. 사용 예시
프론트엔드에서 해당 API 엔드포인트로 요청을 보낼 수 있습니다. 예를 들어, JavaScript를 사용하여 API 호출을 수행할 수 있습니다.
async function getResponse(prompt) {
const response = await fetch('/generate-response', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({ prompt: prompt }),
});
const data = await response.json();
console.log(data);
}
// 사용 예시
getResponse("Tell me a joke.");
추가적인 요청 파라미터나 옵션은 OpenAI API 문서를 참고.
'Laravel' 카테고리의 다른 글
Laravel > REST API 쉽게 구현해주는 패키지 (0) | 2024.07.11 |
---|---|
Laravel > Soft Delete 구현하기 (실제로는 DB에 남아있음) (0) | 2024.06.30 |
Laravel - 프로젝트 생성하기 (macOS) (0) | 2024.06.24 |
Laravel - Metronic 8 / 관리자 페이지 (1) | 2024.05.05 |
Laravel - 기존사이트에 spatie/laravel-permission 적용순서 (0) | 2024.05.05 |
반응형
1. OpenAI API 키 발급
- OpenAI 웹사이트에 가입하거나 로그인합니다.
- API 키 발급 페이지를 통해 API 키를 발급받습니다.
2. Laravel 프로젝트 설정
- 새 Laravel 프로젝트 생성 (이미 프로젝트가 있는 경우 이 단계 건너뛰기):
composer create-project --prefer-dist laravel/laravel my-project
- 환경 파일(.env) 설정:
OPENAI_API_KEY=your_openai_api_key
.env
파일에 OpenAI API 키를 추가합니다.
3. Guzzle 설치
Guzzle은 HTTP 클라이언트 라이브러리로, API 요청을 보내는 데 사용됩니다.
composer require guzzlehttp/guzzle
4. 서비스 설정
config/services.php
파일에 OpenAI 서비스를 추가합니다.
return [
// ...
'openai' => [
'key' => env('OPENAI_API_KEY'),
],
];
5. ChatGPT API 호출
컨트롤러를 생성하여 OpenAI API를 호출합니다.
php artisan make:controller OpenAIController
OpenAIController.php
파일에 다음 코드를 추가합니다.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use GuzzleHttp\Client;
class OpenAIController extends Controller
{
public function generateResponse(Request $request)
{
$client = new Client();
$response = $client->post('https://api.openai.com/v1/engines/davinci-codex/completions', [
'headers' => [
'Authorization' => 'Bearer ' . config('services.openai.key'),
'Content-Type' => 'application/json',
],
'json' => [
'prompt' => $request->input('prompt'),
'max_tokens' => 100,
],
]);
$data = json_decode($response->getBody(), true);
return response()->json($data);
}
}
6. 라우트 설정
routes/web.php
파일에 다음 라우트를 추가합니다.
use App\Http\Controllers\OpenAIController;
Route::post('/generate-response', [OpenAIController::class, 'generateResponse']);
7. 사용 예시
프론트엔드에서 해당 API 엔드포인트로 요청을 보낼 수 있습니다. 예를 들어, JavaScript를 사용하여 API 호출을 수행할 수 있습니다.
async function getResponse(prompt) {
const response = await fetch('/generate-response', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({ prompt: prompt }),
});
const data = await response.json();
console.log(data);
}
// 사용 예시
getResponse("Tell me a joke.");
추가적인 요청 파라미터나 옵션은 OpenAI API 문서를 참고.
'Laravel' 카테고리의 다른 글
Laravel > REST API 쉽게 구현해주는 패키지 (0) | 2024.07.11 |
---|---|
Laravel > Soft Delete 구현하기 (실제로는 DB에 남아있음) (0) | 2024.06.30 |
Laravel - 프로젝트 생성하기 (macOS) (0) | 2024.06.24 |
Laravel - Metronic 8 / 관리자 페이지 (1) | 2024.05.05 |
Laravel - 기존사이트에 spatie/laravel-permission 적용순서 (0) | 2024.05.05 |