Zum Inhalt springen

API-Dokumentation

Nutzen Sie die OpenAI-kompatible API von Seven Assistant, um KI-Funktionen in Ihre eigenen Anwendungen zu integrieren.

OpenAI-kompatibel REST API Streaming

Schnellstart

In 2 Minuten zur ersten API-Anfrage

So funktioniert es

Die Seven Assistant API ist vollständig OpenAI-kompatibel. Das bedeutet: Jedes Tool, jede Bibliothek und jedes SDK, das mit der OpenAI API funktioniert, funktioniert auch mit Seven Assistant, Sie müssen nur die Base URL ändern.

1

API-Schlüssel erstellen

In den Einstellungen unter „API-Schlüssel“

2

Base URL setzen

YOUR_DOMAIN/v1/

3

API aufrufen

Wie bei OpenAI: gleiche Formate

Erste Anfrage mit curl

curl YOUR_DOMAIN/v1/chat/completions \
  -H "Authorization: Bearer sk-educa-YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "educa-ai",
    "messages": [
      {"role": "system", "content": "Du bist ein hilfreicher Assistent."},
      {"role": "user", "content": "Was ist Photosynthese?"}
    ]
  }'

Authentifizierung

API-Schlüssel erstellen und verwenden

API-Schlüssel erstellen

  1. 1Öffnen Sie die Seven Assistant App und gehen Sie zu Einstellungen → API-Schlüssel.
  2. 2Klicken Sie auf „API-Schlüssel erstellen“ und vergeben Sie einen Namen (z.B. „Mein Projekt“).
  3. 3Kopieren Sie den Schlüssel sofort: er wird nur einmal angezeigt.

Schlüssel verwenden

Senden Sie den Schlüssel im Authorization Header:

Authorization: Bearer sk-educa-xxxxxxxxxxxxx

⚠ Sicherheitshinweise

  • •Geben Sie Ihren API-Schlüssel niemals in Client-Code (JavaScript im Browser) ein.
  • •Speichern Sie Schlüssel in Umgebungsvariablen, nicht im Quellcode.
  • •Falls ein Schlüssel kompromittiert wird, widerrufen Sie ihn sofort in den Einstellungen.
  • •Erstellen Sie separate Schlüssel für verschiedene Projekte.

Verfügbare Modelle

Wählen Sie das passende Modell für Ihren Anwendungsfall

Standard

educa-ai

Allzweck-Modell

Bestes Modell für die meisten Anwendungsfälle. Hohe Qualität bei Textgenerierung, Zusammenfassungen, Übersetzungen und Frage-Antwort.

Schnell

educa-ai-mistral

Mistral Small 3.1

Schnelleres, effizientes Modell. Ideal für hohe Durchsatzanforderungen, einfache Aufgaben und Echtzeit-Anwendungen.

Code

educa-ai-code

Qwen3 Coder

Ausgelegt für Programmierung und Code-Generierung. Ideal für Code-Vervollständigung, Debugging und technische Aufgaben.

Modelle per API abrufen

curl YOUR_DOMAIN/v1/models \
  -H "Authorization: Bearer sk-educa-YOUR_API_KEY"

Chat Completions

POST /v1/chat/completions

Request-Format

{
  "model": "educa-ai",
  "messages": [
    {"role": "system", "content": "Du bist ein Lehrer für Biologie."},
    {"role": "user", "content": "Erkläre die Mitose in einfachen Worten."}
  ],
  "temperature": 0.7,
  "max_tokens": 1000,
  "stream": false
}

Parameter

ParameterTypPflichtBeschreibung
modelstring✓ID des Modells (z.B. educa-ai)
messagesarray✓Liste von Nachrichten mit role und content
temperaturenumber–Kreativität (0.0– 2.0, Standard: vom Modell abhängig)
max_tokensinteger–Maximale Anzahl der generierten Tokens
streamboolean–Streaming aktivieren (true/false)
top_pnumber–Nucleus Sampling (0.0– 1.0)

Response-Format

{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "created": 1711900000,
  "model": "educa-ai",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Die Mitose ist der Prozess, bei dem..."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 28,
    "completion_tokens": 156,
    "total_tokens": 184
  }
}

Nachrichten-Rollen

  • systemDefiniert das Verhalten und den Kontext des Assistenten. Wird als erste Nachricht gesendet.
  • userDie Nachricht des Benutzers: Fragen, Anweisungen oder Eingaben.
  • assistantVorherige Antworten des Assistenten. Wird für Konversationsverlauf verwendet.

Streaming

Echtzeit-Antworten über Server-Sent Events (SSE)

So funktioniert Streaming

Setzen Sie "stream": true im Request. Die Antwort wird als Server-Sent Events (SSE) gestreamt, jeder Chunk enthält ein Textfragment. Der Stream endet mit data: [DONE].

curl YOUR_DOMAIN/v1/chat/completions \
  -H "Authorization: Bearer sk-educa-YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -N \
  -d '{
    "model": "educa-ai",
    "messages": [{"role": "user", "content": "Zähle bis 5"}],
    "stream": true
  }'

Stream-Chunks

data: {"id":"chatcmpl-abc","object":"chat.completion.chunk","created":1711900000,"model":"educa-ai","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}

data: {"id":"chatcmpl-abc","object":"chat.completion.chunk","created":1711900000,"model":"educa-ai","choices":[{"index":0,"delta":{"content":"1, "},"finish_reason":null}]}

data: {"id":"chatcmpl-abc","object":"chat.completion.chunk","created":1711900000,"model":"educa-ai","choices":[{"index":0,"delta":{"content":"2, "},"finish_reason":null}]}

data: {"id":"chatcmpl-abc","object":"chat.completion.chunk","created":1711900000,"model":"educa-ai","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}

data: [DONE]

Embeddings

POST /v1/embeddings

Wofür Embeddings?

Embeddings wandeln Text in numerische Vektoren um. Diese Vektoren können für semantische Suche, Clustering, Empfehlungssysteme und Retrieval-Augmented Generation (RAG) verwendet werden.

Beispiel

curl YOUR_DOMAIN/v1/embeddings \
  -H "Authorization: Bearer sk-educa-YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "educa-ai",
    "input": "Photosynthese ist der Prozess, bei dem Pflanzen Licht in Energie umwandeln."
  }'

Response

{
  "object": "list",
  "data": [
    {
      "object": "embedding",
      "embedding": [0.0023, -0.0091, 0.0152, ...],
      "index": 0
    }
  ],
  "model": "educa-ai",
  "usage": {
    "prompt_tokens": 18,
    "total_tokens": 18
  }
}

Code-Beispiele & Integrationen

Fertige Beispiele für Python, JavaScript, und mehr

Python OpenAI SDK
from openai import OpenAI

client = OpenAI(
    api_key="sk-educa-YOUR_API_KEY",
    base_url="YOUR_DOMAIN/v1/"
)

# Chat Completion
response = client.chat.completions.create(
    model="educa-ai",
    messages=[
        {"role": "system", "content": "Du bist ein hilfreicher Lehrer."},
        {"role": "user", "content": "Erstelle 5 Quizfragen zum Thema Mittelalter."}
    ],
    temperature=0.7,
    max_tokens=1000
)

print(response.choices[0].message.content)

# Streaming
stream = client.chat.completions.create(
    model="educa-ai",
    messages=[{"role": "user", "content": "Erkläre Demokratie."}],
    stream=True
)

for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="")

# Embeddings
embedding = client.embeddings.create(
    model="educa-ai",
    input="Photosynthese erklärt für Kinder"
)

print(embedding.data[0].embedding[:5])

Installation: pip install openai

JavaScript Node.js: OpenAI SDK
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "sk-educa-YOUR_API_KEY",
  baseURL: "YOUR_DOMAIN/v1/"
});

// Chat Completion
const response = await client.chat.completions.create({
  model: "educa-ai",
  messages: [
    { role: "system", content: "Du bist ein hilfreicher Lehrer." },
    { role: "user", content: "Was ist der Dreisatz?" }
  ]
});

console.log(response.choices[0].message.content);

// Streaming
const stream = await client.chat.completions.create({
  model: "educa-ai",
  messages: [{ role: "user", content: "Erkläre den Wasserkreislauf." }],
  stream: true
});

for await (const chunk of stream) {
  const content = chunk.choices[0]?.delta?.content;
  if (content) process.stdout.write(content);
}

Installation: npm install openai

TypeScript fetch: ohne SDK
const response = await fetch("YOUR_DOMAIN/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer sk-educa-YOUR_API_KEY",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    model: "educa-ai",
    messages: [
      { role: "user", content: "Erstelle einen Wochenplan für Mathe, 5. Schulstufe." }
    ]
  })
});

const data = await response.json();
console.log(data.choices[0].message.content);
C# .NET: Azure OpenAI SDK
using Azure.AI.OpenAI;
using OpenAI.Chat;
using System.ClientModel;

var client = new ChatClient(
    model: "educa-ai",
    credential: new ApiKeyCredential("sk-educa-YOUR_API_KEY"),
    options: new OpenAIClientOptions
    {
        Endpoint = new Uri("YOUR_DOMAIN/v1/")
    }
);

var response = await client.CompleteChatAsync(
    new ChatMessage[]
    {
        new SystemChatMessage("Du bist ein hilfreicher Lehrer."),
        new UserChatMessage("Was ist eine Parabel in Mathe?")
    }
);

Console.WriteLine(response.Value.Content[0].Text);

NuGet: Azure.AI.OpenAI

Python LangChain
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="educa-ai",
    api_key="sk-educa-YOUR_API_KEY",
    base_url="YOUR_DOMAIN/v1/"
)

response = llm.invoke("Erstelle eine Zusammenfassung der Französischen Revolution.")
print(response.content)

Installation: pip install langchain-openai

IDE Continue.dev (VS Code / JetBrains)

Sie können Seven Assistant als KI-Assistent in Ihrer IDE nutzen. Konfigurieren Sie in der config.json von Continue.dev:

{
  "models": [
    {
      "title": "Seven Assistant",
      "provider": "openai",
      "model": "educa-ai",
      "apiKey": "sk-educa-YOUR_API_KEY",
      "apiBase": "YOUR_DOMAIN/v1/"
    }
  ]
}

Fehlerbehandlung & Limits

HTTP-Statuscodes, Fehlermeldungen und Rate Limits

HTTP-Statuscodes

CodeBedeutung
200Erfolg
400Ungültiger Request (z.B. fehlendes Feld, unbekanntes Modell)
401Fehlender oder ungültiger API-Schlüssel
403API-Zugriff für Ihr Konto nicht verfügbar
429Rate Limit überschritten: warten Sie und versuchen Sie es erneut
500Interner Serverfehler

Fehler-Response-Format

{
  "error": {
    "message": "Model 'unknown-model' is not available.",
    "type": "invalid_request_error",
    "code": "model_not_found"
  }
}

Rate Limits

TarifLimitZeitraum
Pro100 Anfragenpro Tag

Der Token-Verbrauch wird pro API-Schlüssel erfasst und kann in den Einstellungen eingesehen werden.

Rate Limit überschritten?

  • •Implementieren Sie exponentielles Backoff: Warten Sie 1s, 2s, 4s, 8s usw. zwischen Wiederholungsversuchen.
  • •Verwenden Sie Caching für wiederholte Anfragen mit identischem Inhalt.
  • •Nutzen Sie Batching: Fassen Sie mehrere Fragen in einem Prompt zusammen.

Bereit loszulegen?

Erstellen Sie Ihren ersten API-Schlüssel und integrieren Sie Seven Assistant in Ihre Anwendung.

App öffnen