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完!