DR.INFO API Documentation - Medical AI Integration Guide
Aan de slag
Vereisten: U heeft een API-sleutel nodig om te beginnen. Neem contact op met ons team via drinfo.ai/contact om toegang aan te vragen.
Snel starten
Installatie
# Python
pip install drinfo
# JavaScript/Node.js
npm install drinfo-sdkAuthenticatie
De DR. INFO API maakt gebruik van Bearer-tokenauthenticatie. Voeg uw API-sleutel toe in de Authorization-header van elk verzoek.
Authenticatieheader
Authorization: Bearer YOUR_API_KEYVoorbeeldverzoek
import requests
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}
response = requests.post(
"https://api.drinfo.ai/v1/chat",
headers=headers,
json={"message": "What is hypertension?"}
)Beveiligingsmelding: Stel uw API-sleutel nooit bloot in client-side code of openbare repositories. Gebruik omgevingsvariabelen of beveiligde sleutelbeheersystemen.
API Endpoints
/api/chatVerstuur een chatbericht en ontvang een standaardantwoord met AI-gestuurde medische informatie.
Verzoekinhoud:
{
"message": "string",
"conversationId": "string (optional)",
"model": "string (optional)",
"temperature": 0.7,
"maxTokens": 1000
}Antwoord:
{
"response": "string",
"citations": [
{
"source": "string",
"url": "string",
"relevance": "number"
}
],
"conversationId": "string",
"model": "string"
}/api/chat/streamVerstuur een chatbericht en ontvang een streamingantwoord voor real-time interactie.
Verzoekinhoud:
{
"message": "string",
"conversationId": "string (optional)",
"model": "string (optional)",
"temperature": 0.7
}Antwoord:
Server-Sent Events (SSE) stream met chunks:
data: {"content": "string", "type": "text"}
data: {"source": "string", "url": "string", "type": "citation"}
data: {"type": "end"}/api/generate-keyGenereer nieuwe API-sleutels met aangepaste machtigingen en vervaldatums.
Verzoekinhoud:
{
"name": "string",
"permissions": ["read", "write"],
"expiresAt": "2024-12-31T23:59:59Z (optional)"
}Antwoord:
{
"apiKey": "string",
"keyId": "string",
"name": "string",
"createdAt": "2024-01-01T00:00:00Z"
}/api/conversations/:conversationIdHaal de gespreksgeschiedenis en context op voor een specifiek gesprek.
Antwoord:
{
"conversationId": "string",
"messages": [
{
"role": "user" | "assistant",
"content": "string",
"timestamp": "2024-01-01T00:00:00Z"
}
],
"createdAt": "2024-01-01T00:00:00Z",
"updatedAt": "2024-01-01T00:00:00Z"
}Codevoorbeelden
Python Voorbeeld
import requests
import json
API_KEY = "your-api-key-here"
BASE_URL = "https://api.drinfo.ai/v1"
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
# Standard request
response = requests.post(
f"{BASE_URL}/chat",
headers=headers,
json={
"message": "What are the symptoms of diabetes?",
"conversationId": "conv_123"
}
)
result = response.json()
print(result['response'])
print("Citations:", result['citations'])JavaScript Voorbeeld
const API_KEY = 'your-api-key-here';
const BASE_URL = 'https://api.drinfo.ai/v1';
// Standard request
async function askQuestion(message) {
const response = await fetch(`${BASE_URL}/chat`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
message: message,
conversationId: 'conv_123'
})
});
const data = await response.json();
console.log(data.response);
}
askQuestion('What is hypertension?');React Integratie
Integreer de DR. INFO API naadloos in uw React-applicaties met deze voorbeelden en best practices.
Basis React Hook
import { useState } from 'react';
const useDrInfoChat = () => {
const [response, setResponse] = useState('');
const [loading, setLoading] = useState(false);
const [error, setError] = useState(null);
const sendMessage = async (message, conversationId) => {
setLoading(true);
setError(null);
try {
const res = await fetch('/api/chat', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.NEXT_PUBLIC_API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({ message, conversationId })
});
if (!res.ok) throw new Error('API request failed');
const data = await res.json();
setResponse(data.response);
return data;
} catch (err) {
setError(err.message);
throw err;
} finally {
setLoading(false);
}
};
return { response, loading, error, sendMessage };
};
export default useDrInfoChat;Chatcomponentvoorbeeld
import { useState } from 'react';
import useDrInfoChat from './hooks/useDrInfoChat';
export default function ChatInterface() {
const [input, setInput] = useState('');
const [conversationId] = useState('conv_' + Date.now());
const { response, loading, error, sendMessage } = useDrInfoChat();
const handleSubmit = async (e) => {
e.preventDefault();
if (!input.trim()) return;
try {
await sendMessage(input, conversationId);
setInput('');
} catch (err) {
console.error('Failed to send message:', err);
}
};
return (
<div className="chat-container">
<div className="messages">
{response && (
<div className="message assistant">
{response}
</div>
)}
</div>
<form onSubmit={handleSubmit}>
<input
type="text"
value={input}
onChange={(e) => setInput(e.target.value)}
placeholder="Ask a medical question..."
disabled={loading}
/>
<button type="submit" disabled={loading}>
{loading ? 'Sending...' : 'Send'}
</button>
</form>
{error && <div className="error">{error}</div>}
</div>
);
}Foutafhandeling
De API maakt gebruik van standaard HTTP-statuscodes en retourneert gedetailleerde foutmeldingen in JSON-formaat.
Statuscodes
Foutantwoordformaat
{
"error": {
"code": "string",
"message": "string",
"details": "string (optional)"
}
}Voorbeeld foutafhandeling
try:
response = requests.post(
f"{BASE_URL}/chat",
headers=headers,
json={"message": query}
)
response.raise_for_status()
data = response.json()
except requests.exceptions.HTTPError as e:
if e.response.status_code == 401:
print("Authentication failed. Check your API key.")
elif e.response.status_code == 429:
print("Rate limit exceeded. Please wait.")
else:
error_data = e.response.json()
print(f"Error: {error_data['error']['message']}")Limieten
Limieten worden per API-sleutel toegepast om eerlijk gebruik en systeemstabiliteit te waarborgen.
Standaardlimieten
| Niveau | Verz./min. | Verz./mnd. |
|---|---|---|
| Gratis niveau | 10 | 100 |
| Pay As You Go | 500 | Onbeperkt |
Limietheaders
Elk API-antwoord bevat headers met limietinformatie:
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 45
X-RateLimit-Reset: 1640995200Hogere limieten nodig? Neem contact met ons op om enterprise-abonnementen met aangepaste limieten en toegewijde ondersteuning te bespreken.
Prijzen
DR. INFO biedt flexibele prijsplannen die geschikt zijn voor organisaties van alle groottes, van startups tot grote zorginstellingen.
Gratis niveau
- 100 API-aanroepen/maand
- Basisondersteuning
- Toegang tot community
- Standaardmodellen
Pay As You Go
- Geen maandelijkse verplichting
- Betaal alleen voor wat u gebruikt
- Prioriteitsondersteuning
- Geavanceerde modellen
Tokenfacturering
Alle abonnementen gebruiken tokenfacturering voor voorspelbare kosten. De prijs is gebaseerd op het aantal tokens dat in uw verzoeken en antwoorden wordt verwerkt. Neem contact met ons op voor gedetailleerde tokenprijzen en volumekortingen.
Veelgestelde vragen
Ja, u kunt uw abonnement op elk moment wijzigen. Wijzigingen gaan onmiddellijk in en wij verrekenen het verschil naar rato.
Verzoeken worden beperkt zodra u uw maandelijkse quotum bereikt. U kunt uw abonnement upgraden of extra capaciteit aanschaffen.
Ja, wij bieden speciale prijzen voor gekwalificeerde non-profitorganisaties en onderwijsinstellingen. Neem contact op met ons verkoopteam voor meer informatie.
Hulp nodig?
Ons team staat klaar om u te ondersteunen bij uw integratie. Neem contact met ons op voor API-toegang, technische vragen of enterprise-oplossingen.