Google Gemini

Gemini là một mô hình trí tuệ nhân tạo mới mạnh mẽ từ Google không chỉ có khả năng hiểu văn bản mà còn có thể hiểu cả hình ảnh, video và âm thanh.

Gemini là một mô hình đa phương tiện, Gemini được mô tả là có khả năng hoàn thành các nhiệm vụ phức tạp trong toán học, vật lý và các lĩnh vực khác.

Gemini cũng có thể hiểu và tạo ra mã nguồn chất lượng cao trong các ngôn ngữ lập trình khác nhau.

Gemini PHP for Laravel

Gemini PHP for Laravel là một thư viện PHP được cộng đồng duy trì, cho phép bạn tương tác với Gemini AI API.

Gemini PHP for Laravel được xây dựng dựa trên Gemini PHP Client, cung cấp Facade để tương tác với các mô hình API và AI có sẵn.

Để tìm hiểu thêm, bạn có thể tham khảo tại: https://github.com/google-gemini-php/laravel

Ngoài ra, Gemini Docs and API Reference for Developersgemini.google.com là những tài liệu tham khảo tuyệt vời.

Thực hiện cài đặt Gemini trong Laravel

Trong bài viết này, tôi sẽ hướng dẫn các bạn cách tích hợp Gemini AI của Google vào một dự án Laravel và thực hiện một số ví dụ cơ bản về Gemini AI (Phiên bản được áp dụng trong bài viết là Laravel 10).

Gemini API key

Để sử dụng API của Gemini, bạn sẽ cần phải có một API key của Gemini. Nếu bạn chưa có, bạn hãy thực hiện các bước sau để tạo API key của Gemini.

Bước 1: Bạn hãy truy cập vào Google AI Studio: https://aistudio.google.com/app/apikey

Bước 2: Nhấn vào nút Create API key để bắt đầu tạo API key:

 Bước 3: Nhấn nút Create API key in new project để tạo API key trong dự án mới:

Bước 4: Sau khi chờ đợi trong vài phút để Google AI Studio tạo API key, chúng ta sẽ nhận được thông tin API key như hình bên dưới:

Cài đặt Gemini PHP for Laravel

Để bắt đầu tích hợp Gemini PHP vào dự án Laravel của bạn, trước tiên bạn cần cài đặt thư viện Gemini PHP for Laravel bằng lệnh sau:

composer require google-gemini-php/laravel

Sau đó, tiến hành cài đặt Gemini vào dự án Laravel bằng lệnh sau:

php artisan gemini:install

✷ Sau khi chạy lệnh trên, tập tin cấu hình là config/gemini.php sẽ được tạo ra.

Tiếp theo, chúng ta hãy thêm API key của  Gemini mà bạn đã tạo ở trên vào tập tin .env của dự án Laravel:

GEMINI_API_KEY=xxxxxxx

Sau khi hoàn thành cài đặt thư viện Gemini PHP for Laravel, bạn hãy tạo một Controller để thực hiện các ví dụ cơ bản của Gemini bằng lệnh sau:

php artisan make:controller GeminiController

Sau đó, hãy chỉnh sửa GeminiController.php trong thư mục app/Http/Controllers với nội dung như sau:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Gemini\Data\Blob;
use Gemini\Enums\MimeType;
use Gemini\Laravel\Facades\Gemini;

class GeminiController extends Controller
{
    public function text(Request $request)
    {
        $question = $request->question ?? 'Hello';
        $result   = Gemini::geminiPro()->generateContent($question);
        return response()->json(['result' => $result->text()]);
    }

    public function textWithImage(Request $request)
    {
        $question = $request->question ?? 'What is this picture?';
        $image    = $request->image ?? 'https://storage.googleapis.com/generativeai-downloads/images/scones.jpg';
        $result   = Gemini::geminiProVision()
            ->generateContent([
                $question,
                new Blob(
                    mimeType: MimeType::IMAGE_JPEG,
                    data: base64_encode(
                        file_get_contents($image)
                    )
                )
            ]);
        return response()->json(['result' => $result->text()]);
    }
}

Chúng ta hãy thiết lập route cho hàm texttextWithImage trong GeminiController.php trong tập tin routes/api.php như sau:

<?php

...
use App\Http\Controllers\GeminiController;

...

Route::post('/gemini/text', [GeminiController::class, 'text']);
Route::post('/gemini/text-with-image', [GeminiController::class, 'textWithImage']);

Kết quả của công việc bạn đã làm đang chờ bạn khám phá!

Sau khi đã hoàn thành các bước trên, giờ là lúc để chúng ta cùng nhau khám phá thành quả công sức của mình.

Chúng ta sẽ dùng Postman để kiểm tra Chat Resource: Text và Chat Resource: Text và Image trong Gemini.

Chat Resource: Text

Bạn hãy dùng Postman thực hiện HTTP đến API sau để kiểm tra Chat Resource: Text

http://127.0.0.1/api/gemini/text 

Chat Resource: Text và Image

Bạn hãy dùng Postman thực hiện HTTP đến API sau để kiểm tra Chat Resource: Text và Image

http://127.0.0.1/api/gemini/text-with-image

CÓ THỂ BẠN QUAN TÂM

Laravel Factories, Seeder

Laravel Factories, Seeder

Trong bài viết này, tôi sẽ hướng dẫn các bạn về cách tạo dữ liệu giả trong cơ sở dữ liệu bằng cách sử dụng Laravel Factory và Seed trong Database Seeder. Để tạo model factory, bạn cần chạy lệnh sau...

Generate PDF with Header and Footer on every page in Laravel

Generate PDF with Header and Footer on every page in Laravel

Hôm nay, trong bài viết này mình sẽ chia sẻ với các bạn cách dompdf mà header và footer sẽ được hiển thị ở tất cả các trang. Đây cũng là một vấn đề khá phổ biến, khi chúng ta phát triển các tính năng...

Efficient Laravel PDF Export for Large Datasets

Efficient Laravel PDF Export for Large Datasets

Xuất file PDF là một tính năng quan trọng của nhiều ứng dụng web, đặc biệt là các trang thương mại điện tử, giúp người dùng tạo và lưu trữ các bản báo cáo, hóa đơn, v.v.  Tuy nhiên, khi phải xử lý...

Laravel Custom Rules

Laravel Custom Rules

Trong quá trình phát triển website Laravel, mình cảm thấy hệ thống Validation của Laravel rất tuyệt vời, nó cung cấp đã cung cấp cho chúng ta một bộ quy tắc kiểm tra dữ liệu, mà trong các trường hợp b...

Export CSV from SQL Server - Import into MySQL with Laravel

Export CSV from SQL Server - Import into MySQL with Laravel

Transfer Database Trong quá trình phát triển và bảo trì dự án, việc di chuyển cơ sở dữ liệu từ hệ thống này sang hệ thống khác là một nhiệm vụ khá phổ biến. Giả sử bạn cần di chuyển dữ liệu từ SQ...

Implementing Private User Folders with CKFinder in Laravel

Implementing Private User Folders with CKFinder in Laravel

CKFinder 3 CKFinder 3 là trình quản lý tập tin được tích hợp với CKEditor 4 và CKEditor 5. Nó giúp bạn dễ dàng đưa các tập tin và hình ảnh vào nội dung của Editor một cách an toàn. Đây là một tín...

Laravel Socialite Login With Google

Laravel Socialite Login With Google

Google Google là một công cụ tìm kiếm trên internet. Nó sử dụng một thuật toán độc quyền được thiết kế để truy xuất và sắp xếp các kết quả tìm kiếm nhằm cung cấp các nguồn dữ liệu đáng tin cậy và ph...

Laravel User Authentication

Laravel User Authentication

Trong hướng dẫn này, tôi sẽ hướng dẫn bạn xây dựng chức năng đăng nhập trong Laravel. Công bằng mà nói thì bạn có thể sử dụng Laravel UI hoặc JetStream để tự động tạo ra chức năng đăng nhập trong Lara...

How To Optimize Your Site With GZIP Compression

How To Optimize Your Site With GZIP Compression

GZIP là công nghệ nén thường được sử dụng để truyền dữ liệu một cách nhanh chóng qua Insternet. Hiện nay, GZIP là một tiêu chuẩn để nén các file trên trang web, đa số các website hiện nay hơn 99% sử d...

ManhDanBlogs