ChatGPT API kan momenteel geen ingebouwde paginering of continue conversaties ondersteunen over meerdere API-aanvragen. Toch kun je je eigen paginering implementeren door de chatgeschiedenis op te slaan en opnieuw te verzenden in de `messages`-parameter.
Hier is een basisscenario over hoe je dat zou doen:
1. Bewaar alle berichten van een gesprek. Dit omvat zowel de berichten verzonden door de gebruiker (‘role’:‘user’) als de berichten geproduceerd door de model (‘role’:‘assistant’).
1. Wanneer je een nieuw bericht wilt verzenden, voeg dan het nieuwe gebruikersbericht toe aan de lijst en stuur de volledige lijst van berichten naar de API.
Dit is een Python-voorbeeld van de bovenstaande logica:
```
import openai
openai.api_key = ‘your-api-key’
- Start met een lege gespreksgeschiedenis
conversation_history = []
- Een hulpmethode om een bericht aan de geschiedenis toe te voegen
def add_message_to_history(role, content):
conversation_history.append({‘role’: role, ‘content’: content})
- Gebruiker start het gesprek
add_message_to_history(‘user’, ‘Hallo, wie ben jij?’)
- Stuur het gesprek naar de API
response = openai.ChatCompletion.create(
model=“gpt-3.5-turbo”,
messages=conversation_history
)
- Voeg het antwoord van de assistent toe aan de geschiedenis
assistant_message = response[‘choices’][‘message’][‘content’]
add_message_to_history(‘assistant’, assistant_message)
- Een extra bericht van de gebruiker
add_message_to_history(‘user’, ‘Wat kun je doen?’)
- Stuur het gesprek opnieuw naar de API
response = openai.ChatCompletion.create(
model=“gpt-3.5-turbo”,
messages=conversation_history
)
- Voeg het antwoord van de assistent toe aan de geschiedenis
assistant_message = response[‘choices’][‘message’][‘content’]
add_message_to_history(‘assistant’, assistant_message)
- Nu bevat ‘conversation_history’ een doorlopend gesprek dat je kunt blijven uitbreiden
```
Let op: Deze aanpak heeft beperkingen. Chatmodellen lezen maximaal ongeveer 4096 tokens per verzoek. Als het volledige gesprek dit maximum overschrijdt, moet je tokens uitknippen van je invoer.