SessionEvent
Alle berichten van Copilot zijn instanties van de klasseRevolution\Copilot\Types\SessionEvent.
Omdat deze klasse het meest wordt gebruikt, zijn er handige Laravel-achtige functies aan toegevoegd.
content()
Haalt het belangrijkste antwoordbericht van de AI op.
__toString() retourneert de inhoud van het bericht.
Het eventtype bepalen
Je kuntisAssistantMessage(), isUserMessage(), isIdle() en isAssistantMessageDelta() gebruiken.
Voor veelgebruikte eventtypes kunnen er nog meer helpers worden toegevoegd.
Met is() kun je op elk willekeurig EventType controleren.
type() retourneert de stringwaarde van de SessionEventType-enum.
failed() / successful()
Wanneer het eventtype SESSION_ERROR is, geeft failed() true terug.
successful() is het omgekeerde daarvan.
Om aan te sluiten bij de Laravel-naamgeving is deze hernoemd van isError().
throw()
Net als bij de HTTP API en Process API van Laravel worden fouten bewaard en kun je met throw() een exception gooien.
Als er geen fout is, gebeurt er niets, dus je kunt dit zo schrijven:
SESSION_ERROR wordt een Revolution\Copilot\Exceptions\SessionErrorException gegooid.
Bij een timeout wordt een Revolution\Copilot\Exceptions\SessionTimeoutException gegooid.
Bij JSON-RPC-fouten wordt een Revolution\Copilot\Exceptions\JsonRpcException gegooid.
Conditionable
Je kuntwhen() en unless() gebruiken.
Dumpable
Je kuntdump() en dd() gebruiken.
Tappable
Je kunttap() gebruiken.
InteractsWithData
Deze functionaliteit geldt alleen voor de property$data van SessionEvent.
Je kunt vertrouwde helpers gebruiken zoals all(), has(), only() en collect().
Zie InteractsWithData voor details.
Omdat de structuur van $data van SessionEvent per EventType verschilt, is dit handig om per event waarden op te vragen.
content() gebruikt intern ook InteractsWithData.
toArray() / toJson()
Je kunt de hele SessionEvent omzetten naar een array of JSON.
collect()-methode voor het hele event.
$data heeft namelijk al de collect() van InteractsWithData.
Wil je het hele event als collectie bewerken, gebruik dan de collect()-helper van Laravel.
broadcast() / broadcastNow()
Je kunt broadcasten met dezelfde interface als het StreamEvent van de Laravel AI SDK.
In de AI SDK gebruik je dit bij streaming, maar bij SessionEvent kan het bij elk EventType.
broadcastNow() broadcast direct, zonder via een queue te gaan.
Raadpleeg de GitHub-repository voor de meest actuele informatie.