Использование API Ollama в JavaScript

В этой статье описано, как использовать Оллама API . Эта документация призвана помочь разработчикам быстро приступить к работе и в полной мере использовать возможности Ollama. Вы можете использовать его в среде Node.js или импортировать модуль непосредственно в браузер. Изучив этот документ, вы сможете легко интегрировать Ollama в свои проекты.

 

Установите Ollama

npm i ollama

 

Использование

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

Использование браузеров

Чтобы использовать эту библиотеку без Node.js, импортируйте модуль браузера.

import ollama from 'ollama/browser'

 

потоковый ответ

Это можно сделать, установив параметр stream: true Включите потоковую передачу ответов, чтобы вызов функции возвращал AsyncGenerator где каждая часть - это объект в потоке.

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

 

Структурированный вывод

Используя библиотеку Ollama JavaScript, архитектура как JSON объект передается в format параметр, вы можете дополнительно использовать object формат, или вы можете использовать Zod (рекомендуется) для передачи формата zodToJsonSchema() Архитектура сериализации методов.

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

 

Создание моделей

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

 

API

API библиотеки Ollama JavaScript разработан на основе API Ollama REST. Если вы хотите узнать больше о базовой реализации и полной информации о конечных точках API, мы рекомендуем обратиться к разделу Руководство пользователя API Ollama

чаты

ollama.chat(request)
  • request <Object>: Объект запроса, содержащий параметры чата.
    • model <string> Имя модели, которая будет использоваться для чата.
    • messages <Message[]>: Массив объектов сообщений, представляющих историю чата.
      • role <string>: Роль отправителя сообщения ("пользователь", "система" или "помощник").
      • content <string>: Содержание сообщения.
      • images <Uint8Array[] | string[]>: (Необязательно) Изображение для включения в сообщение, либо массив Uint8Array, либо строка в кодировке base64.
    • format <string>: (Необязательно) Задайте ожидаемый формат ответа (см.json).
    • stream <boolean>: (Необязательно) Если true, возвращает AsyncGenerator.
    • keep_alive <string | number>: (Необязательно) Указывает продолжительность загрузки модели.
    • tools <Tool[]>: (Необязательно) Список инструментов, которые могут быть вызваны моделью.
    • options <Options>: (Необязательно) Настройте параметры времени выполнения.
  • Возвращается. <ChatResponse>

создание

ollama.generate(request)
  • request <Object>: Объект запроса, содержащий сгенерированные параметры.
    • model <string> Имя модели, которая будет использоваться для чата.
    • prompt <string>:: Подсказки, отправленные модели.
    • suffix <string>: (Необязательно) Суффикс - это текст, который следует за вставленным текстом.
    • system <string>: (Необязательно) Отмена системных подсказок модели.
    • template <string>: (Необязательно) Переопределяет шаблоны моделей.
    • raw <boolean>: (Необязательно) Обходит шаблон подсказки и передает подсказку непосредственно в модель.
    • images <Uint8Array[] | string[]>: (Необязательно) Изображение, которое нужно включить, либо массив Uint8Array, либо строка в кодировке base64.
    • format <string>: (Необязательно) Задайте ожидаемый формат ответа (см.json).
    • stream <boolean>: (Необязательно) Если true, возвращает AsyncGenerator.
    • keep_alive <string | number>: (Необязательно) Указывает продолжительность загрузки модели.
    • options <Options>: (Необязательно) Настройте параметры времени выполнения.
  • Возвращается. <GenerateResponse>

модель тяги

ollama.pull(request)
  • request <Object>: Объект запроса, содержащий параметры извлечения.
    • model <string> Имя модели, которую нужно извлечь.
    • insecure <boolean>: (Необязательно) Вытаскивание с серверов, которые не могут пройти аутентификацию.
    • stream <boolean>: (Необязательно) Если true, возвращает AsyncGenerator.
  • Возвращается. <ProgressResponse>

нажимная модель

ollama.push(request)
  • request <Object>: Объект запроса, содержащий параметры push.
    • model <string> Имя модели, которую нужно нажать.
    • insecure <boolean>: (Необязательно) Передача на сервер, который не может проверить подлинность идентификатора.
    • stream <boolean>: (Необязательно) Если true, возвращает AsyncGenerator.
  • Возвращается. <ProgressResponse>

Создание моделей

ollama.create(request)
  • request <Object>: Содержит объект запроса, для которого были созданы параметры.
    • model <string> Имя создаваемой модели.
    • path <string>: (Необязательно) Путь к создаваемому файлу модели.
    • modelfile <string>: (Необязательно) Содержимое создаваемого файла модели.
    • stream <boolean>: (Необязательно) Если true, возвращает AsyncGenerator.
  • Возвращается. <ProgressResponse>

Удалить модель

ollama.delete(request)
  • request <Object>: Объект запроса, содержащий параметр удаления.
    • model <string> Имя удаляемой модели.
  • Возвращается. <StatusResponse>

Модели репликации

ollama.copy(request)
  • request <Object>: Объект запроса, содержащий параметры репликации.
    • source <string> Имя модели, из которой нужно скопировать.
    • destination <string> Имя модели, в которую нужно скопировать.
  • Возвращается. <StatusResponse>

Список местных моделей

ollama.list()
  • Возвращается. <ListResponse>

Отображение информации о модели

ollama.show(request)
  • request <Object>: Объект запроса, содержащий параметры отображения.
    • model <string> Имя модели, которая будет отображаться.
    • system <string>: (Необязательно) Переопределяет возвращаемое значение системного запроса модели.
    • template <string>: (Необязательно) Переопределяет возвращаемое значение шаблона модели.
    • options <Options>: (Необязательно) Настройте параметры времени выполнения.
  • Возвращается. <ShowResponse>

Создать встраивание

ollama.embed(request)
  • request <Object>: Объект запроса, содержащий встроенные параметры.
    • model <string> Имя модели, используемой для создания вкраплений.
    • input <string> | <string[]>: Входные данные, используемые для генерации вкраплений.
    • truncate <boolean>: (Необязательно) Усечение входных данных для соответствия максимальной длине контекста, поддерживаемой моделью.
    • keep_alive <string | number>: (Необязательно) Указывает продолжительность загрузки модели.
    • options <Options>: (Необязательно) Настройте параметры времени выполнения.
  • Возвращается. <EmbedResponse>

курс

ollama.ps()
  • Возвращается. <ListResponse>

 

Индивидуальные клиенты

Пользовательские клиенты могут быть созданы с помощью следующих полей:

  • host <string>: (Необязательно) Адрес хоста Ollama. По умолчанию. "http://127.0.0.1:11434".
  • fetch <Object>: (Необязательно) Библиотека fetch, используемая для выполнения запросов к хосту 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: '为什么天空是蓝色的?' }],
})

 

конструировать (что-л. абстрактное)

Чтобы собрать файл проекта, выполните команду:

npm run build

 

 

Обратитесь к документации:ollama-js

© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...