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




