定制 mariolucasdev/ci3-ai 二次开发

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

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

mariolucasdev/ci3-ai

Composer 安装命令:

composer require mariolucasdev/ci3-ai

包简介

Pacote de IA para CodeIgniter 3.x: agentes, tools e MCP com OpenAI, Gemini e DeepSeek (PHP 7.2+)

README 文档

README

Pacote de IA para CodeIgniter 3.1.11+ e PHP 7.2+: agentes, tools e MCP (Model Context Protocol) com suporte a OpenAI, Anthropic (Claude), Gemini e DeepSeek — sem nenhuma dependência externa (HTTP via cURL nativo).

Instalação

  1. Copie application/third_party/ci3_ai/, application/libraries/Ai.php e application/config/ai.php para sua aplicação CI3.
  2. Defina as variáveis de ambiente das API keys que for usar:
export OPENAI_API_KEY=sk-...
export ANTHROPIC_API_KEY=sk-ant-...
export GEMINI_API_KEY=...
export DEEPSEEK_API_KEY=...

Uso

Pergunta simples

$this->load->library('ai');

echo $this->ai->ask('Resuma este texto: ...');                          // provedor padrão
echo $this->ai->ask('Olá!', ['temperature' => 0.2], 'gemini');     // provedor específico

Conversa com controle de mensagens

use CiAi\Chat\Message;

$response = $this->ai->chat([
    Message::system('Você é um assistente de suporte.'),
    Message::user('Como redefinir minha senha?'),
], ['model' => 'gpt-4o'], 'openai');

echo $response->content;
print_r($response->usage);

Agente com tools

use CiAi\Tools\DatetimeTool;

$response = $this->ai->agent('deepseek')
    ->setSystemPrompt('Você é um assistente útil.')
    ->addTool(new DatetimeTool())
    ->run('Que horas são em Lisboa?');

echo $response->content;

Criando a sua tool:

use CiAi\Tools\AbstractTool;

class BuscarPedidoTool extends AbstractTool
{
    protected $name = 'buscar_pedido';
    protected $description = 'Busca um pedido pelo número.';
    protected $parameters = [
        'type' => 'object',
        'properties' => [
            'numero' => ['type' => 'string', 'description' => 'Número do pedido'],
        ],
        'required' => ['numero'],
    ];

    public function execute(array $arguments)
    {
        // consulte seu model aqui
        return ['numero' => $arguments['numero'], 'status' => 'enviado'];
    }
}

MCP — consumir um servidor remoto

$mcp = $this->ai->mcpClient('https://exemplo.com/mcp', ['Authorization: Bearer token']);

// Tools remotas direto num agente:
$agent = $this->ai->agent();
foreach ($mcp->tools() as $tool) {
    $agent->addTool($tool);
}
echo $agent->run('Use as tools disponíveis para...')->content;

MCP — expor suas tools como servidor

public function mcp()
{
    $registry = $this->ai->toolRegistry()
        ->register(new DatetimeTool())
        ->register(new BuscarPedidoTool());

    $this->ai->mcpServer($registry, 'minha-app')->respond();
}

Provedores e modelos padrão

Provedor Modelo padrão Variável de ambiente
OpenAI gpt-4o-mini OPENAI_API_KEY
Anthropic (Claude) claude-opus-4-8 ANTHROPIC_API_KEY
DeepSeek deepseek-chat DEEPSEEK_API_KEY
Gemini gemini-2.0-flash GEMINI_API_KEY

Anthropic: a Messages API exige max_tokens em toda chamada — o pacote usa 4096 por padrão (configurável em config/ai.php ou por chamada via ['max_tokens' => ...]).

Modelos e URLs são configuráveis em application/config/ai.php; o modelo também pode ser trocado por chamada via ['model' => '...'].

Demo

Com o servidor embutido do PHP:

OPENAI_API_KEY=sk-... php -S localhost:8000
curl "localhost:8000/index.php/ai_demo/ask?q=Olá"
curl "localhost:8000/index.php/ai_demo/agent?q=Que%20horas%20s%C3%A3o%3F"

Licença

MIT (o CodeIgniter 3 tem licença própria — ver license.txt).

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-07-10

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固