Utiliser l'API Ollama en JavaScript

Cet article décrit comment utiliser la fonction Ollama API . Cette documentation est destinée à aider les développeurs à démarrer rapidement et à tirer pleinement parti des capacités d'Ollama. Vous pouvez l'utiliser dans un environnement Node.js ou importer le module directement dans votre navigateur. En étudiant ce document, vous pourrez facilement intégrer Ollama dans vos projets.

 

Installer Ollama

npm i ollama

 

Utilisation

import ollama from 'ollama'
const response = await ollama.chat({
model: 'llama3.1',
messages: [{ role: 'user', content: '为什么天空是蓝色的?' }],
})
console.log(response.message.content)

Utilisation du navigateur

Pour utiliser cette bibliothèque sans Node.js, il faut importer le module navigateur.

import ollama from 'ollama/browser'

 

réponse en continu

Pour ce faire, il suffit de définir le paramètre stream: true Activer le flux de réponses de sorte qu'un appel de fonction renvoie un fichier AsyncGenerator où chaque partie est un objet dans le flux.

import ollama from 'ollama'
const message = { role: 'user', content: '为什么天空是蓝色的?' }
const response = await ollama.chat({ model: 'llama3.1', messages: [message], stream: true })
for await (const part of response) {
process.stdout.write(part.message.content)
}

 

Sortie structurée

En utilisant la bibliothèque JavaScript Ollama, l'architecture en tant que JSON est transmis à l'objet format vous pouvez éventuellement utiliser le paramètre object ou vous pouvez utiliser Zod (recommandé) pour passer le format zodToJsonSchema() Architecture de sérialisation des méthodes.

import ollama from 'ollama';
import { z } from 'zod';
import { zodToJsonSchema } from 'zod-to-json-schema';
const Country = z.object({
name: z.string(),
capital: z.string(), 
languages: z.array(z.string()),
});
const response = await ollama.chat({
model: 'llama3.1',
messages: [{ role: 'user', content: 'Tell me about Canada.' }],
format: zodToJsonSchema(Country),
});
const country = Country.parse(JSON.parse(response.message.content));
console.log(country);

 

Création de modèles

import ollama from 'ollama'
const modelfile = `
FROM llama3.1
SYSTEM "你是超级马里奥兄弟中的马里奥。"
`
await ollama.create({ model: 'example', modelfile: modelfile })

 

API

L'API de la bibliothèque JavaScript d'Ollama est conçue autour de l'API REST d'Ollama. Si vous souhaitez en savoir plus sur l'implémentation sous-jacente et les informations complètes sur les points de terminaison de l'API, nous vous recommandons de vous référer à la section Guide de l'utilisateur de l'API Ollama

chats

ollama.chat(request)
  • request <Object>Objet de la demande : objet de la demande contenant les paramètres du chat.
    • model <string> Le nom du modèle à utiliser pour le chat.
    • messages <Message[]>: tableau d'objets de messages représentant l'historique de la discussion.
      • role <string>rôle : rôle de l'expéditeur du message ("utilisateur", "système" ou "assistant").
      • content <string>Le contenu du message.
      • images <Uint8Array[] | string[]>(facultatif) L'image à inclure dans le message, soit un tableau Uint8, soit une chaîne encodée base64.
    • format <string>(Facultatif) Définir le format attendu de la réponse (json).
    • stream <boolean>(Facultatif) Si vrai, renvoie AsyncGenerator.
    • keep_alive <string | number>(Facultatif) Indique la durée pendant laquelle le modèle est chargé.
    • tools <Tool[]>(Facultatif) Une liste d'outils qui peuvent être appelés par le modèle.
    • options <Options>(Facultatif) Configurer les options d'exécution.
  • Retours. <ChatResponse>

générant

ollama.generate(request)
  • request <Object>Objet de la demande : l'objet de la demande contenant les paramètres générés.
    • model <string> Le nom du modèle à utiliser pour le chat.
    • prompt <string>: : Indications envoyées au modèle.
    • suffix <string>(Facultatif) Le suffixe est le texte qui suit le texte inséré.
    • system <string>: (Facultatif) Ignorer les messages-guides du système de modélisation.
    • template <string>(Facultatif) Remplacer les modèles.
    • raw <boolean>(Facultatif) Permet d'ignorer le modèle d'invite et de transmettre l'invite directement au modèle.
    • images <Uint8Array[] | string[]>(facultatif) L'image à inclure, soit un tableau Uint8, soit une chaîne encodée base64.
    • format <string>(Facultatif) Définir le format attendu de la réponse (json).
    • stream <boolean>(Facultatif) Si vrai, renvoie AsyncGenerator.
    • keep_alive <string | number>(Facultatif) Indique la durée pendant laquelle le modèle est chargé.
    • options <Options>(Facultatif) Configurer les options d'exécution.
  • Retours. <GenerateResponse>

modèle de traction

ollama.pull(request)
  • request <Object>Objet de la demande : objet de la demande contenant les paramètres d'extraction.
    • model <string> Le nom du modèle à extraire.
    • insecure <boolean>(Facultatif) Retirer les serveurs qui ne peuvent pas s'authentifier.
    • stream <boolean>(Facultatif) Si vrai, renvoie AsyncGenerator.
  • Retours. <ProgressResponse>

modèle à pousser

ollama.push(request)
  • request <Object>Objet de demande : objet de demande contenant des paramètres de poussée.
    • model <string> Le nom du modèle à pousser.
    • insecure <boolean>(Facultatif) Pousser vers un serveur qui ne peut pas authentifier l'identité.
    • stream <boolean>(Facultatif) Si vrai, renvoie AsyncGenerator.
  • Retours. <ProgressResponse>

Création de modèles

ollama.create(request)
  • request <Object>: Contient l'objet de la demande pour lequel les paramètres ont été créés.
    • model <string> Le nom du modèle à créer.
    • path <string>(Facultatif) Chemin d'accès au fichier modèle à créer.
    • modelfile <string>(Facultatif) Le contenu du fichier modèle à créer.
    • stream <boolean>(Facultatif) Si vrai, renvoie AsyncGenerator.
  • Retours. <ProgressResponse>

Supprimer le modèle

ollama.delete(request)
  • request <Object>Objet de la demande : objet de la demande contenant le paramètre de suppression.
    • model <string> Le nom du modèle à supprimer.
  • Retours. <StatusResponse>

Modèles de réplication

ollama.copy(request)
  • request <Object>Objet de la demande : objet de la demande contenant les paramètres de réplication.
    • source <string> Le nom du modèle à copier.
    • destination <string> Le nom du modèle à copier.
  • Retours. <StatusResponse>

Liste des modèles locaux

ollama.list()
  • Retours. <ListResponse>

Affichage des informations sur le modèle

ollama.show(request)
  • request <Object>Objet de la demande : objet de la demande contenant les paramètres d'affichage.
    • model <string> Le nom du modèle à afficher.
    • system <string>(Facultatif) Remplace la valeur de retour de l'invite du système de modélisation.
    • template <string>(Facultatif) Remplacer la valeur de retour du modèle.
    • options <Options>(Facultatif) Configurer les options d'exécution.
  • Retours. <ShowResponse>

Générer l'intégration

ollama.embed(request)
  • request <Object>Objet de la demande : objet de la demande contenant des paramètres intégrés.
    • model <string> Le nom du modèle utilisé pour générer l'intégration.
    • input <string> | <string[]>: Entrée utilisée pour générer l'encapsulation.
    • truncate <boolean>(Facultatif) Tronquer l'entrée pour qu'elle corresponde à la longueur maximale du contexte prise en charge par le modèle.
    • keep_alive <string | number>(Facultatif) Indique la durée pendant laquelle le modèle est chargé.
    • options <Options>(Facultatif) Configurer les options d'exécution.
  • Retours. <EmbedResponse>

cours

ollama.ps()
  • Retours. <ListResponse>

 

Clients sur mesure

Les clients personnalisés peuvent être créés à l'aide des champs suivants :

  • host <string>(Facultatif) Adresse de l'hôte Ollama. Par défaut. "http://127.0.0.1:11434".
  • fetch <Object>: (Facultatif) La bibliothèque de récupération utilisée pour faire des requêtes à l'hôte Ollama.
import { Ollama } from 'ollama'
const ollama = new Ollama({ host: 'http://127.0.0.1:11434' })
const response = await ollama.chat({
model: 'llama3.1',
messages: [{ role: 'user', content: '为什么天空是蓝色的?' }],
})

 

construire (qqch abstrait)

Pour construire le fichier de projet, exécutez :

npm run build

 

 

Se référer à la documentation :ollama-js

© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...