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, retornaAsyncGenerator
.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, retornaAsyncGenerator
.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, retornaAsyncGenerator
.
- 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, retornaAsyncGenerator
.
- 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, retornaAsyncGenerator
.
- 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