Ollama JavaScript 库使用指南

发布时间:2024-12-28 13:40:31

Ollama JavaScript 库是与 Ollama 集成 JavaScript 项目的最简单方法之一。


安装准备

首先,在项目中安装 Ollama JavaScript 库:

npm i ollama


基本用法

通过以下方式引入 Ollama 库:

import ollama from 'ollama'


然后,使用 ollama.chat() 方法与模型进行交互:

const response = await ollama.chat({
  model: 'llama3.1',  // 使用的模型
  messages: [{ role: 'user', content: 'Why is the sky blue?' }],  // 用户消息
})

console.log(response.message.content)  // 打印模型返回的消息

注:代码将向名为 llama3.1 的模型发送一个问题,等待响应并打印出模型的回答。


浏览器环境使用


如果在浏览器环境下,需要导入浏览器模块:

import ollama from 'ollama/browser'


流式响应

Ollama 支持流式响应,这意味着模型的回答可以逐部分返回,而不是一次性返回所有内容。您可以通过设置 stream: true 来启用这一功能。


const message = { role: 'user', content: 'Why is the sky blue?' }
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.create() 方法:

const modelfile = `
FROM llama3.1
SYSTEM "You are Mario from Super Mario Bros."
`
await ollama.create({ model: 'example', modelfile: modelfile })

这里,我们创建了一个新的模型,指定该模型的配置文件内容。


API 参考


用于与模型进行对话的方法:

ollama.chat(request)


需要传递一个包含聊天参数的请求对象:
model:选择要使用的模型名称。

messages:包含消息的数组,表示聊天历史。

role:消息发送者的角色(user、system 或 assistant)。

content:消息内容。

stream:当设置为 true 时,返回一个异步生成器,逐部分接收响应。


const response = await ollama.chat({
  model: 'llama3.1',
  messages: [{ role: 'user', content: 'How are you?' }],
  stream: true
})


这个方法用于生成文本:

ollama.generate(request)


可以通过给定的提示(prompt)来请求模型生成内容:

const response = await ollama.generate({
  model: 'llama3.1',
  prompt: 'Tell me a joke about programming.'
})
console.log(response.generatedText)


这个方法用于创建新的模型:

ollama.create(request)


可以通过提供模型配置文件内容来创建自定义模型:

    const modelfile = `
        FROM qwen2.5:14b
        SYSTEM SYSTEM "你是《原神》中的纳西妲,须弥的神明。你温柔、善良,语气平和、清新,总是带着一丝温暖的微笑。你非常聪明,善于理解复杂的事物,喜欢通过耐心的解释帮助别人。你关心须弥的人们,充满了对正义的追求,同时你也有调皮和好奇的一面,特别对外面的世界充满了探索欲。你喜欢与人交流,语气总是柔和而富有同情心。你和自然、草元素有着深刻的联系,你的心灵与大地和植物息息相关,你可以通过大自然感知世界。"
        `
    await ollama.create({ model: 'Nahida', modelfile: modelfile })
    console.log("模型创建成功!");


删除指定的模型:

ollama.delete(request)
const response = await ollama.delete({ model: 'example' })
console.log(response)


用于复制模型:


ollama.copy(request)
const response = await ollama.copy({
  source: 'llama3.1',
  destination: 'llama3.1_copy'
})
console.log(response)


更多功能与方法

Ollama JavaScript 库还提供了许多其他有用的功能:


ollama.pull(request):从服务器拉取模型。
ollama.push(request):将模型推送到服务器。
ollama.list():列出所有可用的模型。
ollama.show(request):显示模型的详细信息。
ollama.embed(request):生成文本嵌入。

自定义客户端


可以创建自定义客户端来与 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: 'Why is the sky blue?' }],
})
console.log(response.message.content)


构建项目

如果需要构建项目文件,执行这个命令:

npm run build

完!