AI Personal Learning
und praktische Anleitung
CyberKnife-Zeichenspiegel

Ollama API Benutzerhandbuch

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) Modellname
  • Aufforderung: Tipp, um eine Antwort zu erzeugen
  • SuffixText nach Musterantwort
  • Bilder(Optional) eine Liste von base64-kodierten Bildern (für multimodale Modelle wie Lava )

Erweiterte Parameter (optional):

  • FormatFormat der Antwort: Gibt das Format der Antwort zurück. Der einzige derzeit akzeptierte Wert ist json
  • Optionen:: Andere Modellparameter, wie z.B. Temperatur, undSamen et al. (und andere Autoren)
  • System: Systemnachrichten
  • VorlageDie zu verwendende Prompt-Vorlage
  • Kontext:: Aus der vorherigen Rezension von /erzeugen Die in der Anfrage zurückgegebenen kontextbezogenen Parameter können verwendet werden, um einen kurzen Dialogspeicher der
  • Strom: Bei Einstellung auf falsch Die Antwort wird als ein einziges Antwortobjekt und nicht als ein Strom von Objekten zurückgegeben.
  • roh: Bei Einstellung auf wahr 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 Option roh parametrisch
  • erhalten_aliveLegt 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.

Ollama API Benutzerhandbuch-1

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.

Ollama API Benutzerhandbuch-2

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 falschkö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 BakllavaUm 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 falschdann kann das Streaming deaktiviert werden. Das endgültige Antwortobjekt enthält die angeforderten Statistiken und zusätzliche Daten.

parametrisch

  • Modell: (Erforderlich) Modellname
  • NachrichtenChat-Nachrichten, die als Erinnerung an den Chat verwendet werden können
  • WerkzeugeDas Modell unterstützt die Verwendung von Werkzeugen. Es ist erforderlich, dass die Strom eingestellt auf falsch

Nachricht Das Objekt hat die folgenden Felder:

  • RolleDie Rolle der Nachricht, die sein kann System, undBenutzer, undAssistent vielleicht Werkzeug
  • InhaltInhalt der Nachricht
  • Bilder(optional): eine Liste von Bildern, die in der Nachricht enthalten sein sollen (für Nachrichten wie Lava (Multimodale Modelle wie diese)
  • Werkzeug_Aufrufe(fakultativ): Liste der Werkzeuge, die das Modell verwenden möchte

Erweiterte Parameter (optional):

  • FormatFormat der Antwort: Gibt das Format der Antwort zurück. Der einzige derzeit akzeptierte Wert ist json
  • OptionenAndere Modellparameter wie z.B. Temperatur, undSamen et al. (und andere Autoren)
  • Strom: Wenn für falschDie Antwort wird als ein einziges Antwortobjekt und nicht als ein Strom von Objekten zurückgegeben.
  • erhalten_aliveLegt 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 PfadEntfernte 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

  • NameName des zu erstellenden Modells
  • Modelldatei(optional): Inhalt der Modeldatei
  • Strom(fakultativ): wenn für falschDie 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

  • ZusammenfassungSHA256 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

  • ZusammenfassungErwartete 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

  • NameName 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

  • NameName des anzuzeigenden Modells
  • Ausführlich(Optional): Bei Einstellung auf wahrund 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

  • NameName des zu ziehenden Modells
  • unsicher(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ür falschDie 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 wahrwird 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

  • Nameder 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ür falschDie 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 wahrwird 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 falschWenn 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

  • ModellName des Modells, von dem die Einbettung erzeugt werden soll
  • EingabeUm 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ür falsch und die Kontextlänge überschreitet, wird ein Fehler zurückgegeben. Der Standardwert ist wahr
  • OptionenAndere Modellparameter wie z.B. Temperatur, undSamen et al. (und andere Autoren)
  • erhalten_aliveLegt 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.
CDN1
Darf nicht ohne Genehmigung vervielfältigt werden:Chef-KI-Austauschkreis " Ollama API Benutzerhandbuch

Chef-KI-Austauschkreis

Der Chief AI Sharing Circle konzentriert sich auf das KI-Lernen und bietet umfassende KI-Lerninhalte, KI-Tools und praktische Anleitungen. Unser Ziel ist es, den Nutzern dabei zu helfen, die KI-Technologie zu beherrschen und gemeinsam das unbegrenzte Potenzial der KI durch hochwertige Inhalte und den Austausch praktischer Erfahrungen zu erkunden. Egal, ob Sie ein KI-Anfänger oder ein erfahrener Experte sind, dies ist der ideale Ort für Sie, um Wissen zu erwerben, Ihre Fähigkeiten zu verbessern und Innovationen zu verwirklichen.

Kontaktieren Sie uns
de_DE_formalDeutsch (Sie)