AI Flashcards

1
Q

Hvad er en API(Application Programming Interface) , og hvorfor bruger vi den i projektet?

A

en måde at kommunikere med et andet system over internettet. I projektet bruger vi API’er til at få AI-svar fra fx OpenAI.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Hvad er WebClient, og hvordan bruges den?

A

bruges til at sende HTTP-kald til eksterne API’er. Det er en moderne måde at hente data fra fx OpenAI eller andre AI-tjenester.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Hvad er Mono, og hvad gør .block() i WebClient?

A

Mono repræsenterer et fremtidigt svar (asynkront). .block() venter på svaret og gør det synkront – dvs. programmet stopper og venter, til svaret er klar

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Hvad er en DTO (Data Transfer Object)?

A

en Java-klasse, som matcher den data, vi modtager fra en API eller selv sender ud. Det gør det nemt at arbejde med JSON-data i Java.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Hvad betyder caching, og hvordan bruges det i projektet?

A

Caching betyder at gemme et svar (fx fra OpenAI) i databasen. Hvis samme spørgsmål stilles igen, hentes svaret hurtigt og gratis fra databasen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Hvad er et endpoint i Spring Boot?

A

Et endpoint er en URL, som din backend tilbyder, fx /chat?message=hej. Det laves med @RestController og @GetMapping i Java.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Hvad er @GetMapping og @RequestParam?

A
  • @GetMapping definerer et endpoint, som kan kaldes med GET.
  • @RequestParam bruges til at hente en værdi fra URL’en, fx navnet i /chat?name=kim.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Hvorfor bruger vi POST til at kalde OpenAI?

A

Fordi vi sender en besked (prompt) med indhold – og det gøres normalt med POST, da det er mere sikkert og fleksibelt end GET.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Hvordan ser et simpelt API-kald med WebClient ud?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Hvad er forskellen på retrieve() og exchange() i WebClient?

A
  • retrieve() er den nemme måde, hvor du bare henter svaret.
  • exchange() giver dig mere kontrol over statuskode og headers.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Hvad er en JSON, og hvorfor bruger vi det?

A

en måde at strukturere data på. Det er det format, vi sender og modtager fra API’er som OpenA

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Hvad betyder asynkron kode?

A

Det betyder, at programmet ikke venter på et svar, men kører videre. Svaret håndteres senere – godt hvis du kalder mange API’er.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Hvordan kan vi kalde flere API’er parallelt?

A

Vi kan bruge Mono.zip(…) til at samle flere Mono objekter, så vi kan vente på, at de alle er færdige på én gang – det er hurtigere.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Hvad gør @CrossOrigin i et Spring Boot-projekt?

A

tillader, at din backend kan modtage kald fra en frontend, der kører på en anden adresse (domæne/port). Det løser problemer med CORS (Cross-Origin Resource Sharing).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Hvad er WebClient.Builder, og hvorfor bruger man det?

A

bruges til at oprette en WebClient med en fast base-URL og evt. fælles headers. Det gør din kode nemmere at genbruge

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Hvad gør @Configuration i Spring Boot?

A

markerer en klasse, som definerer konfiguration – fx WebClient, databaseforbindelser eller beans, som Spring skal styre.

17
Q

Hvad er forskellen på Mono<T> og Flux<T>?</T></T>

A
  • Mono<T> = én ting kommer tilbage (fx ét svar eller én liste).</T>
  • Flux<T> = mange ting kommer tilbage (som en strøm af elementer).</T>