跳到主要内容

Ollama

注意

您目前正在浏览的页面是关于将 Ollama 模型用作文本补全模型的文档。Ollama 上提供的许多流行模型是聊天补全模型

您可能正在寻找这个页面

这将帮助您开始使用 LangChain 和 Ollama 文本补全模型 (LLM)。有关 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 LANGSMITH_TRACING="true"
# export LANGSMITH_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 上.