Claude API integreren in je eigen applicatie
Claude API integreren in je eigen applicatie
Dit artikel legt uit hoe je de Claude API van Anthropic in je eigen applicatie integreert, inclusief authenticatie, request handling en error handling. Gericht op developers die werken met Python 3.9+ of Node.js 18+.
Vereisten
- Een Anthropic account met API access. Ga naar [console.anthropic.com](https://console.anthropic.com) om je API key aan te maken. - Python 3.9 of hoger, of Node.js 18 of hoger. - De `anthropic` SDK. Installeer deze met pip of npm. - Basiskennis van REST APIs en JSON.
Stappen
1. Installeer de Anthropic SDK
Voor Python:
pip install anthropic==0.40.0
Voor Node.js:
npm install @anthropic-ai/sdk@0.32.1
De SDK versie is belangrijk. Controleer de [Anthropic changelog](https://github.com/anthropics/anthropic-sdk-python/releases) voor de laatste versie.
2. Zet je API key als environment variable
Sla je API key niet op in code. Gebruik een environment variable.
export ANTHROPIC_API_KEY="sk-ant-..."
Op Windows (PowerShell):
$env:ANTHROPIC_API_KEY="sk-ant-..."
3. Initialiseer de client
Python:
from anthropic import Anthropic</p><p>client = Anthropic()
De client leest automatisch de `ANTHROPIC_API_KEY` environment variable. Je kunt de key ook expliciet meegeven:
client = Anthropic(api_key="sk-ant-...")
Node.js:
const Anthropic = require('@anthropic-ai/sdk');
const client = new Anthropic();4. Maak je eerste API call
Python:
response = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=1024,
messages=[
{"role": "user", "content": "Leg in één zin uit wat een API is."}
]
)</p><p>print(response.content[0].text)Node.js:
async function main() {
const response = await client.messages.create({
model: "claude-3-5-sonnet-20241022",
max_tokens: 1024,
messages: [
{ role: "user", content: "Leg in één zin uit wat een API is." }
]
});
console.log(response.content[0].text);
}</p><p>main();5. Voeg system prompts en parameters toe
Je kunt het gedrag van het model sturen met een `system` prompt en parameters zoals `temperature`.
Python:
response = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=1024,
temperature=0.7,
system="Je bent een behulpzame assistent die altijd in het Nederlands antwoordt.",
messages=[
{"role": "user", "content": "Wat is de hoofdstad van Frankrijk?"}
]
)6. Verwerk streaming responses
Voor lange responses gebruik je streaming. Dit geeft een betere user experience.
Python:
with client.messages.stream(
model="claude-3-5-sonnet-20241022",
max_tokens=1024,
messages=[
{"role": "user", "content": "Schrijf een kort gedicht over de zee."}
]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)7. Implementeer error handling
De SDK gooit exceptions bij fouten. Vang ze af en log ze.
Python:
from anthropic import APIError, APIStatusError, APIConnectionError</p><p>try:
response = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=1024,
messages=[{"role": "user", "content": "Hallo"}]
)
except APIConnectionError as e:
print("Server could not be reached")
print(e.__cause__)
except APIStatusError as e:
print("Status code:", e.status_code)
print("Response:", e.response)
except APIError as e:
print("API error:", e)8. Beheer rate limits
Anthropic hanteert rate limits per account. De SDK retry automatisch bij rate limit errors, maar je kunt het aantal retries configureren.
Python:
from anthropic import Anthropic</p><p>client = Anthropic(
max_retries=3, standaard is 2
timeout=60.0, time-out in seconden
)Verificatie
Controleer of je integratie werkt met een minimale test. De response moet een `content` array bevatten met een `text` veld.
response = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=10,
messages=[{"role": "user", "content": "Zeg 'ok'"}]
)</p><p>assert response.content[0].text == "ok"
print("API integration werkt correct")Je kunt ook de response inspecteren:
print(response.model) claude-3-5-sonnet-20241022
print(response.stop_reason) end_turn
print(response.usage) input_tokens en output_tokensVeelgestelde problemen
1. AuthenticationError: invalid x-api-key
Je API key is onjuist of niet gezet. Controleer of de environment variable correct is:
echo $ANTHROPIC_API_KEY
Als de key leeg is, zet hem opnieuw. Controleer ook of je key nog actief is in de Anthropic console.
2. Model niet gevonden
Je gebruikt een modelnaam die niet bestaat of niet beschikbaar is voor je account. Controleer de beschikbare modellen in de [Anthropic docs](https://docs.anthropic.com/en/docs/about-claude/models). De modelnaam moet exact overeenkomen, inclusief de datum suffix.
3. Rate limit errors (429)
Je overschrijdt het aantal requests per minuut. Verhoog het aantal retries in de client configuratie:
client = Anthropic(max_retries=5)
Overweeg ook om requests te batchen of een queue te implementeren voor productieomgevingen.
De integratie is nu compleet. Je hebt een werkende verbinding met de Claude API, inclusief streaming, error handling en rate limit management. De volgende stap is het bouwen van een robuuste applicatielaag die deze API calls verwerkt — maar die keuzes hangen af van je specifieke use case en architectuur.