Chat Completion Models versus OpenAI Assistants API

In deze blog gaan we enkele belangrijke verschillen verkennen tussen chat-completiemodellen (zoals die worden geleverd via het Chat Completions-eindpunt) en de geavanceerdere OpenAI Assistants API. We zullen analyseren hoe deze twee benaderingen berichten, gespreksgeschiedenis, grote documenten, programmeertaken, contextvenstergrenzen en meer behandelen. We zullen ook bekijken hoe de Assistants API aanvullende tools biedt — zoals code-interpreters, documentopvraging en functieaanroeping — die veel beperkingen van chat-completies overwinnen.

Begrip van Chat Completie Modellen

Chat completion models, such as GPT‑4 or GPT‑4o, typically expect a sequence of messages as input. The usual process is simple:
  • Je stuurt een lijst met berichten naar het model.
  • Het model genereert een reactie.
  • Je ontvangt de reactie als output.

Voorbeeldstroom van Chat Completies

Je vraagt: Wat is de hoofdstad van Japan?

  • Het model antwoordt: De hoofdstad van Japan is Tokio.

Vervolgens vraag je: Vertel me iets over de stad.

  • Het model zegt dat het geen context heeft en niet weet over welke stad je het hebt, omdat het niet inherent de berichtgeschiedenis bijhoudt in dezelfde gespreksstatus.

Beperkingen van Chat Completie Modellen

1. Geen Persistente Berichtgeschiedenis

Een nadeel is het ontbreken van berichtgeschiedenis. In chatvoltooiingen onthoudt het model niet automatisch eerdere berichten. Als je bijvoorbeeld eerst vraagt: “Wat is de hoofdstad van Japan?” en dan gewoon zegt: “Vertel me iets over de stad,” kan het model vaak niet naar de naam van de stad verwijzen, tenzij je die opnieuw handmatig verstrekt.

2. Geen Directe Documentenverwerking

Chatvoltooiingsmodellen ondersteunen ook niet direct het verwerken van grote documenten. Als je bijvoorbeeld een PDF van 500 pagina’s hebt en iets wilt opvragen zoals: “Hoeveel winstmarge heeft mijn bedrijf gemaakt in het eerste kwartaal van 2023?” dan heb je een proces genaamd retrieval-augmented generation (RAG) nodig. Dit omvat:

  • Het document omzetten naar tekst
  • Het opsplitsen in kleinere brokken
  • Die brokken omzetten naar embeddings
  • Ze opslaan in een vector database
  • De relevante brokken ophalen op het moment van de query en ze vervolgens als context aan het model doorgeven

3. Uitdagingen bij Coderingstaken

Een ander probleem is het omgaan met rekenkundige taken. Als je chatvoltooiingen vraagt om iets te doen, zoals het omkeren van een string, kan het model een verkeerd of onvolledig antwoord genereren. Bijvoorbeeld:

Plain Text

 

Het kan ook onjuiste of verouderde informatie geven over de huidige datum, aangezien het geen realtime rekenmogelijkheden heeft.

4. Beperkt Contextvenster

Chat completion models hebben een vast maximum aantal tokens. Als je deze limiet overschrijdt, kun je niet alle benodigde informatie in één verzoek doorgeven. Deze beperking kan de voortgang van grootschalige gesprekken of contextzware taken verstoren.

5. Synchrone verwerking

Ten slotte zijn chat completion-modellen synchroon. Zodra je een vraag stelt, moet je wachten op een enkel antwoord. Je kunt niet meerdere verzoeken parallel indienen en vervolgens de resultaten combineren zonder zorgvuldige orchestratie.

Introductie van de Assistants API

De OpenAI Assistants API adresseert de bovenstaande uitdagingen door je in staat te stellen AI-assistenten met aanvullende mogelijkheden te bouwen. Het biedt:

  1. Instructies. Vergelijkbaar met een systeembericht, deze definiëren wat je assistent moet doen.
  2. Threads. Alle eerdere berichten worden opgeslagen in threads, zodat de assistent de context over meerdere beurten kan behouden.
  3. Tools. Deze omvatten functies zoals een code-interpreter, ophalen van documenten en functieaanroepen.
  4. Modellen. Het ondersteunt momenteel GPT‑4 (1106 preview) en zal in de toekomst aangepaste fijnafgestemde modellen ondersteunen.

Tools in de Assistants API

  • Code interpreter. Wanneer een berekeningstaak wordt aangevraagd, zoals het omkeren van een string of het vinden van de datum van vandaag, kan de assistent een code-interpreterstool gebruiken om Python-code uit te voeren. De assistent geeft dan het juiste resultaat terug, in plaats van uitsluitend te vertrouwen op tokenvoorspellingen.
  • Opvragen. Met opvragen kunt u tot 20 bestanden uploaden (elk tot 52 MB en tot 2 miljoen tokens per bestand). Wanneer u een query uitvoert, kan de assistent rechtstreeks naar die bestanden verwijzen, waardoor het hanteren van grote documenten veel eenvoudiger wordt.
  • Functieoproep. U kunt een functie definiëren die uw interne database bevraagt (voor taken zoals het controleren van verkoopcijfers). De assistent zal vragen om die functie met de vereiste argumenten aan te roepen, en u geeft dan de resultaten terug aan de assistent. Op deze manier kan het model actuele gegevens benutten die het normaal gesproken niet zou hebben.
  • Verwerken van grotere contextvensters. De threads in de Assistants API selecteren dynamisch welke berichten moeten worden opgenomen als context, waardoor het beter grote hoeveelheden conversatie aankan. Dit betekent dat u niet langer strikt gebonden bent aan een klein contextvenster.

Voorbeeldimplementatie

Hieronder staat een voorbeeld van een Python-snippet die laat zien hoe u een assistent kunt maken, instructies kunt instellen, tools kunt inschakelen en vervolgens queries kunt uitvoeren met behulp van threads. Deze code illustreert de asynchrone workflow en het gebruik van functies zoals code-interpretatie.

Assistent maken

Plain Text

 

Thread maken

Plain Text

 

Vraag stellen

Plain Text

 

Query asynchroon uitvoeren

Plain Text

 

Output:

Een andere vraag stellen in dezelfde thread

Plain Text

 

Uitvoer:

In dit voorbeeld zie je hoe de thread de context behoudt. Wanneer we de assistent vragen om de string om te keren, gebruikt het de code-interpretertool. Vervolgens vragen we om een hoofdletterversie van de vorige invoer en krijgen de lengte ervan. De assistent herinnert zich onze eerdere vraag vanwege de opgeslagen threadberichten.

De OpenAI Assistants API biedt een uitgebreide reeks functies die verder gaan dan de gebruikelijke chat-completiemodellen. Het houdt de berichtengeschiedenis bij, ondersteunt het ophalen van grote documenten, voert Python-code uit voor berekeningen, beheert grotere contexten en maakt functieaanroepen mogelijk voor geavanceerde integraties. Als je realtime berekeningen nodig hebt, op documenten gebaseerde vraag en antwoord, of meer dynamische interacties in je AI-toepassingen, biedt de Assistants API oplossingen die de kernbeperkingen van standaard chat-completies aanpakken.

Met behulp van deze instructies, threads, tools (zoals code-interpreter en ophalen) en functieaanroepen, kun je geavanceerde AI-assistenten creëren die naadloos alles afhandelen, van het omkeren van strings tot het bevragen van interne databases. Deze nieuwe aanpak kan transformeren hoe we AI-gedreven systemen bouwen en gebruiken in real-world scenario’s.

Bedankt voor het lezen!

Laten we contact maken op LinkedIn!

Source:
https://dzone.com/articles/chat-completion-models-vs-openai-assitance-api