Construção de Ollama
Instalação de Ollama
Github更多教程
Porta padrão: 11434
Comando Shell
Lista de modelos
ollama list
Modelos em
ollama ps
Mostrar detalhes do modelo
ollama show llama3.1
Acesso
RESTful API (em inglês)
curl http://localhost:11434/api/generate -d '{
"model": "llama3.1",
"prompt":"Why is the sky blue?",
"stream": false
}'
Interfaces compatíveis com OpenAI
Versão LangChain-TS
-
- Biblioteca de instalação * *
pnpm add @langchain/ollama
Iniciação rápida
import { StringOutputParser } from "@langchain/core/output_parsers";
import { ChatPromptTemplate } from "@langchain/core/prompts";
import { ChatOllama } from "@langchain/ollama";
export async function main() {
const model = new ChatOllama({
baseUrl: "http://ai.cdatatec.cn:11434",
model: "llama3.1",
temperature: 0,
});
const prompt = ChatPromptTemplate.fromTemplate(
"讲一个关于{topic}的笑话"
);
const parser = new StringOutputParser();
const chain = prompt.pipe(model).pipe(parser);
const stream = await chain.stream({
topic: "parrot",
});
for await (const chunk of stream) {
console.log(`${chunk}|`);
}
}
Configurar o endereço do servidor Ollama via baseUrl
- Multimodal * *
import { ChatOllama } from "@langchain/ollama";
import { HumanMessage } from "@langchain/core/messages";
import * as fs from "fs/promises";
export async function main() {
console.log(process.cwd());
const imageData = await fs.readFile("src/ollama/hot-dog.png");
const llmForMultiModal = new ChatOllama({
model: "llava-llama3",
baseUrl: "http://ai.cdatatec.cn:11434",
});
const multiModalRes = await llmForMultiModal.invoke([
new HumanMessage({
content: [
{
type: "text",
text: "图片里有什么?",
},
{
type: "image_url",
image_url: `data:image/jpeg;base64,${imageData.toString("base64")}`,
},
],
}),
]);
console.log(multiModalRes);
console.log(multiModalRes.content);
}
Modelo comum
Apoio à visão
模型 | 描述 | Sizes |
---|---|---|
llava | 一种新颖的端到端训练的大型多模态模型,结合了视觉编码器和Vicuna,用于通用视觉和语言理解。 | 7B, 13B, 34B |
llava-llama3 | 一个从Llama 3 Instruct微调而来的LLaVA模型,在多个基准测试中表现更佳。 | 8B |
llava-phi3 | 一个从Phi 3 Mini微调而来的新型小型LLaVA模型。 | 3B |
moondream | moondream2是一个小型视觉语言模型,专为在边缘设备上高效运行而设计。 | Not specified |
bakllava | 一个多模态模型,由Mistral 7B基础模型和LLaVA架构增强而成。 | 7B |
Suporte a função Call
模型 | 参数 | 描述 |
---|---|---|
mistral | 7B | Mistral AI发布的7B模型,更新到0.3版本。 |
llama3.1 | 8B, 70B | Llama 3.1是Meta的新型最先进模型 |
mixtral | 8x7B, 8x22B | Mistral AI开发的具有开放权重的专家混合(MoE)模型集,有8x7B和8x22B两种参数规模。 |
mistral-nemo | 12B | Mistral AI与NVIDIA合作开发的最先进12B模型,具有128k的上下文长度。 |
command-r-plus | 104B | Command R+是一个强大、可扩展的大型语言模型,专为擅长现实世界的企业用例而构建。 |
mistral-large | 123B | Mistral Large 2是Mistral的新旗舰模型,在代码生成、数学和推理方面能力显著提升,具有128k的上下文窗口,并支持数十种语言。 |
llama3-groq-tool-use | 8B, 70B | Groq开发的一系列模型,代表了开源AI在工具使用/函数调用能力方面的重大进步。 |
hermes3 | 8B | Hermes 3是Nous Research开发的旗舰Hermes系列LLM的最新版本。 |
firefunction-v2 | 70B | 基于Llama 3的开放权重函数调用模型,其函数调用能力可与GPT-4相媲美。 |