Zum Hauptinhalt springen

🔗 API-Endpunkte

Dieser Leitfaden bietet wesentliche Informationen darüber, wie Sie effektiv mit den API-Endpunkten interagieren können, um eine nahtlose Integration und Automatisierung mit unseren Modellen zu erreichen. Bitte beachten Sie, dass dies eine experimentelle Konfiguration ist und in Zukunft für Verbesserungen aktualisiert werden kann.

Authentifizierung

Um sicheren Zugriff auf die API zu gewährleisten, ist eine Authentifizierung erforderlich 🛡️. Sie können Ihre API-Anfragen mit dem Bearer-Token-Mechanismus authentifizieren. Holen Sie sich Ihren API-Schlüssel unter Einstellungen > Konto in der Open WebUI oder verwenden Sie alternativ ein JWT (JSON Web Token) zur Authentifizierung.

Wichtige API-Endpunkte

📜 Alle Modelle abrufen

  • Endpunkt: GET /api/models

  • Beschreibung: Ruft alle Modelle ab, die über Open WebUI erstellt oder hinzugefügt wurden.

  • Beispiel:

    curl -H "Authorization: Bearer YOUR_API_KEY" http://localhost:3000/api/models

💬 Chat-Abschlüsse

  • Endpunkt: POST /api/chat/completions

  • Beschreibung: Dient als OpenAI API-kompatibler Chat-Abschluss-Endpunkt für Modelle in Open WebUI, einschließlich Ollama-Modelle, OpenAI-Modelle und Open WebUI-Funktionsmodelle.

  • Curl-Beispiel:

    curl -X POST http://localhost:3000/api/chat/completions \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d {
    "model": "llama3.1",
    "messages": [
    {
    "role": "user",
    "content": "Warum ist der Himmel blau?"
    }
    ]
    }
  • Python-Beispiel:

    import requests

    def chat_with_model(token):
    url = http://localhost:3000/api/chat/completions
    headers = {
    Authorization: fBearer {token},
    Content-Type: application/json
    }
    data = {
    "model": "granite3.1-dense:8b",
    "messages": [
    {
    "role": "user",
    "content": "Warum ist der Himmel blau?"
    }
    ]
    }
    response = requests.post(url, headers=headers, json=data)
    return response.json()

🦙 Ollama API-Proxy-Unterstützung

Wenn Sie direkt mit Ollama-Modellen interagieren möchten, einschließlich der Generierung von Einbettungen oder des Streamens von Roh-Prompts, bietet Open WebUI eine transparente Weiterleitung zur nativen Ollama API über eine Proxy-Route.

🔁 Abschluss generieren (Streaming)

curl http://localhost:3000/ollama/api/generate -d {
"model": "llama3.2",
"prompt": "Warum ist der Himmel blau?"
}

📦 Verfügbare Modelle auflisten

curl http://localhost:3000/ollama/api/tags

🧠 Einbettungen generieren

curl -X POST http://localhost:3000/ollama/api/embed -d {
"model": "llama3.2",
"input": ["Open WebUI ist großartig!", "Lassen Sie uns Einbettungen generieren."]
}

Dies ist ideal zur Erstellung von Suchindizes, Abrufsystemen oder benutzerdefinierten Pipelines unter Verwendung von Ollama-Modellen hinter der Open WebUI.

🧩 Informationsabruf mit Generierung (RAG)

Die Funktion "Informationsabruf mit Generierung" (RAG) ermöglicht es Ihnen, Antworten durch Einbindung von Daten aus externen Quellen zu verbessern. Nachfolgend finden Sie die Methoden zum Verwalten von Dateien und Wissenssammlungen über die API sowie zur effektiven Nutzung in Chat-Abschlüssen.

Dateien hochladen

Um externe Daten in RAG-Antworten einzubeziehen, müssen Sie zuerst die Dateien hochladen. Der Inhalt der hochgeladenen Datei wird automatisch extrahiert und in einer Vektordatenbank gespeichert.

  • Endpunkt: POST /api/v1/files/

  • Curl-Beispiel:

    curl -X POST -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" \
    -F "file=@/path/to/your/file" http://localhost:3000/api/v1/files/
  • Python-Beispiel:

    import requests

    def upload_file(token, file_path):
    url = http://localhost:3000/api/v1/files/
    headers = {
    Authorization: fBearer {token},
    Accept: application/json
    }
    files = {file: open(file_path, rb)}
    response = requests.post(url, headers=headers, files=files)
    return response.json()

Dateien zu Wissenssammlungen hinzufügen

Nach dem Hochladen können Sie Dateien in einer Wissenssammlung gruppieren oder sie einzeln in Chats referenzieren.

  • Endpunkt: POST /api/v1/knowledge/{id}/file/add

  • Curl-Beispiel:

    curl -X POST http://localhost:3000/api/v1/knowledge/{knowledge_id}/file/add \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d {"file_id": "your-file-id-here"}
  • Python-Beispiel:

    import requests

    def add_file_to_knowledge(token, knowledge_id, file_id):
    url = fhttp://localhost:3000/api/v1/knowledge/{knowledge_id}/file/add
    headers = {
    Authorization: fBearer {token},
    Content-Type: application/json
    }
    data = {file_id: file_id}
    response = requests.post(url, headers=headers, json=data)
    return response.json()

Verwendung von Dateien und Sammlungen in Chat-Komplettierungen

Sie können sowohl individuelle Dateien als auch ganze Sammlungen in Ihren RAG-Abfragen referenzieren, um angereicherte Antworten zu erhalten.

Verwendung einer individuellen Datei in Chat-Komplettierungen

Diese Methode ist vorteilhaft, wenn Sie die Antwort des Chat-Modells auf den Inhalt einer bestimmten Datei konzentrieren möchten.

  • Endpunkt: POST /api/chat/completions

  • Curl-Beispiel:

    curl -X POST http://localhost:3000/api/chat/completions \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d {
    "model": "gpt-4-turbo",
    "messages": [
    {"role": "user", "content": "Erklären Sie die Konzepte in diesem Dokument."}
    ],
    "files": [
    {"type": "file", "id": "your-file-id-here"}
    ]
    }
  • Python-Beispiel:

    import requests

    def chat_with_file(token, model, query, file_id):
    url = http://localhost:3000/api/chat/completions
    headers = {
    Authorization: fBearer {token},
    Content-Type: application/json
    }
    payload = {
    model: model,
    messages: [{role: user, content: query}],
    files: [{type: file, id: file_id}]
    }
    response = requests.post(url, headers=headers, json=payload)
    return response.json()
Verwendung einer Wissenssammlung in Chat-Komplettierungen

Nutzen Sie eine Wissenssammlung, um die Antwort zu verbessern, wenn die Anfrage von einem breiteren Kontext oder mehreren Dokumenten profitieren kann.

  • Endpunkt: POST /api/chat/completions

  • Curl-Beispiel:

    curl -X POST http://localhost:3000/api/chat/completions \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d {
    "model": "gpt-4-turbo",
    "messages": [
    {"role": "user", "content": "Geben Sie Einblicke in die historischen Perspektiven in der Sammlung."}
    ],
    "files": [
    {"type": "collection", "id": "your-collection-id-here"}
    ]
    }
  • Python-Beispiel:

    import requests

    def chat_with_collection(token, model, query, collection_id):
    url = http://localhost:3000/api/chat/completions
    headers = {
    Authorization: fBearer {token},
    Content-Type: application/json
    }
    payload = {
    model: model,
    messages: [{role: user, content: query}],
    files: [{type: collection, id: collection_id}]
    }
    response = requests.post(url, headers=headers, json=payload)
    return response.json()

Diese Methoden ermöglichen die effektive Nutzung von externem Wissen über hochgeladene Dateien und kuratierte Wissenssammlungen und erweitern die Fähigkeiten von Chat-Anwendungen mit der Open-WebUI-API. Egal ob Sie einzelne Dateien oder Sammlungen verwenden, Sie können die Integration basierend auf Ihren spezifischen Anforderungen anpassen.

Vorteile von Open WebUI als einheitlicher LLM-Anbieter

Open WebUI bietet zahlreiche Vorteile, die es zu einem unverzichtbaren Werkzeug für Entwickler und Unternehmen machen:

  • Einheitliche Schnittstelle: Vereinfachen Sie Ihre Interaktionen mit verschiedenen LLMs durch eine einzige, integrierte Plattform.
  • Einfache Implementierung: Schnelle Integration dank umfassender Dokumentation und Unterstützung durch die Community.

Stellen Sie sicher, dass die Umgebungsvariable ENV auf dev gesetzt ist, um auf die Swagger-Dokumentation für einen dieser Dienste zuzugreifen. Ohne diese Konfiguration ist die Dokumentation nicht verfügbar.

Greifen Sie auf detaillierte API-Dokumentationen für die verschiedenen von Open WebUI bereitgestellten Dienste zu:

AnwendungDokumentationspfad
Haupt/docs

Durch das Befolgen dieser Richtlinien können Sie die Open-WebUI-API zügig integrieren und nutzen. Sollten Sie auf Probleme stoßen oder Fragen haben, wenden Sie sich gerne an unsere Discord-Community oder konsultieren Sie die FAQs. Viel Spaß beim Programmieren! 🌟