1. Go to this page and download the library: Download borah/llm-port-laravel library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
use Borah\LLMPort\Facades\LLMPort;
use Borah\LLMPort\Enums\MessageRole;
use Borah\LLMPort\ValueObjects\ChatMessage;
use Borah\LLMPort\ValueObjects\ChatRequest;
$response = LLMPort::chat(new ChatRequest(
messages: [
new ChatMessage(role: MessageRole::System, content: 'You are an AI assistant that just replies with Yes or No'),
new ChatMessage(role: MessageRole::User, content: 'Are you an AI model?'),
]
));
echo $response->id; // 'chatcmpl-...'
echo $response->content; // 'Yes'
echo $response->finishReason; // 'stop'
echo $response->usage?->inputTokens; // 5
echo $response->usage?->outputTokens; // 10
echo $response->usage?->totalTokens(); // 15
use Borah\LLMPort\Facades\LLMPort;
use Borah\LLMPort\Enums\MessageRole;
use Borah\LLMPort\ValueObjects\ChatMessage;
use Borah\LLMPort\ValueObjects\ChatRequest;
$response = LLMPort::driver('openai')->using('gpt-4o-mini')->chat(new ChatRequest(
messages: [
new ChatMessage(role: MessageRole::System, content: 'You are an AI assistant that just replies with Yes or No'),
new ChatMessage(role: MessageRole::User, content: 'Are you an AI model?'),
]
));
use Borah\LLMPort\Facades\LLMPort;
use Borah\LLMPort\Enums\MessageRole;
use Borah\LLMPort\ValueObjects\ChatMessage;
use Borah\LLMPort\ValueObjects\ChatRequest;
$response = LLMPort::driver('gemini')->chat(new ChatRequest(
messages: [
new ChatMessage(role: MessageRole::System, content: 'You are an AI assistant that just replies with Yes or No'),
new ChatMessage(role: MessageRole::User, content: 'Are you an AI model?'),
]
));
use Borah\LLMPort\Contracts\CanListModels;
use Borah\LLMPort\Contracts\CanStreamChat;
use Borah\LLMPort\Drivers\LlmProvider;
use Borah\LLMPort\Enums\MessageRole;
use Borah\LLMPort\ValueObjects\ChatMessage;
use Borah\LLMPort\ValueObjects\ChatRequest;
class MyAwesomeDriver extends LlmProvider implements CanListModels, CanStreamChat
{
public function models(): Collection
{
return collect([
new LlmModel(name: 'model-1'),
new LlmModel(name: 'model-2'),
]);
}
public function chat(ChatRequest $request): ChatResponse
{
// Your implementation
}
public function chatStream(ChatRequest $request, Closure $onOutput): ChatResponse
{
// Your implementation
// When you get the server event: `$onOutput($delta, $fullContent);`
}
public function driver(): ?string
{
return 'my_awesome_driver';
}
}
use Borah\LLMPort\Facades\LLMPort;
LLMPort::register('my_awesome_driver', MyAwesomeDriver::class);