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
- Copie
application/third_party/ci3_ai/,application/libraries/Ai.phpeapplication/config/ai.phppara sua aplicação CI3. - 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_tokensem toda chamada — o pacote usa 4096 por padrão (configurável emconfig/ai.phpou 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
其他信息
- 授权协议: MIT
- 更新时间: 2026-07-10