Skip to content

I have developed a Laravel library that enables the creation and storage of conversations with ChatGPT.

License

Notifications You must be signed in to change notification settings

ogrre/laravel-chatgpt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

49b10c4 ยท Apr 29, 2024

History

29 Commits
Jan 4, 2024
Jun 27, 2023
Jan 4, 2024
Jan 12, 2024
Apr 29, 2024
Jan 13, 2024

Repository files navigation

๐Ÿˆ Laravel Chat for ChatGPT

Packagist Version GitHub License Packagist Downloads

Documentation

This libray need openai php client, so don't forget to add in your .env this variables:

# .env

OPENAI_API_KEY=
OPENAI_API_ORGANIZATION=
OPENAI_MODEL=gpt-4

Installation:

To install the Laravel Chat for ChatGPT library, run the following command:

composer require ogrre/laravel-chatgpt

After the installation, publish the vendor files by executing the command:

php artisan vendor:publish --provider="Ogrre\ChatGPT\ChatServiceProvider"

By default, the service provider will be automatically registered in the app.php file. However, if needed, you can manually add the service provider in the config/app.php file:

# config/app.php

'providers' => [
    // ...
    Ogrre\ChatGPT\ChatServiceProvider,
];

Finally, run the migration command to create the necessary database tables:

php artisan migrate

Usage instructions

To associate a chat with a model, the model must use the hasChat trait. For example, in the User model:

class User extends Authenticatable
{
    use HasFactory, HasChat;
    // ...
}

Once the model is set up with the hasChat trait, you can create a new chat using the following command:

$optional_title = "Translate this word";
$optional_role = "You're a helpful assistant";

$user_chat = $user->newChat($optional_title, $optional_role);

After creating a new chat or retrieving an existing one, you have two options to interact with it:

Using the chat object directly:

$chat->gpt("say hello in French");

Using the model directly (in this example, the User model):

$user->chatgpt("say hello in French", $chat);

The Chat model is a standard Laravel Model, so you can use all the usual functions, including delete and others.

Additionally, the library provides a ChatResource for displaying chats in an API, allowing for easy integration with API endpoints.

Contributing

Contributions are welcome and will be fully credited. I accept contributions via Pull Requests on Github.

Support me

Buy Me A Coffee