Logo HuTor Tech HuTor Tech
← Všetky články

· hutor.tech

Ako pridať OpenAI do existujúcej PHP aplikácie

Ako pridať OpenAI do existujúcej PHP aplikácie

Pridať jazykový model do existujúcej PHP aplikácie je úloha integrácie, nie projekt o umelej inteligencii. Model je vzdialená služba, ktorá je pomalá, občas nedostupná a účtovaná za tokeny — správajte sa k nej presne ako k platobnej bráne a väčšina návrhu vyplynie sama.

Začnite jednou úzkou úlohou. „Zhrň túto požiadavku", „vytiahni z tejto správy doručovaciu adresu", „napíš meta popis pre tento produkt" sa dajú nasadiť za deň a ľahko sa vyhodnocujú. „Pridať AI na web" nie je úloha a projekty, ktoré takto začnú, spravidla končia drahým chatovacím widgetom, ktorý nikto nepoužíva.

Kľúč nechajte na serveri a mimo repozitára. Patrí do `.env`, číta sa cez `config/services.php` v Laraveli, nikdy nie do JavaScriptu a nikdy do šablóny. Kľúč, ktorý sa dostane do prehliadača, je kľúč, ktorý platí cudziu prevádzku.

API volajte z frontu úloh, nie z kontroléra. Požiadavka čakajúca na model môže trvať desať sekúnd alebo úplne vypršať; používateľ na to čakať nemá. Najprv uložte záznam, zaraďte úlohu, výsledok ukážte, keď dorazí. V Laraveli je to pár riadkov; v staršej aplikácii tú istú úlohu dobre zvládne tabuľka úloh s workerom v cron-e.

Volanie obalte rovnakou obranou, akú dávate každej službe tretej strany:
— timeout, aby pomalá odpoveď nedržala worker donekonečna;
— opakovania s odstupom pri limitoch a odpovediach 5xx;
— cache podľa vstupu, aby ste za ten istý popis produktu neplatili dvakrát;
— tvrdý strop na tokeny aj na počet volaní, ktoré vyvolá jeden používateľ;
— logovanie identifikátora požiadavky, spotreby tokenov a ceny.

Keď odpoveď spracúva váš kód, žiadajte štruktúrovaný výstup. Model, ktorý vracia voľný text, vás núti parsovať prózu; model obmedzený JSON schémou vráti polia, ktoré sa dajú overiť. A aj tak ich overte — výstup jazykového modelu je pre vašu aplikáciu používateľský vstup a nesmie sa bez escapovania dostať do SQL, príkazov shellu ani HTML.

Nakoniec sa rozhodnite, čo sa stane, keď sa model pomýli — a pomýli sa. Vygenerovaný text ukazujte ako koncept, ktorý schvaľuje človek, originál nechajte vedľa vygenerovanej verzie a pri nedostupnom API nech sa všetko vráti k pôvodnému správaniu. Integrácia, ktorú sa nedá vypnúť, raz stiahne web so sebou.