API-Dokumentation
Nutzen Sie die OpenAI-kompatible API von Seven Assistant, um KI-Funktionen in Ihre eigenen Anwendungen zu integrieren.
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.
API-Schlüssel erstellen
In den Einstellungen unter „API-Schlüssel“
Base URL setzen
YOUR_DOMAIN/v1/
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Öffnen Sie die Seven Assistant App und gehen Sie zu Einstellungen → API-Schlüssel.
- 2Klicken Sie auf „API-Schlüssel erstellen“ und vergeben Sie einen Namen (z.B. „Mein Projekt“).
- 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
educa-ai
Allzweck-Modell
Bestes Modell für die meisten Anwendungsfälle. Hohe Qualität bei Textgenerierung, Zusammenfassungen, Übersetzungen und Frage-Antwort.
educa-ai-mistral
Mistral Small 3.1
Schnelleres, effizientes Modell. Ideal für hohe Durchsatzanforderungen, einfache Aufgaben und Echtzeit-Anwendungen.
educa-ai-code
Qwen3 Coder
Optimiert 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 eine Lehrperson für Biologie."},
{"role": "user", "content": "Erkläre die Mitose in einfachen Worten."}
],
"temperature": 0.7,
"max_tokens": 1000,
"stream": false
}Parameter
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| model | string | ✓ | ID des Modells (z.B. educa-ai) |
| messages | array | ✓ | Liste von Nachrichten mit role und content |
| temperature | number | – | Kreativität (0.0 – 2.0, Standard: vom Modell abhängig) |
| max_tokens | integer | – | Maximale Anzahl der generierten Tokens |
| stream | boolean | – | Streaming aktivieren (true/false) |
| top_p | number | – | 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
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
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
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, Klasse 5." }
]
})
});
const data = await response.json();
console.log(data.choices[0].message.content);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
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
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
| Code | Bedeutung |
|---|---|
| 200 | Erfolg |
| 400 | Ungültiger Request (z.B. fehlendes Feld, unbekanntes Modell) |
| 401 | Fehlender oder ungültiger API-Schlüssel |
| 403 | API-Zugriff für Ihr Konto nicht verfügbar |
| 429 | Rate Limit überschritten: warten Sie und versuchen Sie es erneut |
| 500 | Interner Serverfehler |
Fehler-Response-Format
{
"error": {
"message": "Model 'unknown-model' is not available.",
"type": "invalid_request_error",
"code": "model_not_found"
}
}Rate Limits
| Tarif | Limit | Zeitraum |
|---|---|---|
| Pro | 100 Anfragen | pro 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