claude api integreren in je eigen applicatie
Claude Api Integreren In Je Eigen Applicatie
Claude API integreren in je eigen applicatie
Dit artikel beschrijft hoe je de Claude API van Anthropic koppelt aan je eigen applicatie, inclusief authenticatie, requeststructuur en best practices.
Vereisten
- Een account in de Anthropic Console (console.anthropic.com) - Minimaal $5 tegoed op je account (nieuwe accounts krijgen initieel tegoed na telefoonverificatie) - Een API-sleutel, gegenereerd via Account Settings in de Console - Programmeertaal met HTTP-ondersteuning (Python 3.8+, Node.js 18+ aanbevolen) - Officiële Anthropic SDK voor je taal (versie 0.49.0 of hoger)
Stappen
1. Genereer een API-sleutel en sla deze veilig op
Ga naar Account Settings > API Keys in de Anthropic Console en genereer een nieuwe sleutel. Sla deze op in een omgevingsvariabele, niet in broncode:
```bash export ANTHROPIC_API_KEY="sk-ant-..." ```
2. Installeer de officiële Anthropic SDK
```bash Python pip install anthropic==0.49.0
Node.js npm install @anthropic-ai/sdk@0.32.0 ```
3. Test je API-sleutel in de Workbench (aanbevolen)
Voordat je code schrijft, test je een request in de Workbench van de Console. Dit bespaart tijd bij het debuggen van prompts. Voer een simpele test uit met model `claude-3-5-sonnet-20241022`.
4. Maak een eerste API-call via de Messages API
Het primaire endpoint is `POST https://api.anthropic.com/v1/messages`. Gebruik de SDK voor automatische authenticatie en request-opmaak:
```python import anthropic
client = anthropic.Anthropic() response = client.messages.create( model="claude-3-5-sonnet-20241022", max_tokens=1024, messages=[ {"role": "user", "content": "Wat is de hoofdstad van Frankrijk?"} ] ) print(response.content[0].text) ```
5. Bouw prompt- en requestlogica
De kwaliteit van Claude’s output hangt af van je prompt. Structureer instructies helder en specifiek. Voeg system prompts toe via de `system` parameter:
```python response = client.messages.create( model="claude-3-5-sonnet-20241022", system="Je bent een behulpzame assistent die alleen feitelijke antwoorden geeft.", messages=[{"role": "user", "content": "Wat is de snelste manier naar Amsterdam?"}] ) ```
6. Voeg token counting toe voor kostenbeheer
Gebruik de Token Counting API om vooraf te berekenen hoeveel tokens een prompt verbruikt:
```python token_count = client.beta.messages.count_tokens( model="claude-3-5-sonnet-20241022", messages=[{"role": "user", "content": "Voorspel het weer voor morgen."}] ) print(token_count.input_tokens) ```
7. Implementeer batchverwerking voor grote hoeveelheden requests (optioneel)
Voor 50% lagere kosten per request gebruik je de Message Batches API. Dit werkt asynchroon:
```python batch = client.beta.messages.batches.create( requests=[ { "custom_id": "request-1", "params": { "model": "claude-3-5-sonnet-20241022", "messages": [{"role": "user", "content": "Vertel een mop."}] } } ] ) ```
8. Verwijder verouderde headers en parameters (Claude 4+)
Als je migreert van oudere versies, verwijder dan beta-headers zoals `token-efficient-tools-2025-02-19` en `output-128k-2025-02-19`. Parameters `temperature`, `top_p` en `top_k` kunnen foutcodes geven bij niet-standaard waarden in nieuwe modellen.
Verificatie
Controleer of je API-call werkt met dit commando (curl):
```bash curl -X POST https://api.anthropic.com/v1/messages \ -H "x-api-key: $ANTHROPIC_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -H "content-type: application/json" \ -d '{ "model": "claude-3-5-sonnet-20241022", "max_tokens": 100, "messages": [{"role": "user", "content": "Zeg hallo"}] }' ```
Een succesvolle response bevat een `content` array met de AI-response.
Veelgestelde problemen
Probleem 1: 401 Unauthorized error Oorzaak: API-sleutel is ongeldig of mist. Oplossing: Controleer of `ANTHROPIC_API_KEY` correct is ingesteld en of de sleutel nog actief is in de Console.
Probleem 2: 429 Too Many Requests Oorzaak: Je overschrijdt de rate limits. Oplossing: Implementeer retry-logica met exponentiële backoff. De SDK heeft ingebouwde retry-mechanismes die je kunt configureren.
Probleem 3: Model niet gevonden Oorzaak: Je gebruikt een verouderde modelnaam. Oplossing: Controleer de beschikbare modellen met de Models API (`GET /v1/models`) of raadpleeg de actuele documentatie.