🔗 API-Endpunkte
Diese Anleitung bietet wichtige 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 es sich hierbei um eine experimentelle Einrichtung handelt und zukünftige Updates zur Verbesserung vorgenommen werden können.
Authentifizierung
Um einen sicheren Zugriff auf die API zu gewährleisten, ist eine Authentifizierung erforderlich 🛡️. Sie können Ihre API-Anfragen über den 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.
Bemerkenswerte 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" https://:3000/api/models
💬 Chat-Vervollständigungen
-
Endpunkt:
POST /api/chat/completions -
Beschreibung: Dient als mit der OpenAI API kompatibler Endpunkt für Chat-Vervollständigungen für Modelle auf Open WebUI, einschließlich Ollama-Modelle, OpenAI-Modelle und Open WebUI Funktionsmodelle.
-
Curl-Beispiel:
curl -X POST https://:3000/api/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "llama3.1",
"messages": [
{
"role": "user",
"content": "Why is the sky blue?"
}
]
}' -
Python-Beispiel:
import requests
def chat_with_model(token):
url = 'https://:3000/api/chat/completions'
headers = {
'Authorization': f'Bearer {token}',
'Content-Type': 'application/json'
}
data = {
"model": "granite3.1-dense:8b",
"messages": [
{
"role": "user",
"content": "Why is the sky blue?"
}
]
}
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 – auch für die Generierung von Embeddings oder das Streamen von Roh-Prompts –, bietet Open WebUI über eine Proxy-Route einen transparenten Durchgang zur nativen Ollama-API.
- Basis-URL:
/ollama/<api> - Referenz: Ollama API-Dokumentation
🔁 Vervollständigung generieren (Streaming)
curl https://:3000/ollama/api/generate -d '{
"model": "llama3.2",
"prompt": "Why is the sky blue?"
}'
📦 Verfügbare Modelle auflisten
curl https://:3000/ollama/api/tags
🧠 Embeddings generieren
curl -X POST https://:3000/ollama/api/embed -d '{
"model": "llama3.2",
"input": ["Open WebUI is great!", "Let's generate embeddings."]
}'
Dies ist ideal für die Erstellung von Suchindizes, Abrufsystemen oder benutzerdefinierten Pipelines mit Ollama-Modellen hinter Open WebUI.
🧩 Retrieval Augmented Generation (RAG)
Die Funktion Retrieval Augmented Generation (RAG) ermöglicht es Ihnen, Antworten durch die Einbeziehung von Daten aus externen Quellen zu verbessern. Nachfolgend finden Sie die Methoden zur Verwaltung von Dateien und Wissenssammlungen über die API und wie Sie diese effektiv in Chat-Vervollständigungen verwenden können.
Dateien hochladen
Um externe Daten in RAG-Antworten zu nutzen, 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" https://:3000/api/v1/files/ -
Python-Beispiel:
import requests
def upload_file(token, file_path):
url = 'https://:3000/api/v1/files/'
headers = {
'Authorization': f'Bearer {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 zu einer Wissenssammlung gruppieren oder sie einzeln in Chats referenzieren.
-
Endpunkt:
POST /api/v1/knowledge/{id}/file/add -
Curl-Beispiel:
curl -X POST https://: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 = f'https://:3000/api/v1/knowledge/{knowledge_id}/file/add'
headers = {
'Authorization': f'Bearer {token}',
'Content-Type': 'application/json'
}
data = {'file_id': file_id}
response = requests.post(url, headers=headers, json=data)
return response.json()
Dateien und Sammlungen in Chat-Vervollständigungen verwenden
Sie können sowohl einzelne Dateien als auch ganze Sammlungen in Ihren RAG-Anfragen für angereicherte Antworten referenzieren.
Eine einzelne Datei in Chat-Vervollständigungen verwenden
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 https://:3000/api/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4-turbo",
"messages": [
{"role": "user", "content": "Explain the concepts in this document."}
],
"files": [
{"type": "file", "id": "your-file-id-here"}
]
}' -
Python-Beispiel:
import requests
def chat_with_file(token, model, query, file_id):
url = 'https://:3000/api/chat/completions'
headers = {
'Authorization': f'Bearer {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()
Eine Wissenssammlung in Chat-Vervollständigungen verwenden
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 https://:3000/api/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4-turbo",
"messages": [
{"role": "user", "content": "Provide insights on the historical perspectives covered in the collection."}
],
"files": [
{"type": "collection", "id": "your-collection-id-here"}
]
}' -
Python-Beispiel:
import requests
def chat_with_collection(token, model, query, collection_id):
url = 'https://:3000/api/chat/completions'
headers = {
'Authorization': f'Bearer {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, wodurch die Fähigkeiten von Chat-Anwendungen mit der Open WebUI API erweitert werden. Ob Sie Dateien einzeln oder innerhalb von Sammlungen verwenden, Sie können die Integration an Ihre spezifischen Bedürfnisse anpassen.
Vorteile der Verwendung von Open WebUI als einheitlichem LLM-Anbieter
Open WebUI bietet eine Fülle von Vorteilen und ist damit ein unverzichtbares Werkzeug für Entwickler und Unternehmen gleichermaßen.
- Einheitliche Schnittstelle: Vereinfachen Sie Ihre Interaktionen mit verschiedenen LLMs über eine einzige, integrierte Plattform.
- Einfache Implementierung: Schnelle Integration mit umfassender Dokumentation und Community-Support.
Swagger-Dokumentationslinks
Stellen Sie sicher, dass die Umgebungsvariable ENV auf dev gesetzt ist, um auf die Swagger-Dokumentation für alle diese Dienste zugreifen zu können. Ohne diese Konfiguration ist die Dokumentation nicht verfügbar.
Greifen Sie auf detaillierte API-Dokumentationen für verschiedene von Open WebUI bereitgestellte Dienste zu.
| Anwendung | Dokumentationspfad |
|---|---|
| Haupt | /docs |
Indem Sie diese Richtlinien befolgen, können Sie die Open WebUI API schnell integrieren und nutzen. Sollten Sie auf Probleme stoßen oder Fragen haben, zögern Sie nicht, sich über unsere Discord-Community zu melden oder die FAQs zu konsultieren. Viel Spaß beim Codieren! 🌟