Использование 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
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...