PHPackages                             mariolucasdev/ci3-ai - 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. mariolucasdev/ci3-ai

ActiveLibrary[Framework](/categories/framework)

mariolucasdev/ci3-ai
====================

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

00PHP

Since Jul 10Pushed 1mo agoCompare

[ Source](https://github.com/mariolucasdev/ci3-ai)[ Packagist](https://packagist.org/packages/mariolucasdev/ci3-ai)[ RSS](/packages/mariolucasdev-ci3-ai/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependenciesVersions (1)Used By (0)

CI3 AI
======

[](#ci3-ai)

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
----------

[](#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
---

[](#uso)

### Pergunta simples

[](#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

[](#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

[](#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--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

[](#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
---------------------------

[](#provedores-e-modelos-padrão)

ProvedorModelo padrãoVariável de ambienteOpenAI`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
----

[](#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
-------

[](#licença)

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

###  Health Score

19

—

LowBetter than 9% of packages

Maintenance60

Regular maintenance activity

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity11

Early-stage or recently created project

 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.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/14020978?v=4)[Mário Lucas](/maintainers/mariolucasdev)[@mariolucasdev](https://github.com/mariolucasdev)

---

Top Contributors

[![mariolucasdev](https://avatars.githubusercontent.com/u/14020978?v=4)](https://github.com/mariolucasdev "mariolucasdev (11 commits)")

### Embed Badge

![Health badge](/badges/mariolucasdev-ci3-ai/health.svg)

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

###  Alternatives

[awcodes/filament-addons

A set of components / fields to extend Filament Admin.

3013.1k2](/packages/awcodes-filament-addons)[nineinchnick/edatatables

Grid widget for the Yii Framework, wrapper for the DataTables jQuery plugin

173.2k](/packages/nineinchnick-edatatables)

PHPackages © 2026

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