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 REST API in een eigen applicatie integreert met de officiële SDK's, bedoeld voor developers die direct aan de slag willen met Anthropic's modellen.
VEREISTEN
- Python 3.8+ of Node.js 18+ - `anthropic` package versie 0.39.0+ (Python) of `@anthropic-ai/sdk` versie 0.30.0+ (TypeScript) - Een API key uit de [Anthropic Console](https://console.anthropic.com) - Een account met toegang tot de Messages API (versie `2023-06-01` of later)
STAPPEN
1. API key aanmaken en omgeving instellen
Genereer een API key in de Anthropic Console en zet deze als omgevingsvariabele. Gebruik de Workbench om prompts te testen voordat je code schrijft.
```bash export ANTHROPIC_API_KEY="sk-ant-..." ```
2. SDK installeren
Installeer de officiële SDK voor jouw taal.
Python: ```bash pip install anthropic ```
TypeScript: ```bash npm install @anthropic-ai/sdk ```
3. Client initialiseren en model beschikbaarheid controleren
Start de client en check welke modellen beschikbaar zijn via de `GET /v1/models` endpoint.
Python: ```python from anthropic import Anthropic
client = Anthropic() models = client.models.list() for model in models: print(model) ```
TypeScript: ```typescript import Anthropic from '@anthropic-ai/sdk';
const client = new Anthropic(); const models = await client.models.list(); console.log(models.data); ```
Gebruik `claude-3-haiku-20240307` voor kostenefficiënte eerste stappen. Verifieer altijd of de modelnaam nog actueel is.
4. Eerste API call met Messages API
Stuur een bericht met `POST /v1/messages`. Gebruik systeemprompts voor consistente output.
Python: ```python response = client.messages.create( model="claude-3-haiku-20240307", max_tokens=1024, messages=[ {"role": "user", "content": "Vat dit document samen in één alinea: [tekst]"} ] ) print(response.content) ```
TypeScript: ```typescript const response = await client.messages.create({ model: "claude-3-haiku-20240307", max_tokens: 1024, messages: [ { role: "user", content: "Vat dit document samen in één alinea: [tekst]" } ] }); console.log(response.content); ```
5. Token counting implementeren voor kostenbeheer
Bereken vooraf het tokenverbruik met de Token Counting API om rate limits te vermijden.
Python: ```python token_count = client.messages.count_tokens( model="claude-3-haiku-20240307", messages=[{"role": "user", "content": "Jouw prompt hier"}] ) print(token_count.input_tokens) ```
TypeScript: ```typescript const tokenCount = await client.messages.countTokens({ model: "claude-3-haiku-20240307", messages: [{ role: "user", content: "Jouw prompt hier" }] }); console.log(tokenCount.input_tokens); ```
6. Streaming inschakelen voor realtime output
Zet `stream: true` in het request voor responsievere gebruikerservaringen zoals chatbots.
Python: ```python stream = client.messages.create( model="claude-3-haiku-20240307", max_tokens=1024, stream=True, messages=[{"role": "user", "content": "Vertel een kort verhaal."}] ) for event in stream: if event.type == "content_block_delta": print(event.delta.text, end="") ```
TypeScript: ```typescript const stream = await client.messages.create({ model: "claude-3-haiku-20240307", max_tokens: 1024, stream: true, messages: [{ role: "user", content: "Vertel een kort verhaal." }] }); for await (const event of stream) { if (event.type === "content_block_delta") { process.stdout.write(event.delta.text); } } ```
7. Batch verwerking voor grootschalige taken
Gebruik de Message Batches API voor asynchrone verwerking met 50% kostenreductie.
Python: ```python batch = client.messages.batches.create( requests=[ { "custom_id": "request-1", "params": { "model": "claude-3-haiku-20240307", "max_tokens": 1024, "messages": [{"role": "user", "content": "Analyseer document A."}] } }, Voeg meer requests toe ] ) print(batch.id) ```
8. Integratie in microservice architectuur
Plaats de Claude API call in een aparte microservice of integratielaag. Dit isoleert API-storingen van je kernapplicatie.
Python (FastAPI voorbeeld): ```python from fastapi import FastAPI from anthropic import Anthropic
app = FastAPI() client = Anthropic()
@app.post("/summarize") async def summarize(text: str): response = client.messages.create( model="claude-3-haiku-20240307", max_tokens=1024, messages=[{"role": "user", "content": f"Vat samen: {text}"}] ) return {"summary": response.content[0].text} ```
VERIFICATIE
Test de integratie met een minimale call en controleer de response:
```python response = client.messages.create( model="claude-3-haiku-20240307", max_tokens=50, messages=[{"role": "user", "content": "Zeg 'API werkt' in het Nederlands."}] ) print(response.content[0].text) Verwachte output: "API werkt" ```
Controleer of de `anthropic-version` header correct is ingesteld. Gebruik `"2023-06-01"` of de versie uit 2024 die je in de console ziet.
VEELGESTELDE PROBLEMEN
Probleem 1: "Authentication error" - Oorzaak: API key niet correct gezet of verlopen. - Oplossing: Controleer `echo $ANTHROPIC_API_KEY` of vernieuw de key in de console.
Probleem 2: "Model not found" - Oorzaak: Modelnaam is verouderd of niet beschikbaar in jouw regio. - Oplossing: Roteer modellen via `GET /v1/models` en gebruik een actuele naam zoals `claude-3-5-sonnet-20241022`.
Probleem 3: Rate limit exceeded - Oorzaak: Te veel requests in korte tijd. - Oplossing: Implementeer exponential backoff in je retry-logica of gebruik de Token Counting API om je prompts te optimaliseren.
Houd de Anthropic changelog in de gaten voor model-updates — modelnamen veranderen vaker dan je denkt.