Utilización de la API de Ollama en JavaScript

Este artículo describe cómo utilizar la función Ollama API . Esta documentación está pensada para ayudar a los desarrolladores a empezar rápidamente y aprovechar al máximo las capacidades de Ollama. Puede utilizarlo en un entorno Node.js o importar el módulo directamente en su navegador. Estudiando este documento, podrás integrar fácilmente Ollama en tus proyectos.

 

Instalar Ollama

npm i ollama

 

Utilización

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

Uso del navegador

Para utilizar esta biblioteca sin Node.js, importa el módulo del navegador.

import ollama from 'ollama/browser'

 

respuesta en tiempo real

Esto se puede hacer configurando la opción stream: true Habilitar la transmisión de respuestas para que una llamada a una función devuelva un AsyncGenerator donde cada parte es un objeto del flujo.

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)
}

 

Salida estructurada

Utilizando la biblioteca Ollama JavaScript, la arquitectura como un JSON se pasa al objeto format puede utilizar opcionalmente el parámetro object o puede utilizar Zod (recomendado) para pasar el formato zodToJsonSchema() Arquitectura de serialización de métodos.

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);

 

Creación de modelos

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

 

API

La API de la biblioteca JavaScript de Ollama está diseñada en torno a la API REST de Ollama. Si desea obtener más información sobre la implementación subyacente y la información completa de los puntos finales de la API, le recomendamos que consulte el documento Guía del usuario de la API de Ollama

chats

ollama.chat(request)
  • request <Object>Objeto de petición que contiene parámetros de chat.
    • model <string> El nombre del modelo que se utilizará para el chat.
    • messages <Message[]>: Un array de objetos de mensaje que representan el historial de chat.
      • role <string>Función del remitente del mensaje ("usuario", "sistema" o "asistente").
      • content <string>Contenido del mensaje.
      • images <Uint8Array[] | string[]>(Opcional) La imagen a incluir en el mensaje, ya sea un Uint8Array o una cadena codificada en base64.
    • format <string>: (Opcional) Establece el formato esperado de la respuesta (json).
    • stream <boolean>: (Opcional) Si es verdadero, devuelve AsyncGenerator.
    • keep_alive <string | number>(Opcional) Indica la duración de la carga del modelo.
    • tools <Tool[]>(Opcional) Una lista de herramientas que pueden ser llamadas por el modelo.
    • options <Options>(Opcional) Configure las opciones de tiempo de ejecución.
  • Devoluciones. <ChatResponse>

generando

ollama.generate(request)
  • request <Object>: El objeto de solicitud que contiene los parámetros generados.
    • model <string> El nombre del modelo que se utilizará para el chat.
    • prompt <string>:: Sugerencias enviadas al modelo.
    • suffix <string>(Opcional) El sufijo es el texto que sigue al texto insertado.
    • system <string>(Opcional) Anula las indicaciones del sistema del modelo.
    • template <string>(Opcional) Anular plantillas de modelo.
    • raw <boolean>(Opcional) Omite la plantilla de aviso y pasa el aviso directamente al modelo.
    • images <Uint8Array[] | string[]>(Opcional) La imagen a incluir, ya sea un Uint8Array o una cadena codificada en base64.
    • format <string>: (Opcional) Establece el formato esperado de la respuesta (json).
    • stream <boolean>: (Opcional) Si es verdadero, devuelve AsyncGenerator.
    • keep_alive <string | number>(Opcional) Indica la duración de la carga del modelo.
    • options <Options>(Opcional) Configure las opciones de tiempo de ejecución.
  • Devoluciones. <GenerateResponse>

modelo pull

ollama.pull(request)
  • request <Object>: El objeto de solicitud que contiene los parámetros pull.
    • model <string> El nombre del modelo a extraer.
    • insecure <boolean>(Opcional) Extraer de los servidores que no se pueden autenticar.
    • stream <boolean>: (Opcional) Si es verdadero, devuelve AsyncGenerator.
  • Devoluciones. <ProgressResponse>

modelo push

ollama.push(request)
  • request <Object>Objeto de petición que contiene parámetros push.
    • model <string> El nombre del modelo a empujar.
    • insecure <boolean>(Opcional) Enviar a un servidor que no puede autenticar la identidad.
    • stream <boolean>: (Opcional) Si es verdadero, devuelve AsyncGenerator.
  • Devoluciones. <ProgressResponse>

Creación de modelos

ollama.create(request)
  • request <Object>: Contiene el objeto de solicitud para el que se crearon los parámetros.
    • model <string> El nombre del modelo a crear.
    • path <string>(Opcional) Ruta de acceso al archivo de modelo que se va a crear.
    • modelfile <string>(Opcional) El contenido del fichero modelo que se va a crear.
    • stream <boolean>: (Opcional) Si es verdadero, devuelve AsyncGenerator.
  • Devoluciones. <ProgressResponse>

Borrar modelo

ollama.delete(request)
  • request <Object>: El objeto de petición que contiene el parámetro de borrado.
    • model <string> El nombre del modelo a eliminar.
  • Devoluciones. <StatusResponse>

Modelos de réplica

ollama.copy(request)
  • request <Object>Objeto de solicitud que contiene los parámetros de replicación.
    • source <string> El nombre del modelo del que copiar.
    • destination <string> El nombre del modelo al que copiar.
  • Devoluciones. <StatusResponse>

Lista de modelos locales

ollama.list()
  • Devoluciones. <ListResponse>

Visualización de la información sobre el modelo

ollama.show(request)
  • request <Object>Objeto de solicitud que contiene los parámetros de visualización.
    • model <string> El nombre del modelo a mostrar.
    • system <string>(Opcional) Anula el valor de retorno del sistema del modelo.
    • template <string>(Opcional) Anula el valor de retorno de la plantilla del modelo.
    • options <Options>(Opcional) Configure las opciones de tiempo de ejecución.
  • Devoluciones. <ShowResponse>

Generar incrustación

ollama.embed(request)
  • request <Object>Objeto de solicitud que contiene parámetros incrustados.
    • model <string> Nombre del modelo utilizado para generar la incrustación.
    • input <string> | <string[]>Entrada utilizada para generar la incrustación.
    • truncate <boolean>(Opcional) Trunca la entrada para ajustarla a la longitud máxima de contexto soportada por el modelo.
    • keep_alive <string | number>(Opcional) Indica la duración de la carga del modelo.
    • options <Options>(Opcional) Configure las opciones de tiempo de ejecución.
  • Devoluciones. <EmbedResponse>

curso

ollama.ps()
  • Devoluciones. <ListResponse>

 

Clientes a medida

Se pueden crear clientes personalizados utilizando los siguientes campos:

  • host <string>: (Opcional) Dirección de host de Ollama. Por defecto. "http://127.0.0.1:11434".
  • fetch <Object>(Opcional) La biblioteca fetch utilizada para realizar peticiones al host 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: '为什么天空是蓝色的?' }],
})

 

construir (algo abstracto)

Para crear el archivo de proyecto, ejecute

npm run build

 

 

Consulte la documentación:ollama-js

© declaración de copyright

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...