API Reference Overview
This section provides detailed API documentation for the Bupple AI Engine package.
Core Components
BuppleEngine
The main class that provides access to all engine functionality.
php
use Bupple\Engine\BuppleEngine;
class BuppleEngine
{
public function memory(): MemoryManager;
public function engine(?string $name = null): EngineDriverInterface;
public function sse(): SseStreamDriver;
public function jsonParserHelper(): JsonParserHelper;
public function driver(?string $driver = null): MemoryDriverInterface;
public function config(?string $key = null, mixed $default = null): mixed;
}
Memory Manager
Manages memory storage and retrieval across different drivers.
php
use Bupple\Engine\Core\Drivers\Memory\MemoryManager;
class MemoryManager
{
public function driver(?string $name = null): MemoryDriverInterface;
public function getDefaultDriver(): string;
public function setDefaultDriver(string $name): void;
public function getConfig(?string $name = null): array;
}
SSE Stream Driver
Handles Server-Sent Events streaming.
php
use Bupple\Engine\Core\Drivers\Stream\SseStreamDriver;
class SseStreamDriver
{
public function send(mixed $data, ?string $event = null): void;
public function sendError(mixed $data): void;
public function end(): void;
}
Interfaces
Engine Driver Interface
Interface for AI engine drivers.
php
use Bupple\Engine\Core\Drivers\Engine\Contracts\EngineDriverInterface;
interface EngineDriverInterface
{
public function send(array $messages): array;
public function stream(array $messages): \Generator;
public function getConfig(): array;
}
Memory Driver Interface
Interface for memory storage drivers.
php
use Bupple\Engine\Core\Drivers\Memory\Contracts\MemoryDriverInterface;
interface MemoryDriverInterface
{
public function addUserMessage(string $content, ?string $type = 'text', array $metadata = [], ?string $messageId = null): void;
public function addAssistantMessage(string $content, ?string $type = 'text', array $metadata = [], ?string $messageId = null): void;
public function addSystemMessage(string $content, ?string $type = 'text', array $metadata = [], ?string $messageId = null): void;
public function addMessage(string $role, string $content, ?string $type = 'text', array $metadata = [], ?string $messageId = null): void;
public function getMessages(): array;
public function clear(): void;
}
Engine Drivers
OpenAI Driver
php
use Bupple\Engine\Core\Drivers\Engine\OpenAI\OpenAIDriver;
class OpenAIDriver extends AbstractEngineDriver
{
public function send(array $messages): array;
public function stream(array $messages): \Generator;
public function getConfig(): array;
}
Gemini Driver
php
use Bupple\Engine\Core\Drivers\Engine\Gemini\GeminiDriver;
class GeminiDriver extends AbstractEngineDriver
{
public function send(array $messages): array;
public function stream(array $messages): \Generator;
public function getConfig(): array;
}
Claude Driver
php
use Bupple\Engine\Core\Drivers\Engine\Claude\ClaudeDriver;
class ClaudeDriver extends AbstractEngineDriver
{
public function send(array $messages): array;
public function stream(array $messages): \Generator;
public function getConfig(): array;
}
Memory Drivers
File Memory Driver
php
use Bupple\Engine\Core\Drivers\Memory\FileMemoryDriver;
class FileMemoryDriver extends AbstractMemoryDriver
{
public function addMessage(string $role, string $content, ?string $type = 'text', array $metadata = [], ?string $messageId = null): void;
public function getMessages(): array;
public function clear(): void;
}
Database Memory Driver
php
use Bupple\Engine\Core\Drivers\Memory\DatabaseMemoryDriver;
class DatabaseMemoryDriver extends AbstractMemoryDriver
{
public function addMessage(string $role, string $content, ?string $type = 'text', array $metadata = [], ?string $messageId = null): void;
public function getMessages(): array;
public function clear(): void;
}
Redis Memory Driver
php
use Bupple\Engine\Core\Drivers\Memory\RedisMemoryDriver;
class RedisMemoryDriver extends AbstractMemoryDriver
{
public function addMessage(string $role, string $content, ?string $type = 'text', array $metadata = [], ?string $messageId = null): void;
public function getMessages(): array;
public function clear(): void;
}
Helpers
JSON Parser Helper
php
use Bupple\Engine\Core\Helpers\JsonParserHelper;
class JsonParserHelper
{
public function parse(string $json): mixed;
}
Next Steps
For detailed documentation on each component, see: