DR.INFO API Documentation - Medical AI Integration Guide
Erste Schritte
Voraussetzungen: Sie benötigen einen API-Schlüssel. Kontaktieren Sie unser Team unter drinfo.ai/contact um Zugang anzufordern.
Schnellstart
Installation
# Python
pip install drinfo
# JavaScript/Node.js
npm install drinfo-sdkAuthentifizierung
Die DR. INFO API verwendet Bearer-Token-Authentifizierung. Fügen Sie Ihren API-Schlüssel im Authorization-Header jeder Anfrage ein.
Authentifizierungs-Header
Authorization: Bearer YOUR_API_KEYBeispielanfrage
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?"}
)Sicherheitshinweis: Hinterlegen Sie Ihren API-Schlüssel niemals in clientseitigem Code oder öffentlichen Repositories. Verwenden Sie Umgebungsvariablen oder ein sicheres Schlüsselverwaltungssystem.
API-Endpunkte
/api/chatAnfrage senden und eine strukturierte Antwort mit KI-gestützten medizinischen Informationen erhalten.
Anfragekörper:
{
"message": "string",
"conversationId": "string (optional)",
"model": "string (optional)",
"temperature": 0.7,
"maxTokens": 1000
}Antwort:
{
"response": "string",
"citations": [
{
"source": "string",
"url": "string",
"relevance": "number"
}
],
"conversationId": "string",
"model": "string"
}/api/chat/streamAnfrage senden und eine Streaming-Antwort für Echtzeit-Interaktion erhalten.
Anfragekörper:
{
"message": "string",
"conversationId": "string (optional)",
"model": "string (optional)",
"temperature": 0.7
}Antwort:
Server-Sent Events (SSE)-Stream mit Datenpaketen:
data: {"content": "string", "type": "text"}
data: {"source": "string", "url": "string", "type": "citation"}
data: {"type": "end"}/api/generate-keyNeue API-Schlüssel mit benutzerdefinierten Berechtigungen und Ablaufdaten generieren.
Anfragekörper:
{
"name": "string",
"permissions": ["read", "write"],
"expiresAt": "2024-12-31T23:59:59Z (optional)"
}Antwort:
{
"apiKey": "string",
"keyId": "string",
"name": "string",
"createdAt": "2024-01-01T00:00:00Z"
}/api/conversations/:conversationIdGesprächsverlauf und Kontext für eine bestimmte Konversation abrufen.
Antwort:
{
"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"
}Codebeispiele
Python-Beispiel
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-Beispiel
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-Integration
Integrieren Sie die DR. INFO API nahtlos in Ihre React-Anwendungen – mit Beispielen und Best Practices.
Einfacher 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;Chat-Komponente (Beispiel)
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>
);
}Fehlerbehandlung
Die API verwendet standardmäßige HTTP-Statuscodes und gibt detaillierte Fehlermeldungen im JSON-Format zurück.
Statuscodes
Format der Fehlerantwort
{
"error": {
"code": "string",
"message": "string",
"details": "string (optional)"
}
}Beispiel zur Fehlerbehandlung
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']}")Ratenlimits
Ratenlimits werden pro API-Schlüssel angewendet, um eine faire Nutzung und Systemstabilität sicherzustellen.
Standardlimits
| Stufe | Anf./Min. | Anf./Mon. |
|---|---|---|
| Kostenlose Stufe | 10 | 100 |
| Pay As You Go | 500 | Unbegrenzt |
Ratenlimit-Header
Jede API-Antwort enthält Header mit Informationen zu den aktuellen Ratenlimits:
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 45
X-RateLimit-Reset: 1640995200Höhere Limits benötigt? Kontaktieren Sie uns für Enterprise-Pläne mit individuellen Ratenlimits und dediziertem Support.
Preise
DR. INFO bietet flexible Preismodelle – für Start-ups ebenso wie für große Gesundheitsorganisationen.
Kostenlose Stufe
- 100 API-Aufrufe/Monat
- Basis-Support
- Community-Zugang
- Standardmodelle
Pay As You Go
- Keine monatliche Mindestlaufzeit
- Zahlen Sie nur, was Sie nutzen
- Prioritäts-Support
- Erweiterte Modelle
Token-basierte Abrechnung
Alle Pläne verwenden eine token-basierte Abrechnung für planbare Kosten. Die Preisgestaltung richtet sich nach der Anzahl der verarbeiteten Tokens in Anfragen und Antworten. Kontaktieren Sie uns für detaillierte Token-Preise und Mengenrabatte.
Häufige Fragen
Ja, Sie können Ihren Plan jederzeit anpassen. Änderungen treten sofort in Kraft; anfallende Differenzbeträge werden anteilig berechnet.
Sobald Sie Ihr monatliches Kontingent erreichen, werden Anfragen gedrosselt. Sie können Ihren Plan upgraden oder zusätzliche Kapazität hinzubuchen.
Ja, wir bieten Sonderpreise für qualifizierte gemeinnützige Organisationen und Bildungseinrichtungen. Kontaktieren Sie unser Vertriebsteam für weitere Informationen.
Haben Sie Fragen?
Unser Team unterstützt Sie bei der Integration. Kontaktieren Sie uns für API-Zugang, technische Fragen oder Enterprise-Lösungen.