Hoe kan ik gemini aanroepen via een logic app?
👋 Introductie: Waarom ik deze blog schrijf
De afgelopen weken kreeg ik steeds vaker de vraag: “Hoe roep je nou eigenlijk Gemini AI aan vanuit een Logic App in Azure?” Zelf liep ik ook tegen deze uitdaging aan toen ik bezig was met een automatiseringsproject.
Dus ik dacht: ik documenteer gewoon mijn hele proces. Geen moeilijke woorden, maar een helder stappenplan dat iedereen kan volgen. Of je nou developer bent of een slimme no-code hobbyist.
Klaar om jouw Logic App te verbinden met de kracht van Gemini AI? Let’s go!
✅ Wat heb je nodig?
Voordat we echt gaan starten, zorg even dat je dit klaar hebt staan:
Een Azure-account
Een Logic App (of de wil om er eentje te maken)
Toegang tot de Gemini API (bijvoorbeeld via Google Cloud of API Gateway)
API Key van Gemini
Een kop koffie (optioneel, maar sterk aanbevolen 😉)
🚀 Stap 1: Haal je Gemini API Key op
Zonder API Key kom je nergens. Ga naar de Google Cloud Console:
Navigeer naar APIs & Services > Credentials.
Maak een nieuwe API-sleutel aan.
Noteer deze sleutel (bewaar ‘m veilig!).
🚦 Stap 2: Bouw je Logic App flow
Log in bij Azure en:
Ga naar Logic Apps
Klik op + Create Logic App.
Kies of je een Consumption (per actie betalen) of Standard App wilt.
Klik op Review + Create.
⚙️ Stap 3: Voeg een trigger toe
Dit is de actie die je Logic App start, zoals:
“Als er een nieuwe e-mail binnenkomt”
“Als een HTTP-request binnenkomt”
Voor deze blog gebruik ik:
When an HTTP request is received (super handig voor testen).
Azure maakt automatisch een endpoint URL aan.
🧑💻 Stap 4: Configureer de HTTP Request om Gemini aan te roepen
Nu komt de magie! Voeg een nieuwe stap toe:
Zoek naar HTTP in de acties.
Kies HTTP.
Stel deze velden in:
Method: POST
URI: Gemini API Endpoint
(bijv.:
https://generativelanguage.googleapis.com/v1/models/gemini-1.5-pro:generateContent
)
Ik zelf vind het fijn om de key in een losse compose te zetten. Zodat je duidelijk weet waar die staat mocht je het willen verwisselen.
{
"contents": [
{
"parts": [
{
"text": "Schrijf een samenvatting van het volgende artikel: ..."
}
]
}
]
}
Wat ik zelf fijn vind is om vervolgens json terug te vragen. Dit kan je gebruiken om vervolgens te parsen. En met dat parsen krijg je altijd alles in dezelfde structuur terug.
{
"contents": [
{
"parts": [
{
"text": "Beantwoord de volgende vraag en geef altijd antwoord in dit JSON-format:\n\n{\n \"vraag\": \"<de vraag>\",\n \"antwoord\": \"<het antwoord in een korte tekst>\"\n}\n\nMijn vraag: Wat is de hoofdstad van Frankrijk?"
}
]
}
]
}
Vervolgens zal je dit als resultaat terugkrijgen:
{
"vraag": "Wat is de hoofdstad van Frankrijk?",
"antwoord": "De hoofdstad van Frankrijk is Parijs."
}
Maar om dit terug te krijgen moet je eerst de response uit je output krijgen van je gemini vraag.
Of te wel zorg dat je dit kan doen doormiddel van het volgende schema:
{
"type": "object",
"properties": {
"candidates": {
"type": "array",
"items": {
"type": "object",
"properties": {
"content": {
"type": "object",
"properties": {
"parts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"text": {
"type": "string"
}
},
"required": [
"text"
]
}
}
},
"required": [
"parts"
]
}
},
"required": [
"content"
]
}
}
}
}
Hieruit moet je een compose gebruiken:
@{body('Parse_JSON')?['candidates']?[0]?['content']?['parts']?[0]?['text']
}
En dan weer opnieuw een parse json:
@{substring(
outputs('Compose'),
indexOf(outputs('Compose'), '{'),
add(
sub(
lastIndexOf(outputs('Compose'), '}'),
indexOf(outputs('Compose'), '{')
),
1
)
)}
En vul eronder je schema in. Zodat je de velden los kan gaan gebruiken. Op basis van dit schema wordt het dan:
{
"type": "object",
"properties": {
"vraag": {
"type": "string"
},
"antwoord": {
"type": "string"
}
}
}
🪄 Stap 5: Test je Logic App
Klik op Run Trigger of stuur een HTTP-verzoek naar het endpoint dat je in stap 3 hebt gekregen. Voor het testen gebruik ik altijd Reqbin. Ga naar https://reqbin.com/ Deze website laat je automatisch http request doen. Zorg wel voor het testen dat je credentials meegeeft of het eindpunt openbaar houdt.
Als alles goed is ingesteld, krijg je binnen enkele seconden een antwoord van Gemini met de gegenereerde content.
🎯 Extra Tip: Responses opslaan of verder verwerken
Je kunt de AI-output meteen doorsturen naar bijvoorbeeld:
Een e-mail naar jezelf of je team.
Opslag in een database (zoals Cosmos DB).
Een Slack- of Teams-bericht.