In die laaste paar maande het ek hard gewerk om die KI-agente-integrasie in my SaaS-produk na 'n hoër vlak te stoot. Dit was 'n baie lang reis, wat meer as 'n jaar gelede met die eerste eksperimente begin het. Ek moes sê dat dit ver van maklik was om al die bewegende dele van 'n KI-gedrewe stelsel te verstaan.
As 'n PHP-ontwikkelaar het ek baie gesukkel, hoofsaaklik omdat die PHP-ekosisteem om hierdie soort "Agentiese" kenmerke in bestaande toepassings te ontwikkel, dit nie so gevorderd en ryk is soos in ander tegnologieë nie.
Python en Javascript “ry die bus”, en natuurlik skep ander ontwikkelaars wat met verskillende programmeertale werk hul artefakte om die geleentheid te kry om ook hul reis te begin.
Ses maande gelede toe ek aan hierdie hoofstuk begin werk het, het ek 'n paar pakkette in ag geneem wat aandag gekry het soos LLPhant , of Prism . Daar was baie ontwikkeling agter hierdie pakkette en hulle het reeds baie dinge geïmplementeer. Maar vir my behoeftes het hulle te ernstige swakhede om te oorweeg om die grondslag van hierdie hoofstuk vir my besigheid op hierdie biblioteke te bou. Prism is uitsluitlik vir Laravel, so jy is toegesluit, en LLPhant het baie verskillende klasse en lyk meer soos 'n biblioteek as 'n raamwerk. Dit het ook nie funksies soos geheue, kletsgeskiedenis, waarneembaarheid nie.
Van die begin af het ek besef dat ek nie na ander programmeertale kan kyk nie. Dit is nie volhoubaar nie. En ek is seker dit is dieselfde vir die meeste ontwikkelaars wat in 'n spesifieke tegnologie spesialiseer.
As jy 'n PHP-toepassing het, kan jy nie 'n agent in javascript of Python implementeer nie, want hulle het jou toepassingsdata en konteks nodig om hul magie te genereer. Die oordrag van hierdie data en konteks na 'n eksterne entiteit wat in 'n ander taal geskryf is, lei tot baie kodeduplisering, of tegniese beperking wat ook nie volhoubaar is nie.
Ek is nuuskierig om te sien of dit net ek was wat gesukkel het, of of hierdie gevoelens dieselfde is as ander PHP-ontwikkelaars.
Ek het begin dink dat die instrument wat ek vir myself geskep het regtig baie goed was, ten minste in my perspektief.
Ek het dus besluit om hierdie interne hulpmiddel as 'n oopbronprojek vry te stel: Neuron AI , oopbronraamwerk om volledige KI-agente in jou bestaande PHP-toepassing te integreer.
Die reis wat ek graag wil verken, is geïnspireer deur LangChain, wat mense die krag gee om Agentiese entiteite in PHP-toepassings te skep, met 'n volledige oopbron-nutsmiddelstel. En bied ondersteuning en langtermynsigbaarheid danksy die professionele monitering en ontfoutingsdiens aangedryf deur Inspector.dev
Terselfdertyd glo ek dat dit PHP-ontwikkelaars regtig kan help om "in die KI-bus te spring" met sterker fondamente.
Dit het vir my 'n duidelike geleentheid gelyk. Ek hoop dit kan vir jou die antwoorde gee waarna jy soek om voort te gaan om wonderlike sagteware te bou met jou voorkeurprogrammeertaal.
Hier is 'n hoe die stelsel georganiseer is:
Neuron AI is ontwerp om jou van 'n volledige gereedskapstel te voorsien om KI-gedrewe toepassings te implementeer, wat dit maklik maak om in jou bestaande stelsel te integreer.
Die meeste Neuron AI-raamwerkkomponente implementeer nie aktiewe konstrukteurs nie, hulle verskaf net funksies om jou eie agentiese gedrag te implementeer. Die twee belangrikste klasse, Agent en JOOL , is ontwerp om uitgebrei te word om jou spesifieke implementering te skep. Hulle word selde as selfstandige voorwerpe gebruik.
Dit verseker die oordraagbaarheid van jou agent-implementering omdat al die bewegende dele in 'n enkele entiteit ingekapsuleer is wat jy net kan hardloop waar jy wil in jou toepassing.
namespace App\Agents; use NeuronAI\Agent; use NeuronAI\Providers\Anthropic; use NeuronAI\Tools\Tool; class SEOAgent extends Agent { public function provider(): AIProviderInterface { // return an AI provider instance (Anthropic, OpenAI, Mistral, etc.) return new Anthropic( key: 'ANTHROPIC_API_KEY', model: 'ANTHROPIC_MODEL', ); } public function instructions() { return "Act as an expert of SEO (Search Engine Optimization). ". "Your role is to analyze a text and provide suggestions on how the content can be improved to better rank on Google search."; } public function tools(): array { return [ Tool::make( "get_file_content", "Use the url to get the content in plain text." )->addProperty( new ToolPropertry( name: 'url', type: 'string', description: 'The URL of the article you want to analyze.', required: true ) )->setCallable(function (string $url) { return file_get_contents($url); }) ]; } }
Praat met die agent
use NeuronAI\Chat\Messages\UserMessage; $response = SEOAgent::make($user) ->chat( new UserMessage("Give me your feedback about this article: https://inspector.dev/introduction-to-neuron-ai-create-full-featured-ai-agents-in-php/") ); echo $response->getContent(); // It seems like a good job has been done on the article, // however I can give you some tips to improve SEO:...
Ons het doelbewus besluit om Neuron so vry as moontlik van eksterne afhanklikhede te bou. Die pakket word met net een afhanklikheid gestuur: "guzzlehttp/guzzle": "^7.0"
Sonder om dosyne afhanklikhede binne jou toepassing te bring, loop jy nie die risiko om uit Neuron gesluit te word as jy jou huidige argitektuur, soos die webtoepassingsraamwerk (Laravel, Symfony, CodeIgniter, ens.) na 'n nuwer weergawe moet opgradeer, of nuwe afhanklikhede moet integreer.
Gebaseer op ons ervaring, kan 'n slegte afhanklikheidsketting 'n baie onaangename verrassing wees wanneer dit te laat is. Jy het reeds baie moeite spandeer om jou KI-interaksies te implementeer, en skielik het dit 'n bottelnek geword omdat die afhanklikhede dit onmoontlik maak om die res van jou stelsel op te gradeer en te ontwikkel.
Ons wil hê jy moet weet dat dit nie die geval is met Neuron AI nie.
Elke komponent van die raamwerk hang af van sy eie koppelvlak. Dit waarborg jou die vermoë om nuwe konkrete implementerings van elke komponent te skep om met eksterne stelsels te kommunikeer en dit met selfvertroue aan jou agente oor te dra.
In die komponentdokumentasie vind u die toegewyde afdeling van hoe om 'n nuwe een te implementeer, wat basies sy koppelvlak uitbrei.
Wil jy 'n nuwe Vector Store , of 'n Inbeddingsverskaffer implementeer? Volg die dokumentasie en stuur gerus vir ons 'n PR met jou nuwe module. Ons sal hulle graag as deel van die raamwerk integreer om eersteparty-ondersteuning en instandhouding te verseker.
Neuron is ontwerp met 'n ingeboude stelsel om jou agent- en JOOL-implementerings waarneembaar te maak. Jy kan begin om jou agent se aktiwiteite en prestasie te monitor met net een reël kode. Kyk na die toegewyde afdeling in die waarneembaarheidsafdeling .
Om 'n ten volle funksionele KI-agent te skep, moet jy verskeie dinge laat saamwerk. Afgesien van die LLM, moet jy voortdurend data verwerk, inbeddings skep en stoor om jou agent met vars inligting te voed.
Die projek het ten doel om maklik om te implementeer en oplossings in al hierdie gebiede uit te brei.
By Inspector omhels ons organiese groei. Ons wil dus graag begin om ontwikkelaars te help om hul eerste agente te skep om randgevalle, nuwe behoeftes en natuurlik foutoplossings te ontdek.
Ons is reeds aan die werk met ons interne gebruikersbasis van +10K PHP-ontwikkelaars wat hul Agente op die oomblik begin en baie opwindende dinge kom nog na vore.
Werklike gebruiksgevalle sal die drywer van die raamwerk-evolusie wees, so moet asseblief nie huiwer om ons te kontak as jy 'n bietjie kennis uit ons ondervinding wil opdoen nie. Ons is hier om te help.
As jou kliënte jou druk om KI-kenmerke in jou toepassing te implementeer, probeer Neuron, dit neem net 'n paar reëls kode om jou eerste volledige agent te implementeer.
Dankie dat jy hierdie artikel gelees het, ek nooi jou uit om my te kontak vir enige vrae, nuuskierigheid, of net om vir my jou terugvoer te gee. En as jy dink dat hierdie hulpmiddel nuttig kan wees vir ander PHP-ontwikkelaars, deel dit asseblief op jou blog, sosiale media en YouTube-kanale.
Kom meer te wete oor inspekteur op die webwerf: https://inspector.dev
Beste,
Valerio