跳至主要内容

Ollama

注意

您当前位于一个文档页面,该页面记录了将 Ollama 模型用作 文本补全模型。Ollama 上提供的许多流行模型是 聊天补全模型

您可能正在寻找 此页面

这将帮助您开始使用 LangChain 的 Ollama 文本补全模型 (LLMs)。有关 Ollama 功能和配置选项的详细文档,请参阅 API 参考

概述

集成详细信息

Ollama 允许您在本地运行开源大型语言模型,例如 Llama 3。

Ollama 将模型权重、配置和数据捆绑到一个包中,由 Modelfile 定义。它优化了设置和配置详细信息,包括 GPU 使用情况。

此示例介绍了如何使用 LangChain 与 Ollama 运行的 Llama 2 7b 实例进行交互。有关支持模型和模型变体的完整列表,请参阅 Ollama 模型库

本地可序列化PY 支持包下载包最新
Ollama@langchain/ollamaNPM - DownloadsNPM - Version

设置

要访问 Ollama 嵌入模型,您需要按照 这些说明 安装 Ollama,并安装 @langchain/ollama 集成包。

凭据

如果您想自动跟踪模型调用,还可以通过取消下面的注释来设置您的 LangSmith API 密钥

# export LANGCHAIN_TRACING_V2="true"
# export LANGCHAIN_API_KEY="your-api-key"

安装

LangChain Ollama 集成位于 @langchain/ollama 包中

提示

有关安装集成包的一般说明,请参见 本节

yarn add @langchain/ollama @langchain/core

实例化

现在我们可以实例化我们的模型对象并生成聊天补全

import { Ollama } from "@langchain/ollama";

const llm = new Ollama({
model: "llama3", // Default value
temperature: 0,
maxRetries: 2,
// other params...
});

调用

const inputText = "Ollama is an AI company that ";

const completion = await llm.invoke(inputText);
completion;
I think you meant to say "Olivia" instead of "Ollama". Olivia is not a well-known AI company, but there are several other AI companies with similar names. Here are a few examples:

* Oliva AI: A startup that uses artificial intelligence to help businesses optimize their operations and improve customer experiences.
* Olivia Technologies: A company that develops AI-powered solutions for industries such as healthcare, finance, and education.
* Olivia.ai: A platform that uses AI to help businesses automate their workflows and improve productivity.

If you meant something else by "Ollama", please let me know and I'll do my best to help!

链式

我们可以 我们的补全模型与提示模板链接,如下所示

import { PromptTemplate } from "@langchain/core/prompts";

const prompt = PromptTemplate.fromTemplate(
"How to say {input} in {output_language}:\n"
);

const chain = prompt.pipe(llm);
await chain.invoke({
output_language: "German",
input: "I love programming.",
});
A programmer's passion!

In German, you can express your love for programming with the following phrases:

1. Ich liebe Programmieren: This is a direct translation of "I love programming."
2. Programmieren ist meine Leidenschaft: This means "Programming is my passion."
3. Ich bin total verliebt in Programmieren: This translates to "I'm totally in love with programming."
4. Programmieren macht mich glücklich: This phrase means "Programming makes me happy" or "I'm joyful when programming."

If you want to be more casual, you can use:

1. Ich bin ein Programmier-Fan: This is a playful way to say "I'm a fan of programming."
2. Programmieren ist mein Ding: This translates to "Programming is my thing" or "I'm all about programming."

Remember that German has different forms for formal and informal speech, so adjust the phrases according to your relationship with the person you're speaking to!

多模态模型

Ollama 在 0.1.15 及更高版本中支持开源多模态模型,例如 LLaVA。您可以将 base64 编码的图像数据绑定到多模态模型以用作上下文,如下所示

import { Ollama } from "@langchain/ollama";
import * as fs from "node:fs/promises";

const imageData = await fs.readFile("../../../../../examples/hotdog.jpg");

const model = new Ollama({
model: "llava",
}).bind({
images: [imageData.toString("base64")],
});

const res = await model.invoke("What's in this image?");
console.log(res);
 The image shows a hot dog placed inside what appears to be a bun that has been specially prepared to resemble a hot dog bun. This is an example of a creative or novelty food item, where the bread used for the bun looks similar to a cooked hot dog itself, playing on the name "hot dog." The image also shows the typical garnishes like ketchup and mustard on the side.

API 参考

有关所有 Ollama 功能和配置的详细文档,请前往 API 参考


此页面有帮助吗?


您也可以在 GitHub 上留下详细的反馈 在 GitHub 上.