Ontwikkel een OpenAI-gebaseerde chatbot voor mijn bedrijf
description
Met deze prompt kan ik een op maat gemaakte chatbot bouwen die naadloos aansluit bij de behoeften van mijn bedrijf. Het voorkomt technische misverstanden door duidelijke specificaties en biedt direct toepasbare integratievoorbeelden, waardoor ontwikkeltijd en fouten afnemen.
prompt
Help me met het ontwerpen en implementeren van een OpenAI-integratie voor een chatbot die mijn bedrijf kan ondersteunen. Gebruik de volgende specificaties:
Doel van de chatbot: <beschrijf het doel van de chatbot>
Belangrijkste functionalite ...
try_prompt
generate_helper
disclaimerOnPageApi
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Natuurlijk! Hier is een gedetailleerd plan voor het ontwerpen en implementeren van een OpenAI-integratie voor jouw klantenservice chatbot, inclusief voorbeeldcode in Node.js met Express.
**1. Planning en Structuur**
- **Doel:** Klantenservice ondersteunen door FAQ te beantwoorden en afspraken te plannen.
- **Functionaliteiten:**
- FAQ beantwoorden: gebruikers kunnen vragen stellen en de chatbot geeft relevante antwoorden.
- Afspraken plannen: gebruikers kunnen een afspraak maken via de chatbot.
- **Technische omgeving:** Node.js + Express.
- **Vereisten:**
- GDPR-compliance: gegevens worden veilig verwerkt, geen opslag zonder toestemming.
- Responstijd: max 2 seconden.
---
**2. Technische stappen**
### a. Setup van de Node.js omgeving
```bash
mkdir klantenservice-chatbot
cd klantenservice-chatbot
npm init -y
npm install express axios dotenv
```
### b. Environment variabelen (`.env`)
Stel je API-sleutel in voor OpenAI:
```
OPENAI_API_KEY=your_openai_api_key
```
### c. Server opzetten (`server.js`)
```js
require('dotenv').config();
const express = require('express');
const axios = require('axios');
const app = express();
app.use(express.json());
const openaiApiKey = process.env.OPENAI_API_KEY;
// Endpoint voor chatberichten
app.post('/chat', async (req, res) => {
const { message } = req.body;
try {
const response = await axios.post(
'https://api.openai.com/v1/chat/completions',
{
model: 'gpt-4', // of 'gpt-3.5-turbo'
messages: [
{ role: 'system', content: 'Je bent een klantenservicemedewerker voor een bedrijf. Beantwoord FAQ en help met afspraken.' },
{ role: 'user', content: message }
],
max_tokens: 150,
temperature: 0.7,
},
{
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${openaiApiKey}`,
},
}
);
const reply = response.data.choices[0].message.content;
res.json({ reply });
} catch (error) {
console.error(error);
res.status(500).json({ error: 'Fout bij het ophalen van antwoord' });
}
});
// Server starten
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`Server draait op port ${PORT}`);
});
```
---
**3. Functionaliteiten uitbreiden**
### a. FAQ beantwoorden
- De prompt in de `messages` kan verder worden aangepast of uitgebreid met FAQ-gegevens.
- Voor betere antwoorden kun je context toevoegen, bijvoorbeeld FAQ-gegevens of kennisbank informatie.
### b. Afspraken plannen
- Detecteer intentie: als gebruiker aangeeft een afspraak te willen plannen, stuur je de gebruiker door naar een formulier of API.
- Voor eenvoudige implementatie, kun je prompt aanpassen om te vragen om afspraken te plannen, of een aparte endpoint maken.
### c. Voorbeeld van gespreksafhandeling met intentieherkenning
```js
// Bijvoorbeeld, detecteer of gebruiker 'afspraak' noemt
const message = req.body.message;
if (message.toLowerCase().includes('afspraak')) {
// Plaats afspraak planning logic hier
res.json({ reply: 'Wil je een afspraak plannen? Klik hier: [link]' });
} else {
// Vraag AI om antwoord
}
```
---
**4. GDPR-compliance**
- Verzamel en verwerk persoonsgegevens volgens GDPR:
- Vraag expliciet toestemming.
- Bewaar geen persoonlijke gegevens zonder toestemming.
- Versleutel data indien nodig.
- Verwerk geen gevoelige data tenzij strikt noodzakelijk en met de juiste maatregelen.
### a. Data minimaliseren
- Verstuur alleen noodzakelijke data naar OpenAI.
- Bewaar geen chatlogs tenzij vereist en met toestemming.
### b. Transparantie
- Informeer gebruikers dat hun data wordt verwerkt door de chatbot.
- Voeg een privacyverklaring toe.
---
**5. Responstijd optimalisatie**
- Gebruik korte prompts.
- Beperk het aantal tokens.
- Cache veelgestelde vragen.
- Zorg voor snelle hosting en minimaliseer latency.
---
**6. Samenvatting**
- Maak een Express API die berichten doorstuurt naar OpenAI.
- Implementeer logica voor FAQ en afspraken.
- Zorg voor GDPR-compatibele dataverwerking.
- Test en optimaliseer voor responstijden.
---
**Voorbeeld API call**
```js
// Frontend of client-side
fetch('/chat', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ message: 'Hoe kan ik een afspraak maken?' }),
})
.then(res => res.json())
.then(data => console.log(data.reply));
```
---
**Heeft u nog specifieke wensen of vragen over verdere implementatie?**
provider: deepseek
model: deepseek-chat
Hier is een gestructureerd implementatieplan met voorbeeldcode voor uw GDPR-compliant OpenAI chatbot:
## Implementatieplan
### 1. Voorbereiding en Afhankelijkheden
```bash
npm install express openai dotenv express-rate-limit
npm install --save-dev @types/express @types/node
```
### 2. GDPR-compliant Configuratie
```javascript
// .env
OPENAI_API_KEY=uw_api_key
SESSION_SECRET=uw_secret_key
DATA_RETENTION_DAYS=30
```
### 3. Main Server Setup
```javascript
// app.js
const express = require('express');
const rateLimit = require('express-rate-limit');
const OpenAI = require('openai');
require('dotenv').config();
const app = express();
const port = process.env.PORT || 3000;
// Rate limiting voor GDPR en performance
const limiter = rateLimit({
windowMs: 15 * 60 * 1000, // 15 minuten
max: 100 // maximaal 100 requests per windowMs
});
app.use(limiter);
app.use(express.json());
// OpenAI client initialisatie
const openai = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
});
// GDPR: Data anonymisatie middleware
app.use((req, res, next) => {
// Anonimiseer IP-adressen
req.ip = req.ip ? req.ip.replace(/(\d+\.\d+)\.\d+\.\d+/, '$1.0.0') : 'anonymous';
next();
});
```
### 4. GDPR-compliant Chat Endpoint
```javascript
// routes/chat.js
const express = require('express');
const router = express.Router();
router.post('/chat', async (req, res) => {
try {
const { message, sessionId } = req.body;
// GDPR: Data validatie en sanitization
const sanitizedMessage = message.substring(0, 500); // Beperk input length
const completion = await openai.chat.completions.create({
model: "gpt-3.5-turbo",
messages: [
{
role: "system",
content: `Je bent een klantenservice chatbot. Functionaliteiten:
1. Beantwoord FAQ vragen over onze producten
2. Help met afspraken plannen
3. Wees beknopt en vriendelijk
4. Verwijs door naar menselijke agent bij complexe vragen
GDPR Richtlijnen:
- Vraag nooit om persoonlijke gegevens
- Sla geen gesprekken op
- Anonimiseer alle data`
},
{
role: "user",
content: sanitizedMessage
}
],
max_tokens: 150,
temperature: 0.7,
timeout: 1900 // Timeout onder 2 seconden
});
const response = completion.choices[0]?.message?.content || 'Sorry, ik begrijp het niet.';
// GDPR: Geen persistentie van gespreksdata
res.json({
response: response,
timestamp: new Date().toISOString(),
sessionId: sessionId // Alleen session ID, geen inhoud
});
} catch (error) {
console.error('Chat error:', error);
res.status(500).json({
error: 'Sorry, er is een fout opgetreden',
gdprCompliant: true
});
}
});
```
### 5. Afspraken Planner Service
```javascript
// services/appointmentService.js
class AppointmentService {
static async handleAppointmentRequest(userMessage) {
// Simpele intent detection voor GDPR-compliance
const intent = this.detectAppointmentIntent(userMessage);
if (intent) {
return "Voor afspraken kunt u bellen naar 0900-1234 of mailen naar afspraak@bedrijf.nl. " +
"We verwerken geen afspraakgegevens via deze chatbot i.v.m. privacy.";
}
return null;
}
static detectAppointmentIntent(message) {
const keywords = ['afspraak', 'plannen', 'plan', 'agenda', 'beschikbaar'];
return keywords.some(keyword =>
message.toLowerCase().includes(keyword)
);
}
}
```
### 6. Main Application
```javascript
// server.js
const express = require('express');
const chatRoutes = require('./routes/chat');
const AppointmentService = require('./services/appointmentService');
const app = express();
app.use('/api', chatRoutes);
// Health check endpoint
app.get('/health', (req, res) => {
res.json({
status: 'OK',
gdprCompliant: true,
maxResponseTime: '2s'
});
});
app.listen(3000, () => {
console.log('Chatbot server running on port 3000');
});
```
### 7. GDPR-compliant Logging
```javascript
// middleware/gdprLogging.js
const gdprLogger = (req, res, next) => {
const originalSend = res.send;
res.send = function(body) {
// Log alleen metadata, geen persoonlijke data
console.log(JSON.stringify({
timestamp: new Date().toISOString(),
endpoint: req.path,
statusCode: res.statusCode,
responseTime: Date.now() - req.startTime,
anonymizedIp: req.ip
}));
originalSend.call(this, body);
};
req.startTime = Date.now();
next();
};
module.exports = gdprLogger;
```
## Beveiligingsmaatregelen
1. **Data Minimalisatie**: Alleen essentiële data verwerken
2. **Anonimisatie**: IP-adressen en identifiers anonimiseren
3. **Geen Persistentie**: Geen chatgeschiedenis opslaan
4. **Input Validatie**: Beperk input length en sanitize data
5. **Rate Limiting**: Preventie van misbruik
## Test Procedure
```javascript
// test-chat.js
const testMessages = [
"Hoe kan ik mijn product retourneren?",
"Ik wil een afspraak maken",
"Wat zijn jullie openingstijden?"
];
// Test response times en GDPR compliance
```
Dit plan garandeert:
- ✅ GDPR-compliance door design
- ✅ Response times < 2 seconden
- ✅ Schaalbare Node.js/Express architectuur
- ✅ Beveiligde dataverwerking
- ✅ Duidelijke functional boundaries
Implementeer eerst in testomgeving en voer uitgebreide GDPR-audit uit voor productiegebruik.