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

01
SDK installierenVerfügbar für Python und JavaScript
02
API-Schlüssel konfigurierenAuthentifizierungs-Header einrichten
03
Erste Anfrage sendenMedizinische Informationen abfragen
04
Antworten verarbeitenStreaming- oder Standardantworten verarbeiten

Installation

installation.sh
# Python
pip install drinfo

# JavaScript/Node.js
npm install drinfo-sdk

Authentifizierung

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_KEY

Beispielanfrage

auth_example.py
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

POST/api/chat

Anfrage 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"
}
POST/api/chat/stream

Anfrage 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"}
POST/api/generate-key

Neue 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"
}
GET/api/conversations/:conversationId

Gesprä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

example.py
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

example.js
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

useDrInfoChat.js
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)

ChatInterface.jsx
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

200
OKAnfrage erfolgreich
400
Bad RequestUngültige Anfrageparameter
401
UnauthorizedUngültiger oder fehlender API-Schlüssel
429
Too Many RequestsRatenlimit überschritten
500
Internal Server ErrorServerfehler

Format der Fehlerantwort

{
  "error": {
    "code": "string",
    "message": "string",
    "details": "string (optional)"
  }
}

Beispiel zur Fehlerbehandlung

error_handling.py
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

StufeAnf./Min.Anf./Mon.
Kostenlose Stufe10100
Pay As You Go500Unbegrenzt

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: 1640995200

Hö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

€0/Monat
  • 100 API-Aufrufe/Monat
  • Basis-Support
  • Community-Zugang
  • Standardmodelle
BELIEBT

Pay As You Go

€0,02/Anfrage
  • Keine monatliche Mindestlaufzeit
  • Zahlen Sie nur, was Sie nutzen
  • Prioritäts-Support
  • Erweiterte Modelle
Jetzt starten

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.