PHPackages                             alex8bits/ai\_client - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. alex8bits/ai\_client

ActiveLibrary[Framework](/categories/framework)

alex8bits/ai\_client
====================

Laravel AI integration

v1.0.18(2mo ago)034↓100%MITPHPPHP &gt;=8.1

Since Nov 20Pushed 2mo agoCompare

[ Source](https://github.com/alex8bits/ai_client)[ Packagist](https://packagist.org/packages/alex8bits/ai_client)[ RSS](/packages/alex8bits-ai-client/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (1)Versions (20)Used By (0)

📘 AI Client (Laravel ChatGPT Integration)

Интеграция ChatGPT / OpenAI / Proxy-серверов в Laravel с поддержкой function calling (tools), инструкций, базового системного промпта, и DTO.

Пакет построен на принципе независимости от провайдера: можно использовать OpenAI напрямую или через любой свой Proxy API.

📦 Установка
-----------

[](#-установка)

```
composer require alex8bits/ai_client
```

Пакет регистрируется автоматически через Laravel Package Discovery.

🔧 Публикация конфига (опционально)
----------------------------------

[](#-публикация-конфига-опционально)

```
php artisan vendor:publish --provider="Alex8bits\AiClient\ChatGPTServiceProvider" --tag=config
```

Будет создан:

config/chatgpt.php

Пример фрагмента config/chatgpt.php

```
return [
    'model' => 'gpt-4.1',
    'temperature' => 0.2,
    'max_tokens' => 2048,
    'base_prompt' => "Ты — умный и вежливый AI ассистент.",

    'instructions' => [
        'weather' => "Ты отвечаешь о погоде кратко, строго по факту.",
    ],

    'tools' => [
        'get_weather' => [
            'type' => 'function',
            'function' => [
                'name' => 'getWeather',
                'description' => 'Получение погоды по городу',
                'parameters' => [
                    'type' => 'object',
                    'properties' => [
                        'city' => ['type' => 'string'],
                    ],
                    'required' => ['city'],
                ],
            ],
        ],
    ],
];

```

🧠 Базовый пример использования

```
use ChatGPT;
use Alex8bits\AiClient\DTO\Message;
use Alex8bits\AiClient\Enums\Role;

$response = ChatGPT::send([
new Message(Role::User, 'Привет! Как дела?'),
]);

echo $response->text(); // или разбор choices

```

📌 Пример использования инструкции (instructionKey)

```
$response = ChatGPT::send(
messages: [
new Message(Role::User, "Какая сегодня погода?")
],
instructionKey: 'weather'
);

```

Будет добавлена системная инструкция:

```
Ты отвечаешь о погоде кратко, строго по факту.

```

🛠 Пример использования tools из конфига

Используем tool по ключу:

```
$response = ChatGPT::send(
messages: [
new Message(Role::User, "Скажи погоду в Москве"),
],
toolKeys: ['get_weather']
);

```

ChatGPT сможет вызвать функцию:

```
{
    "type": "function",
    "function": {
        "name": "getWeather",
        "arguments": "{ \"city\": \"Москва\" }"
    }
}

```

🔧 Пример ручного добавления tool (без конфига)

```
use Alex8bits\AiClient\DTO\Tool;
use Alex8bits\AiClient\DTO\ToolFunction;

$tool = new Tool(
    type: 'function',
    function: new ToolFunction(
        name: 'calculateSum',
        description: 'Сложение двух чисел',
        parameters: [
            'type' => 'object',
            'properties' => [
                'a' => ['type' => 'number'],
                'b' => ['type' => 'number'],
            ],
        'required' => ['a', 'b']
        ]
    )
);

$response = ChatGPT::send(
    messages: [
        new Message(Role::User, "Сложи 5 и 7")
    ],
    tools: [$tool]
);

```

🧩 Пример смешанных tools (ручные + из конфига)

```
ChatGPT::send(
    messages: [ new Message(Role::User, "Комбинированный запрос") ],
    tools: [
        new Tool(
            type: 'function',
            function: new ToolFunction(
            name: 'customLogic',
            description: 'Моя логика',
            parameters: []
            )
        )
    ],
    toolKeys: ['get_weather']
);

```

🏗 Пример работы с ProxyClient (кастомный API)

В config/chatgpt.php:

```
'client' => Alex8bits\AiClient\Clients\ProxyClient::class,

'use_proxy' => true,
'proxy_url' => env('CHATGPT_PROXY_URL'),

```

Теперь запросы пойдут через ваш API.

🎯 Ответ ChatGPT — DTO

```
$response->choices[0]->content;
$response->choices[0]->functionCall?->name;
$response->raw;     // полный JSON

```

###  Health Score

41

—

FairBetter than 89% of packages

Maintenance88

Actively maintained with recent releases

Popularity9

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~6 days

Recently: every ~25 days

Total

19

Last Release

60d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/7e3120e863bbd80929049bebf81511da3d053c7675b4f161db6efcae2dbe81f8?d=identicon)[alex8bits](/maintainers/alex8bits)

---

Top Contributors

[![alex8bits](https://avatars.githubusercontent.com/u/15152675?v=4)](https://github.com/alex8bits "alex8bits (18 commits)")

### Embed Badge

![Health badge](/badges/alex8bits-ai-client/health.svg)

```
[![Health](https://phpackages.com/badges/alex8bits-ai-client/health.svg)](https://phpackages.com/packages/alex8bits-ai-client)
```

###  Alternatives

[laravel/socialite

Laravel wrapper around OAuth 1 &amp; OAuth 2 libraries.

5.7k96.9M672](/packages/laravel-socialite)[laravel/horizon

Dashboard and code-driven configuration for Laravel queues.

4.2k84.2M224](/packages/laravel-horizon)[laravel/ui

Laravel UI utilities and presets.

2.7k134.9M597](/packages/laravel-ui)[laravel/jetstream

Tailwind scaffolding for the Laravel framework.

4.1k19.8M136](/packages/laravel-jetstream)[stancl/tenancy

Automatic multi-tenancy for your Laravel application.

4.3k6.6M40](/packages/stancl-tenancy)[internachi/modular

Modularize your Laravel apps

1.1k662.4k8](/packages/internachi-modular)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
