Utilización de la API de Ollama en JavaScript
Tutoriales prácticos sobre IAPublicado hace 6 meses Círculo de intercambio de inteligencia artificial 9.4K 00
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, devuelveAsyncGenerator
.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, devuelveAsyncGenerator
.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, devuelveAsyncGenerator
.
- 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, devuelveAsyncGenerator
.
- 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, devuelveAsyncGenerator
.
- 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
Derechos de autor del artículo Círculo de intercambio de inteligencia artificial Todos, por favor no reproducir sin permiso.
Artículos relacionados
Sin comentarios...