Aprendizagem pessoal com IA
e orientação prática
TRAE

Usando a API Ollama em JavaScript

Este artigo descreve como usar o Ollama API . Esta documentação tem o objetivo de ajudar os desenvolvedores a começar rapidamente e aproveitar ao máximo os recursos do Ollama. Você pode usá-lo em um ambiente Node.js ou importar o módulo diretamente no seu navegador. Ao estudar este documento, você poderá integrar facilmente o Ollama aos seus projetos.

 

Instalar Ollama

npm i ollama

 

Uso

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

Uso do navegador

Para usar essa biblioteca sem o Node.js, importe o módulo do navegador.

import ollama from 'ollama/browser'

 

resposta de streaming

Isso pode ser feito definindo o stream: true Habilite o streaming de resposta para que uma chamada de função retorne um AsyncGenerator em que cada parte é um objeto no fluxo.

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

 

Saída estruturada

Usando a biblioteca Ollama JavaScript, a arquitetura como um JSON é passado para o objeto format você pode, opcionalmente, usar o parâmetro object ou você pode usar o Zod (recomendado) para passar o formato zodToJsonSchema() Arquitetura de serialização 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);

 

Criação de modelos

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

 

API

A API da biblioteca JavaScript da Ollama foi projetada com base na API REST da Ollama. Se você quiser saber mais sobre a implementação subjacente e as informações completas do ponto de extremidade da API, recomendamos consultar a seção Guia do usuário da API da Ollama

bate-papos

ollama.chat(request)
  • request <Object>Objeto de solicitação que contém parâmetros de bate-papo.
    • model <string> O nome do modelo a ser usado para o bate-papo.
    • messages <Message[]>Objetos de mensagem: Uma matriz de objetos de mensagem que representam o histórico de bate-papo.
      • role <string>Função: A função do remetente da mensagem ("usuário", "sistema" ou "assistente").
      • content <string>Conteúdo da mensagem: O conteúdo da mensagem.
      • images <Uint8Array[] | string[]>Imagem: (Opcional) A imagem a ser incluída na mensagem, seja um Uint8Array ou uma string codificada em base64.
    • format <string>(Opcional) Defina o formato esperado da resposta (json).
    • stream <boolean>(Opcional) Se verdadeiro, retorna AsyncGenerator.
    • keep_alive <string | number>(Opcional) Mantém o período de tempo em que o modelo é carregado.
    • tools <Tool[]>(Opcional) Uma lista de ferramentas que podem ser chamadas pelo modelo.
    • options <Options>(Opcional) Configure as opções de tempo de execução.
  • Devoluções. <ChatResponse>

gerando

ollama.generate(request)
  • request <Object>Objeto de solicitação que contém os parâmetros gerados.
    • model <string> O nome do modelo a ser usado para o bate-papo.
    • prompt <string>:: Dicas enviadas ao modelo.
    • suffix <string>(Opcional) O sufixo é o texto que segue o texto inserido.
    • system <string>(Opcional) Substituir os avisos do sistema do modelo.
    • template <string>(Opcional) Substituir modelos de modelos.
    • raw <boolean>(Opcional) Ignora o modelo de prompt e passa o prompt diretamente para o modelo.
    • images <Uint8Array[] | string[]>Imagem: (Opcional) A imagem a ser incluída, seja um Uint8Array ou uma string codificada em base64.
    • format <string>(Opcional) Defina o formato esperado da resposta (json).
    • stream <boolean>(Opcional) Se verdadeiro, retorna AsyncGenerator.
    • keep_alive <string | number>(Opcional) Mantém o período de tempo em que o modelo é carregado.
    • options <Options>(Opcional) Configure as opções de tempo de execução.
  • Devoluções. <GenerateResponse>

modelo de tração

ollama.pull(request)
  • request <Object>Objeto de solicitação que contém os parâmetros pull.
    • model <string> O nome do modelo a ser extraído.
    • insecure <boolean>(Opcional) Extrair de servidores que não podem se autenticar.
    • stream <boolean>(Opcional) Se verdadeiro, retorna AsyncGenerator.
  • Devoluções. <ProgressResponse>

modelo push

ollama.push(request)
  • request <Object>Objeto de solicitação que contém parâmetros de envio.
    • model <string> O nome do modelo a ser enviado.
    • insecure <boolean>(Opcional) Enviar para um servidor que não pode autenticar a identidade.
    • stream <boolean>(Opcional) Se verdadeiro, retorna AsyncGenerator.
  • Devoluções. <ProgressResponse>

Criação de modelos

ollama.create(request)
  • request <Object>Objeto de solicitação: contém o objeto de solicitação para o qual os parâmetros foram criados.
    • model <string> O nome do modelo a ser criado.
    • path <string>(Opcional) Caminho para o arquivo de modelo a ser criado.
    • modelfile <string>(Opcional) O conteúdo do arquivo de modelo a ser criado.
    • stream <boolean>(Opcional) Se verdadeiro, retorna AsyncGenerator.
  • Devoluções. <ProgressResponse>

Excluir modelo

ollama.delete(request)
  • request <Object>Objeto de solicitação que contém o parâmetro de exclusão.
    • model <string> O nome do modelo a ser excluído.
  • Devoluções. <StatusResponse>

Modelos de replicação

ollama.copy(request)
  • request <Object>Objeto de solicitação que contém os parâmetros de replicação.
    • source <string> O nome do modelo a ser copiado.
    • destination <string> O nome do modelo para o qual copiar.
  • Devoluções. <StatusResponse>

Lista de modelos locais

ollama.list()
  • Devoluções. <ListResponse>

Exibição de informações do modelo

ollama.show(request)
  • request <Object>Objeto de solicitação que contém os parâmetros de exibição.
    • model <string> O nome do modelo a ser exibido.
    • system <string>(Opcional) Substitui o valor de retorno do prompt do sistema do modelo.
    • template <string>(Opcional) Substitui o valor de retorno do modelo.
    • options <Options>(Opcional) Configure as opções de tempo de execução.
  • Devoluções. <ShowResponse>

Gerar incorporação

ollama.embed(request)
  • request <Object>Objeto de solicitação que contém parâmetros incorporados.
    • model <string> O nome do modelo usado para gerar a incorporação.
    • input <string> | <string[]>Entrada usada para gerar a incorporação.
    • truncate <boolean>(Opcional) Truncar a entrada para ajustá-la ao comprimento máximo de contexto suportado pelo modelo.
    • keep_alive <string | number>(Opcional) Mantém o período de tempo em que o modelo é carregado.
    • options <Options>(Opcional) Configure as opções de tempo de execução.
  • Devoluções. <EmbedResponse>

curso

ollama.ps()
  • Devoluções. <ListResponse>

 

Clientes personalizados

Clientes personalizados podem ser criados usando os seguintes campos:

  • host <string>(Opcional) Endereço do host Ollama. Padrão. "http://127.0.0.1:11434".
  • fetch <Object>Biblioteca de busca: (Opcional) A biblioteca de busca usada para fazer solicitações ao 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 abstrato)

Para criar o arquivo de projeto, execute:

npm run build

 


 

Consulte a documentação:ollama-js

Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " Usando a API Ollama em JavaScript
pt_BRPortuguês do Brasil