← Înapoi la Blog
·7 minute de citit·

Integrarea chatbot-urilor AI în aplicații web: de la API de bază la răspunsuri în flux în Next.js

Aflați cum să integrați modele AI precum OpenAI și Anthropic în aplicații web. Acoperim apeluri simple API, evenimente trimise de server (SSE) pentru streaming de răspuns în timp real și construirea de interfețe de chat în Next.js.

Integrarea AINext.jsEvenimente trimise de serverWebSocketsOpenAI
Angajează-mă pe Upwork

Integrarea inteligenței artificiale în aplicațiile web este una dintre cele mai solicitate funcții în prezent. De la roboți automati de asistență pentru clienți la asistenți personali inteligenți, interfețele de chat devin standard. Cu toate acestea, așteptarea unui LLM pentru a genera un răspuns complet poate dura între 10 și 30 de secunde, ceea ce provoacă o experiență slabă a utilizatorului. Generarea răspunsului în flux rezolvă această problemă prin afișarea cuvintelor pe măsură ce sunt generate.

În acest articol, vom explora diferențele dintre răspunsurile simple JSON și streaming și vom afla cum să construim o interfață chatbot în timp real în Next.js folosind Server-Sent Events (SSE) și OpenAI SDK.

1. Apeluri standard JSON API vs. Streaming în timp real

Când un utilizator declanșează o solicitare AI, pot fi utilizate două abordări principale pentru a furniza răspunsul:

  • Standard JSON Preluare: clientul trimite o solicitare și așteaptă. Serverul comunică cu OpenAI, așteaptă finalizarea întregii propoziții, o compilează într-un bloc JSON și o trimite înapoi. Acest lucru determină un indicator de încărcare lung și rate ridicate de respingere.
  • Streaming cu evenimente trimise de server (SSE): serverul deschide o conexiune HTTP persistentă. De îndată ce modelul AI generează un nou token (un cuvânt sau o parte din acesta), serverul îl împinge în browser. Utilizatorul vede textul care apare imediat, reducând timpul de încărcare perceput la milisecunde.

2. Implementarea backend în Next.js Route Handlers

Next.js App Router acceptă răspunsuri în flux nativ folosind Web Streams. Iată cum arată un Route Handler simplificat pentru streaming:

Mai întâi, configurăm clientul OpenAI și declanșăm finalizarea chat-ului cu indicatorul `stream: true`. Apoi, transformăm fluxul OpenAI care poate fi citit într-un flux standard de răspuns HTTP. Browserul citește fragmentele și le procesează din mers.

3. Crearea interfeței de utilizare a chatului și procesarea fluxului pe client

Pe front-end, folosim starea React pentru a păstra mesajele și a gestiona fluxul de răspuns. `fetch` API standard este capabil să citească date de streaming folosind cititorul `ReadableStream`:

  • Citiți cititorul corpului răspunsului. Folosind o buclă `while(true)`, citiți bucățile primite folosind `reader.read()`. Decodificați aceste bucăți binare în șiruri de text folosind `TextDecoder`.
  • Actualizați starea mesajului în timp real, adăugând noile jetoane la ultimul mesaj pe măsură ce sosesc, ceea ce face ca React să redă din nou și să afișeze dinamic fluxul de cuvinte.
  • Derulați automat în partea de jos a containerului de chat pe măsură ce conținutul nou este tipărit, astfel încât cele mai recente linii să fie întotdeauna vizibile pentru utilizator.

4. Gestionarea cazurilor marginale și gestionarea erorilor

Construirea de aplicații de chat de nivel de producție necesită o atenție suplimentară la detalii:

  • Întreruperi ale conexiunii: implementați logica de reconectare și stările de alertă dacă fluxul HTTP se întrerupe în mod neașteptat în timpul generării.
  • Solicitari de anulare: furnizați un buton „Opriți generarea” în interfața de utilizare. Utilizați `AbortController` în cererile dvs. Fetch pentru a spune serverului să anuleze cererea LLM și să nu mai risipească API costuri.
  • Markdown și redarea codului: răspunsurile LLM conțin adesea tabele Markdown sau blocuri de cod formatate. Utilizați componente precum `react-markdown` și evidențieri de sintaxă pentru a reda aspecte structurate.

Concluzie: îmbunătățiți-vă UX cu Streaming AI

Streamingul de răspuns în timp real este o necesitate pentru aplicațiile web moderne bazate pe inteligență artificială. Utilizând Evenimente trimise de server, Next.js rută în flux și containere de chat receptive React, puteți construi interfețe interactive care se simt rapide, vii și șlefuite.

Doriți să integrați soluții OpenAI, Anthropic sau personalizate locale LLM cu funcții de streaming în aplicația dvs. de afaceri? Contactați-vă folosind formularul de contact de mai jos și haideți să-l construim corect!

Aveți nevoie de acest lucru construit, nu doar explicat?

Soluții AI pentru afaceri: RAG, agenți, Next.js. Antreprenor direct.

Angajează-mă pe Upwork

Sunteți gata să discutați despre proiectul dvs.?

Sunt un inginer web senior specializat în React și Next.js - disponibil pentru proiecte independente din întreaga lume.