Utilización de la API de Ollama en JavaScript
Tutoriales prácticos sobre IAPublicado hace 8 meses Círculo de intercambio de inteligencia artificial 25.6K 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...




