kurz
Ollama Eine leistungsstarke REST-API ermöglicht Entwicklern die einfache Interaktion mit großen Sprachmodellen. Über die Ollama-API können Benutzer Anfragen senden und vom Modell generierte Antworten erhalten, die für Aufgaben wie die Verarbeitung natürlicher Sprache, Texterzeugung usw. verwendet werden. In diesem Beitrag werden die grundlegenden Operationen der Generierung von Ergänzungen und der Dialoggenerierung im Detail beschrieben und allgemeine Operationen wie das Erstellen von Modellen, das Kopieren von Modellen und das Löschen von Modellen erläutert.
Anfangs- oder Endpunkt (in Geschichten usw.)
Antwortvervollständigung \ Dialogvervollständigung \ Modell erstellen \ Modell kopieren \ Modell löschen \ Liste laufender Modelle \ Liste lokaler Modelle \ Modellinformationen anzeigen \ Modelle ziehen \ Modelle schieben \ Einbettung erzeugen
I. Vervollständigung der Antwort
POST /api/generate
Erzeugt eine Antwort auf eine bestimmte Aufforderung unter Verwendung des angegebenen Modells. Dies ist ein Streaming-Endpunkt, d. h. es wird eine Reihe von Antworten geben. Das endgültige Antwortobjekt enthält Statistiken und andere Daten aus der Anfrage.
parametrisch
Modell
: (Erforderlich) ModellnameAufforderung
: Tipp, um eine Antwort zu erzeugenSuffix
Text nach MusterantwortBilder
(Optional) eine Liste von base64-kodierten Bildern (für multimodale Modelle wieLava
)
Erweiterte Parameter (optional):
Format
Format der Antwort: Gibt das Format der Antwort zurück. Der einzige derzeit akzeptierte Wert istjson
Optionen
:: Andere Modellparameter, wie z.B.Temperatur
, undSamen
et al. (und andere Autoren)System
: SystemnachrichtenVorlage
Die zu verwendende Prompt-VorlageKontext
:: Aus der vorherigen Rezension von/erzeugen
Die in der Anfrage zurückgegebenen kontextbezogenen Parameter können verwendet werden, um einen kurzen Dialogspeicher derStrom
: Bei Einstellung auffalsch
Die Antwort wird als ein einziges Antwortobjekt und nicht als ein Strom von Objekten zurückgegeben.roh
: Bei Einstellung aufwahr
wird keine Formatierung der Eingabeaufforderung vorgenommen. Wenn Sie bei der Anforderung der API eine vollständige Vorlage für die Eingabeaufforderung angeben, können Sie optional die Optionroh
parametrischerhalten_alive
Legt fest, wie lange das Modell nach einer Anfrage im Speicher bleibt (Standard:5m
)
Beispielanforderung (Streaming)
curl http://localhost:11434/api/generate -d '{
"model": "llama3.1", "prompt".
"prompt": "Warum ist das Gras grün?"
}'
Tipp
Wenn Sie die locken.
Befehl, bitte herunterladen curl für WindowsUm Umgebungsvariablen hinzuzufügen, extrahieren Sie die Datei, suchen Sie dann die Unterdatei bin in dem Verzeichnis, in dem sich die Datei befindet, und kopieren Sie die Adresse der Datei, um die Umgebungsvariablen hinzuzufügen.
Verwenden Sie den folgenden Befehl in einem Befehlszeilenfenster (nicht PowerShell, wohlgemerkt), um zu überprüfen, ob er erfolgreich hinzugefügt wurde.
curl --help
Die erfolgreiche Hinzufügung wird durch folgende Anzeige bestätigt.
Tipp
Verwenden Sie in einem Windows-Befehlszeilenfenster den Befehl locken.
Achten Sie bei der Abfrage von Befehlen auf die Verwendung von Anführungszeichen. Beispielbefehle sind unten aufgeführt.
curl http://localhost:11434/api/generate -d "{\"model\": \"llama3.1\", \"prompt\": \"Warum das Gras grün ist\"}"
Die folgende Anzeige zeigt an, dass die Anfrage erfolgreich war.
Beispiel Antwort
Gibt einen Strom von JSON-Objekten zurück:
{
"model": "llama3.1", "created_at".
"created_at": "2024-08-08T02:54:08.184732629Z",
"response": "plant",.
"done":false
}
Die endgültige Antwort im Datenstrom enthält auch zusätzliche Daten über die Erzeugung:
- Kontext: der für diese Antwort verwendete Dialogcode, der bei der nächsten Anfrage gesendet werden kann, damit der Dialog im Speicher bleibt
- total_duration: Zeit für die Erstellung der Antwort (in Nanosekunden)
- load_duration: Zeit, die zum Laden des Modells benötigt wird (in Nanosekunden)
- prompt_eval_count: Anzahl der Token im Prompt
- prompt_eval_duration: Zeit für die Auswertung des Prompts (in Nanosekunden)
- eval_count: Anzahl der Token in der Antwort
- eval_duration: Zeit für die Erzeugung der Antwort (in Nanosekunden)
- response: null, wenn die Antwort im Streaming-Verfahren erfolgt, andernfalls enthält sie die vollständige Antwort Zur Berechnung der Antwortgenerierungsrate (Anzahl der pro Sekunde generierten Token, Token/s), d. h.
eval_count
/eval_duration
* 10^9.
Endgültige Antwort:
{
"model": "llama3.1", "created_at".
"created_at": "2024-08-08T02:54:10.819603411Z",
"response":"",
"done":true, "done_reason".
"done_reason": "stop", "context":[1,2
"context":[1,2,3], "total_duration":86,3
"total_duration":8655401792,
"prompt_eval_count":17, "prompt_eval_duration":8655401792, "load_duration":5924129727,
"prompt_eval_duration":29196000,
"eval_duration":2656329000
}
Fortgeschrittenes Spiel
Nicht-Streaming-Ausgang
Oberbefehlshaber (Militär) Strom
eingestellt auf falsch
können Sie alle Antworten auf einmal erhalten.
Beispiel-Anfrage
curl http://localhost:11434/api/generate -d '{
"model": "llama3.1", "prompt".
"prompt": "Warum ist das Gras grün?" ,
"stream": false
}'
Beispiel Antwort
{
"model": "llama3.1", "created_at".
"created_at": "2024-08-08T07:13:34.418567351Z",
"response": "Antwort: Blätter enthalten viel Chlorophyll." ,
"done":true,.
"done_reason": "stop",
"context":[1,2,3],
"total_duration":2902435095,
"load_duration":2605831520, "prompt_eval_count
"prompt_eval_count":17, "prompt_eval_duration":2902435095, "load_duration":2605831520,
"prompt_eval_duration":29322000, "prompt_eval_count":13
"eval_count":13, "prompt_eval_duration":29322000, "prompt_eval_duration":29322000
"eval_duration":266499000
}
JSON-Modus
(coll.) durchfallen (ein Schüler) Format
eingestellt auf json
Die Ausgabe erfolgt im JSON-Format. Beachten Sie jedoch, dass die Aufforderung
Das Modell wird angewiesen, im JSON-Format zu antworten, da es sonst eine große Anzahl von Leerzeichen erzeugen kann.
Beispiel-Anfrage
curl http://localhost:11434/api/generate -d '{
"model": "llama3.1", "prompt": "Warum ist das Gras grün?
"prompt": "Warum ist das Gras grün? Gib die Antwort im JSON-Format aus",
"format": "json",
"stream": false
}'
Beispiel Antwort
{
"model": "llama3.1", "created_at".
"created_at": "2024-08-08T07:21:24.950883454Z", "response":"{\n
"response":"{\n \"Grund für die Farbe\": \"Blätter enthalten Chlorophyll\",\n \n \n \"Aktion\": \"Photosynthese absorbiert Sonnenenergie\"\n}",", "done".
"done":true, "done_reason".
"done_reason": "stop",
"context":[1,2,3], "total_duration":3
"total_duration":3492279981, "total_duration":266
"prompt_eval_duration":28804000,
"eval_count":40, "prompt_eval_duration":8500000, "prompt_eval_duration":28804000, "prompt_eval_duration":28804000
"eval_duration":851206000
}
Antwort
Wert ist eine Zeichenkette, die JSON ähnlich wie die folgende enthält:
{
"Grund für die Farbe": "Blätter enthalten Chlorophyll, das für die Photosynthese benötigt wird".
"Funktion": "Führt Photosynthese durch, um Sonnenenergie zu absorbieren."
}
Eingabe enthält Bilder
Um ein neues Modell zu einem multimodalen Modell hinzuzufügen (z. B. Lava
vielleicht Bakllava
Um ein Bild einzureichen, geben Sie bitte eine base64-kodierte Version der Bilder
Liste:
Beispiel-Anfrage
curl http://localhost:11434/api/generate -d '{
"model": "llava", "prompt".
"prompt": "Beschreiben Sie dieses Bild",
"stream": false,
"images": ["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. q0bNmyDuLQcZBEPYmHVdOBiJyIlrRDq41YPWfXOxUysi5fvtyaj+2BpcnsUV/ oSoEMOk2CQGlr4ckhBwaetBhjCwH0ZHtJROPJkyc7UjcYLDjmrH7ADTEBXFfOYmB0k9oYBOjJ8b4aOYSe7QkKcYhFlq3QYLQhSidNmtS2RATwy8YOM3EQJsUjKiaWZ+. vZToUQgzhkHXudb/ PW5YMHD9yZM2faPsMwoc7RciYJXbGuBqJ1UIGKKLv915jsvgtJxCZDubdXr165mzdvtr1Hz5LONA8jrUwKPqsmVesKa49S3Q4WxmRPUEYdTjgiUcfUwLx589ySJUva3oMkP6IYddq6HMS4o55xBJBUeRjzfa4Zdeg56QZ43LhxoyPo7Lf1kNt7oO8wWAbNwaYjIv5lhyS7kRf96dvm5Jah8vfvX3flyhX35cuX6HfzFHOToS1H4BenCaHvO8pr8iDuwoUL7tevX +b5ZdbBair0xkFIlFDlW4ZknEClsp/TzXyAKVOmmHWFVSbDNw1l1+4f90U6IY/q4V27dpnE9bJ+v87QEydjqx/UamVVPRG+mwkNTYN+9tjkwzEx+atCm/ X9WvWtDtAb68Wy9LXa1UmvCDDIpPkyOQ5ZwSzJ4jMrvFcr0rSjOUh+GcT4LSg5ugkW1Io0/SCDQBojh0hPlaJdah+tkVYrnTZowP8iq1F1TgMBBauufyB33x1v+ NWFYmT5KmppgHC+NkAgbmRkpD3yn9QIseXymoTQFGQmIOKTxiZIWpvAatenVqRVXf2nTrAWMsPnKrMZHz6bJq5jvce6QK8J1cQNgKxlJapMPdZSR64/ UivS9NztpkVEdKcrs5alhhWP9NeqlfWopzhZScI6QxseegZRGeg5a8C3Re1Mfl1ScP36ddcUaMuv24iOJtz7sbUjTS4qBvKmstYJoUauiuD3k5qhyr7QdUHMeCgLa1Ear9NquemdXgmum4fvJ6w1lqsuDhNrg1qSpleJK7K3TF0Q2jSd94uSZ60kK1e3qyVpQK6PVWXp2 /FC3mp6jBhKKOiY2h3gtUV64TWM6wDETRPLDfSakXmH3w8g9Jlug8ZtTt4kVF0kLUYYmCCtD/DrQ5YhMGbA9L3ucdjh0y8kOHW5gU/VEEmJTcL4Pz/ f7mgoAbYkAAAAAElFTkSuQmCC"
]
}'
Beispiel Antwort
{
"model": "llava",.
"created_at": "2024-08-08T07:33:55.481713465Z", "response":" Das Bild zeigt einen Cartoon einer animierten Figur, die einem niedlichen Schwein mit großen Augen und einem lächelnden Gesicht ähnelt.
"response":" Das Bild zeigt eine Zeichentrickfigur, die einem niedlichen Schwein mit großen Augen und einem lächelnden Gesicht ähnelt. Das Bild zeigt eine Zeichentrickfigur, die einem niedlichen Schwein mit großen Augen und einem lächelnden Gesicht ähnelt. Es scheint in Bewegung zu sein, was durch die Linien angedeutet wird, die von seinen Armen und seinem Schwanz ausgehen und ihm ein dynamisches Gefühl geben, als würde es winken oder tanzen. Der Stil des Bildes ist verspielt und einfach, typisch für Strichzeichnungen oder Aufkleber. Das Design der Figur wurde mit übertriebenen Merkmalen wie großen Ohren und einem lächelnden Ausdruck stilisiert, was zu ihrem Charme beiträgt. Das Design der Figur wurde mit übertriebenen Merkmalen wie großen Ohren und einem lächelnden Gesichtsausdruck stilisiert, was zu ihrem Charme beiträgt.
"done":true, "done_reason": "done_reason":true
"done_reason": "stop", "context":[1,2,4
"context":[1,2,3], "total_duration":2,3
"total_duration":2960501550, "load_duration":4550, "load_duration":4500
"prompt_eval_duration":758437000, "prompt_eval_count":108, "prompt_eval_count":1,
"eval_count":108, "prompt_eval_duration":21550012, "prompt_eval_count":1, "prompt_eval_duration":758437000,
"eval_duration":2148818000
}
reproduzierbarer Output
Oberbefehlshaber (Militär) Samen
Auf einen festen Wert einstellen, um ein reproduzierbares Ergebnis zu erhalten:
Beispiel-Anfrage
curl http://localhost:11434/api/generate -d '{
"model": "llama3.1", "prompt".
"prompt": "Warum ist das Gras grün?" ,
"stream": false, "options": {
"Optionen": {
"seed": 1001
}
}'
Beispiel Antwort
{
"model": "llama3.1", "created_at".
"created_at": "2024-08-08T07:42:28.397780058Z",
"response": "Answer: because leaves contain a lot of chloride ions." ,
"done":true,.
"done_reason": "stop",
"context":[1,2,3],
"total_duration":404791556, "load_duration":184791556, "load_duration":184791556
"prompt_eval_count":17, "prompt_eval_count":17, "prompt_eval_count":17
"prompt_eval_duration":22453000, "eval_count":16453000, "prompt_eval_count":17, "prompt_eval_count":17
"eval_count":16, "prompt_eval_duration":18317351, "prompt_eval_count":17, "prompt_eval_duration":22453000, "eval_count":16,
"eval_duration":321267000}
II. der Abschluss des Dialogs
POST /api/chat
Erzeugt die nächste Nachricht im Chat unter Verwendung des angegebenen Modells. Dies ist ebenfalls ein Streaming-Endpunkt, d. h. es wird eine Reihe von Antworten geben. Wenn die "Strom"
eingestellt auf falsch
dann kann das Streaming deaktiviert werden. Das endgültige Antwortobjekt enthält die angeforderten Statistiken und zusätzliche Daten.
parametrisch
Modell
: (Erforderlich) ModellnameNachrichten
Chat-Nachrichten, die als Erinnerung an den Chat verwendet werden könnenWerkzeuge
Das Modell unterstützt die Verwendung von Werkzeugen. Es ist erforderlich, dass dieStrom
eingestellt auffalsch
Nachricht
Das Objekt hat die folgenden Felder:
Rolle
Die Rolle der Nachricht, die sein kannSystem
, undBenutzer
, undAssistent
vielleichtWerkzeug
Inhalt
Inhalt der NachrichtBilder
(optional): eine Liste von Bildern, die in der Nachricht enthalten sein sollen (für Nachrichten wieLava
(Multimodale Modelle wie diese)Werkzeug_Aufrufe
(fakultativ): Liste der Werkzeuge, die das Modell verwenden möchte
Erweiterte Parameter (optional):
Format
Format der Antwort: Gibt das Format der Antwort zurück. Der einzige derzeit akzeptierte Wert istjson
Optionen
Andere Modellparameter wie z.B.Temperatur
, undSamen
et al. (und andere Autoren)Strom
: Wenn fürfalsch
Die Antwort wird als ein einziges Antwortobjekt und nicht als ein Strom von Objekten zurückgegeben.erhalten_alive
Legt fest, wie lange das Modell nach einer Anfrage im Speicher geladen bleibt (Standard:5m
)
Beispielanforderung (Streaming)
curl http://localhost:11434/api/chat -d '{
"model": "llama3.1",
"messages": [
{
"role": "user", "content": "Warum ist das Gras grün?
"content": "Warum ist das Gras grün?"
}
]
}'
Beispiel Antwort
Gibt einen Strom von JSON-Objekten zurück:
{
"model": "llama3.1", "created_at".
"created_at": "2024-08-08T03:54:36.933701041Z",
"message":{
"role": "assistant", "content":{
"content": "weil"
},
"done":false
}
Endgültige Antwort:
{
"model": "llama3.1", "created_at".
"created_at": "2024-08-08T03:54:37.187621765Z",
"message":{
"role": "assistant", "content": {
"content":""
},
"done_reason": "stop", "done":true, "content":" }, "done":true
"load_duration":5370535786, "prompt_eval_count":1717
"prompt_eval_count":17, "prompt_eval_duration":5730533217,
"prompt_eval_duration":29621000,
"eval_count":13,
"eval_duration":273810000
}
Fortgeschrittenes Spiel
Parametereinstellungen für Non-Streaming-Ausgabe, JSON-Modus, multimodale Eingabe, reproduzierbare Ausgabe und Antwort-API
der Konsistenz.
Mit Geschichte
Senden Sie Chat-Nachrichten mit Dialogverlauf. Mehrere Dialogrunden oder Gedankenkettenaufforderungen können mit derselben Methode gestartet werden.
Beispiel-Anfrage
curl http://localhost:11434/api/chat -d '{
"model": "llama3.1",
"messages": [
{
"role": "user", "content": "Warum ist das Gras grün?
"content": "Warum ist das Gras grün?"
},
{
"role": "assistant", "content": "Weil Gras Chlorophyll enthält.
"content": "Weil Gras Chlorophyll enthält."
},
{
"role": "user", "content": "Warum sieht Gras durch Chlorophyll grün aus?" }, {
"content": "Warum sieht Gras durch Chlorophyll grün aus?"
}
], {
"stream": false
}'
Beispiel Antwort
{
"model": "llama3.1", "created_at".
"created_at": "2024-08-08T07:53:28.849517802Z",
"message":{
"role": "assistant", "content":{
"content": "Es ist ein komplexeres Problem! \n\nChlorophylle sind Pigmente, die Xanthophylle genannt werden, und diese absorbieren Lichtenergie. Bei Tageslicht absorbiert das Chlorophyll in grünen Grasblättern blaues und rotes Licht, reflektiert aber gelbes und grünes Licht, so dass wir sehen, dass das Gras grün aussieht. \Einfach ausgedrückt: Chlorophyll lässt Gras grün aussehen, weil es das grüne Licht reflektiert, das unsere Augen sehen können, ohne die anderen Farben zu reflektieren, die wir sehen."
},.
"done_reason": "stop".
"done":true,.
"total_duration":5065572138,
"load_duration":2613559070, "prompt_eval_count":5065572138,
"prompt_eval_count":48, "prompt_eval_duration":5065572138, "load_duration":2613559070,
"prompt_eval_duration":37825000, "prompt_eval_count":1065572138,
"eval_count":106, "prompt_eval_duration":2213559070, "prompt_eval_count":48, "prompt_eval_duration":37825000,
"eval_duration":2266694000}
III. die Erstellung von Modellen
POST /api/create
allgemein empfohlen Modelldatei
auf den Inhalt der Modeldatei gesetzt, anstatt nur die Pfad
Entfernte Modellerstellung. Die entfernte Modellerstellung muss auch Create Blob verwenden, um explizit alle Dateiblobs, Felder (wie die VON
im Gesang antworten ADAPTER
) und setzen Sie den Wert auf den in der Antwort angegebenen Pfad.
parametrisch
Name
Name des zu erstellenden ModellsModelldatei
(optional): Inhalt der ModeldateiStrom
(fakultativ): wenn fürfalsch
Die Antwort wird als ein einziges Antwortobjekt zurückgegeben, nicht als ein Strom von Objekten.Pfad
(Optional): Pfad zur Modeldatei.
Beispiel-Anfrage
curl http://localhost:11434/api/create -d '{
"name": "mario", "modelfile": "FROM llama3\nSYSTEM
"modelfile": "FROM llama3\nSYSTEM Du bist Mario aus Super Mario Bros."
}'
Beispiel Antwort
Eine Kette von JSON-Objekten. Beachten Sie, dass das letzte JSON-Objekt "Status": "Erfolg"
Aufgefordert, erfolgreich zu erstellen.
{"Status": "Modell-Metadaten lesen"}
{"status": "create system layer"}
{"status": "using already created layer sha256:22f7f8ef5f4c791c1b03d7eb414399294764d7cc82c7e94aa81a1feb80a983a2"}
{"status": "using already created layer sha256:8c17c2ebb0ea011be9981cc3922db8ca8fa61e828c5d3f44cb6ae342bf80460b"}
{"status": "using already created layer sha256:7c23fb36d80141c4ab8cdbb61ee4790102ebd2bf7aeff414453177d4f2110e5d"}
{"status": "using already created layer sha256:2e0493f67d0c8c9c68a8aeacdf6a38a2151cb3c4c1d42accf296e19810527988"}
{"status": "using already created layer sha256:2759286baa875dc22de5394b4a925701b1896a7e3f8e53275c36f75a877a82c9"}
{"status": "writing layer sha256:df30045fe90f0d750db82a058109cecd6d4de9c90a3d75b19c09e5f64580bb42"}
{"status": "writing layer sha256:f18a68eb09bf925bb1b669490407c1b1251c5db98dc4d3d81f3088498ea55690"}
{"status": "Manifest schreiben"}
{"status": "Erfolg"}
Prüfen, ob der Blob existiert
HEAD /api/blobs/:digest
Stellen Sie sicher, dass der Dateiblob für das FROM- oder ADAPTER-Feld auf dem Server existiert. Damit wird Ihr Ollama-Server und nicht Ollama.ai überprüft.
Parameter der Anfrage
Zusammenfassung
SHA256 Digest des Blobs
Beispiel-Anfrage
curl -I http://localhost:11434/api/blobs/sha256:29fdb92e57cf0827ded04ae6461b5931d01fa595843f55d36f5b275a52087dd2
Beispiel Antwort
Gibt "200 OK" zurück, wenn der Blob existiert, oder "404 Not Found", wenn er nicht existiert.
Einen Blob erstellen
POST /api/blobs/:digest
Erzeugt einen Blob aus einer Datei auf dem Server. Gibt den Dateipfad des Servers zurück.
Parameter der Anfrage
Zusammenfassung
Erwartete SHA256-Zusammenfassung des Dokuments
Beispiel-Anfrage
curl -T model.bin -X POST http://localhost:11434/api/blobs/sha256:29fdb92e57cf0827ded04ae6461b5931d01fa595843f55d36f5b275a52087dd2
Beispiel Antwort
Gibt 201 Created zurück, wenn der Blob erfolgreich erstellt wurde, oder 400 Bad Request, wenn der verwendete Digest nicht wie erwartet war.
IV. Replikationsmodelle
POST /api/copy
Duplizieren Sie ein Modell, um ein vorhandenes Modell unter einem anderen Namen zu duplizieren.
Beispiel-Anfrage
curl http://localhost:11434/api/copy -d '{
"Quelle": "llama3.1", "Ziel": "llama3-backup
"destination": "llama3-backup"
}'
Beispiel Antwort
Gibt bei Erfolg "200 OK" zurück, oder "404 Not Found", wenn das Quellmodell nicht existiert.
V. Löschung von Modellen
DELETE /api/delete
Löschen Sie das Modell und seine Daten.
parametrisch
Name
Name des zu löschenden Modells
Beispiel-Anfrage
[](https://github.com/datawhalechina/handy-ollama/blob/main/docs/C4/1.1 TP3T20OllamaAPI. md#-4)curl -X DELETE http://localhost:11434/api/delete -d '{
"name": "llama3.1"
}'
Beispiel Antwort
Gibt bei Erfolg "200 OK" zurück, oder "404 Not Found", wenn das zu löschende Modell nicht existiert.
VI. Auflistung der Betriebsmodelle
GET /api/ps
Listet die aktuell in den Speicher geladenen Modelle auf.
Beispiel-Anfrage
http://localhost:11434/api/ps locken.
Beispiel Antwort
{
"models":[
{
"name": "llama3.1:latest",
"model": "llama3.1:latest",
"size":6654289920, "digest": "7538208d99dfaa6".
"digest": "75382d0899dfaaa6ce331cf680b72bd6812c7f05e5158c5f2f43c6383e21d734",
"details":{
"parent_model":"",.
"format": "gguf".
"Familie": "Lama".
"families":["llama"], "parameter_size".
"parameter_size": "8.0B", "quantisation_level".
"quantisation_level": "Q4_0"
},
"expires_at": "2024-08-08T14:06:52.883023476+08:00",
"size_vram":6654289920
}
]
}
VII. die Auflistung der lokalen Modelle
GET /api/tags
Listet die lokal verfügbaren Modelle auf.
Beispiel-Anfrage
http://localhost:11434/api/tags locken.
Beispiel Antwort
{
"models":[
{
"name": "llama3.1:latest",
"model": "llama3.1:latest",
"modified_at": "2024-08-07T17:54:22.533937636+08:00",
"size":4661230977,
"digest": "75382d0899dfaaa6ce331cf680b72bd6812c7f05e5158c5f2f43c6383e21d734",
"details":{
"parent_model":"",.
"format": "gguf".
"Familie": "Lama".
"families":["llama"], "parameter_size".
"parameter_size": "8.0B", "quantisation_level".
"quantisation_level": "Q4_0"
}
}
]
}
VIII. die Anzeige von Modellinformationen
POST /api/show
Zeigt Informationen über das Modell an, einschließlich Details, Modelldatei, Vorlagen, Parameter, Lizenzen und Systemhinweise.
parametrisch
Name
Name des anzuzeigenden ModellsAusführlich
(Optional): Bei Einstellung aufwahr
und gibt dann die vollständigen Daten für das Feld Detaillierte Antwort zurück
Beispiel-Anfrage
curl http://localhost:11434/api/show -d '{
"name": "llama3.1"
}'
Beispiel Antwort
{
"licence":"..." ,
"modelfile":"..." , "parameters":"..." , "modelfile":"...
"parameter":"..." , "Vorlage":"..." , "Parameter":"...
"template":"..." ,
"details":{
"parent_model":"", "", "format": "gguf", {
"format": "gguf", "family".
"familie": "lama".
"families":["llama"], "parameter_size".
"parameter_size": "8.0B", "quantisation_level".
"quantisation_level": "Q4_0"
},.
"model_info":{
"general.architecture": "llama", "general.architecture": "llama", "general.basename".
"general.basename": "Meta-Llama-3.1",
"general.file_type":2, "general.
"general.languages":["en", "de", "fr", "it", "pt", "hi", "es", "th"], "general.
"general.licence": "llama3.1", "general.parameter_count".
"general.parameter_count":8030261312, "general.
"general.quantisation_version":2, "general.size_label".
"general.size_label": "8B", "general.
"general.tags":["facebook", "meta", "pytorch", "llama", "llama-3", "text-generation"], "general.
"general.type": "model".
"llama.attention.head_count":32, "llama.attention.head_count".
"llama.attention.head_count_kv":8,
"llama.attention.layer_norm_rms_epsilon":0.00001,
"llama.block_count":32,
"llama.context_length":131072,
"llama.embedding_length":4096,
"llama.feed_forward_length":14336,
"lama.rope.dimension_count":128,
"llama.rope.freq_base":500000,
"llama.vocab_size":128256,
"tokenizer.ggml.bos_token_id":128000,
"tokenizer.ggml.eos_token_id":128009, "tokenizer.ggml.eos_token_id":128009,
"tokenizer.ggml.merges":null,
"tokenizer.ggml.model": "gpt2",
"tokenizer.ggml.pre": "llama-bpe",
"tokenizer.ggml.token_type":null, "tokeniser.ggml.pre": "llama-bpe", "tokenizer.ggml.token_type":null, "tokeniser.ggml.pre":null
"tokenizer.ggml.tokens":null
}, "modified_at":null
"modified_at": "2024-08-07T17:54:22.533937636+08:00"
}
IX. ziehende Modelle
POST /api/pull
durch (eine Lücke) ollama
Bibliotheks-Download-Modell. Bei einem unterbrochenen Pull-Vorgang wird der Download vom Haltepunkt aus fortgesetzt, und mehrere Aufrufe teilen sich denselben Download-Fortschritt.
parametrisch
Name
Name des zu ziehenden Modellsunsicher
(Optional): erlaubt unsichere Verbindungen zu Bibliotheken. Es wird empfohlen, diese Option nur zu verwenden, wenn Sie während der Entwicklung auf Ihre eigenen Bibliotheken zurückgreifen.Strom
(fakultativ): wenn fürfalsch
Die Antwort wird als ein einziges Antwortobjekt zurückgegeben, nicht als ein Strom von Objekten.
Beispiel-Anfrage
curl http://localhost:11434/api/pull -d '{
"name": "llama3.1"
}'
Beispiel Antwort
für den Fall, dass Strom
Nicht angegeben oder eingestellt auf wahr
wird eine Kette von JSON-Objekten zurückgegeben:
Das erste Objekt ist die Liste:
{
"status": "pulling manifest"
}
Dann gibt es eine Reihe von Download-Antworten. Solange der Download nicht abgeschlossen ist, darf er nicht enthalten abgeschlossen
Taste. Die Anzahl der herunterzuladenden Dateien hängt von der Anzahl der in der Liste angegebenen Ebenen ab.
{
"status": "downloading digestname", "digest".
"digest": "digestname", "total".
"gesamt": 2142590208, "abgeschlossen": 241970
abgeschlossen": 241970, "abgeschlossen": 241970
}
Nachdem alle Dateien heruntergeladen wurden, lautet die endgültige Antwort:
{ "status": "verifying sha256 digest".
"status": "verifying sha256 digest"
}
{
"status": "writing manifest"
}
{ "status": "removing any unused layers" }
"status": "Entfernen unbenutzter Schichten"
}
{
"status": "success"
}
für den Fall, dass Strom
auf false gesetzt ist, ist die Antwort ein einzelnes JSON-Objekt:
{
"Status": "Erfolg"
}
X. Push-Modelle
POST /api/push
Laden Sie das Modell in das Modell-Repository hoch. Sie müssen zuerst ollama.ai registrieren und einen öffentlichen Schlüssel hinzufügen.
parametrisch
Name
der Name des zu verschiebenden Modells im Format von/:
unsicher
(Optional): Unsichere Verbindungen zu Bibliotheken zulassen. Verwenden Sie diese Option nur, wenn Sie während der Entwicklung Ihre eigenen Bibliotheken pushen.Strom
(fakultativ): wenn fürfalsch
Die Antwort wird als ein einziges Antwortobjekt zurückgegeben, nicht als ein Strom von Objekten.
Beispiel-Anfrage
curl http://localhost:11434/api/push -d '{
"name": "mattw/pygmalion:latest"
}'
Beispiel Antwort
für den Fall, dass Strom
Nicht angegeben oder eingestellt auf wahr
wird eine Kette von JSON-Objekten zurückgegeben:
{ "status": "retrieving manifest" }
Dann eine Reihe von Upload-Antworten:
{
"status": "starting upload", "digest".
"digest": "sha256:bc07c81de745696fdf5afca05e065818a8149fb0c77266fb584d9b2cba3711ab",
"total": 1928429856
}
Wenn der Upload abgeschlossen ist:
{"status": "pushing manifest"}
{"Status": "Erfolg"}
für den Fall, dass Strom
eingestellt auf falsch
Wenn die Antwort ein einzelnes JSON-Objekt ist, dann ist die Antwort ein einzelnes JSON-Objekt:
{ "Status": "Erfolg" }
XI. die Erzeugung von Einbettungen
POST /api/embed
Erzeugung von Einbettungen aus Modellen.
parametrisch
Modell
Name des Modells, von dem die Einbettung erzeugt werden sollEingabe
Um eingebetteten Text oder eine Liste von Text zu erzeugen
Erweiterte Parameter:
abschneiden.
Truncate the end of each input to fit the context length. Dies ist kein Problem, wenn es der Fall ist fürfalsch
und die Kontextlänge überschreitet, wird ein Fehler zurückgegeben. Der Standardwert istwahr
Optionen
Andere Modellparameter wie z.B.Temperatur
, undSamen
et al. (und andere Autoren)erhalten_alive
Legt fest, wie lange das Modell nach einer Anfrage im Speicher geladen bleibt (Standard:5m
)
Beispiel-Anfrage
curl http://localhost:11434/api/embed -d '{
"model": "llama3.1", "input".
"input": "Warum ist das Gras grün?"
}'
Beispiel Antwort
{
"model": "llama3.1",
"embeddings":[[
-0.008059342,-0.013182715,0.019781841,0.012018124,-0.024847334.
-0.0031902494,-0.02714767,0.015282277,0.060032737,...
]]
"total_duration":3041671009, "load_duration":284
"prompt_eval_count":7}
Beispielanfrage (mehrere Eingänge)
curl http://localhost:11434/api/embed -d '{
"model": "llama3.1", "input": ["Warum ist das Gras grün?
"input": ["Warum ist das Gras grün?" , "Warum ist der Himmel blau?"]
}'
Beispiel Antwort
{
"model": "llama3.1",
"embeddings":[[
-0.008471201,-0.013031566,0.019300476,0.011618419,-0.025197424.
-0.0024164673,-0.02669075,0.015766116,0.059984162,...
],[
-0.012765694,-0.012822924,0.015915949,0.006415892,-0.02327763,...
0.004859615,-0.017922137,0.019488193,0.05638235,...
]]
"total_duration":195481419, "load_duration":136
"load_duration":1318886, "prompt_eval_count":0.017922137,0.019488193,0.05638235.
"prompt_eval_count":14
}
Fehlerbehandlung
Die Ollama-API gibt beim Auftreten eines Fehlers entsprechende Fehlercodes und Meldungen zurück. Zu den häufigsten Fehlern gehören:
- 400 Bad Request: Fehler im Anfrageformat.
- 404 Not Found: Die angeforderte Ressource existiert nicht.
- 500 Interner Serverfehler: Interner Serverfehler.