定制 alex8bits/ai_client 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

alex8bits/ai_client

最新稳定版本:v1.0.15

Composer 安装命令:

composer require alex8bits/ai_client

包简介

Laravel AI integration

README 文档

README

📘 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

统计信息

  • 总下载量: 23
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-11-20