# Structuur

Een *advanced code response* wordt geschreven in Python, meerbepaald Python 3. Het is dus een Python-klasse die altijd overerft van een abstracte klasse `Response`. De bedoeling is dat de abstracte methode `getResponse` geïmplementeerd wordt door de ontwikkelaar. Standaard ziet zo een klasse er zo uit:

```python
# -*- coding: utf-8 -*-
from responses.responsemessage import ResponseMessage
from responses.responsedata import ResponseData
from responses.responsetype import ResponseType
from responses.response import Response
from responses.quickreply import Quickreply


class Response(Response):

  def getResponse(self, sentence, context, options={}):
      # TODO: implement response
      return ResponseMessage(
          data=[
              ResponseData(
                  message="Sorry dat heb ik (nog) niet begrepen.",
                  type=ResponseType.text
              )
          ]
      )
```

We starten met enkele `import` statements:

* `ResponseMessage`: het object dat teruggestuurd wordt naar de gebruiker
* `ResponseData`: een element in de volledige `ResponseMessage`, bijvoorbeeld een tekstballon of een afbeelding
* `ResponseType`: een `enum` die het type van een `ResponseData`-object uitdrukt
* `Response`: de superklasse van de nieuwe klasse
* `Quickreply`: een snel antwoord, dat als een knop aan de gebruiker getoond wordt

Verder definiëren we de klasse zelf:

`class Response(Response):`

**Hier is het de bedoeling dat de naam van de klasse aangepast wordt naar een andere, beschrijvende naam voor deze klasse!**

Daarna definiëren we de methode die overridden **moet** worden van de superklasse:

`def getResponse(self, sentence, context, options={}):`

Je mag deze methode implementeren zoals je wil, zolang hij maar een `ResponseMessage`-object teruggeeft. Verder ben je vrij om nog andere methodes te implementeren in deze klasse.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://oswaldai.gitbook.io/docs/advanced-code-responses/structuur.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
