Ollama
这将帮助您开始使用 LangChain 使用 Ollama文本补全模型 (LLMs)。有关Ollama
功能和配置选项的详细文档,请参阅API 参考。
概述
集成详细信息
Ollama 允许您在本地运行开源大型语言模型,例如 Llama 3。
Ollama 将模型权重、配置和数据捆绑到一个单一软件包中,由 Modelfile 定义。它优化了设置和配置细节,包括 GPU 使用。
此示例介绍如何使用 LangChain 与 Ollama 运行的 Llama 2 7b 实例交互。有关支持模型和模型变体的完整列表,请参阅Ollama 模型库。
类 | 包 | 本地 | 可序列化 | PY 支持 | 包下载 | 包最新版本 |
---|---|---|---|---|---|---|
Ollama | @langchain/ollama | ✅ | ❌ | ✅ |
设置
要访问 Ollama 嵌入模型,您需要按照这些说明安装 Ollama,并安装@langchain/ollama
集成包。
凭据
如果您希望获得模型调用的自动跟踪,您也可以通过取消注释下面的代码来设置您的LangSmith API 密钥。
# export LANGCHAIN_TRACING_V2="true"
# export LANGCHAIN_API_KEY="your-api-key"
安装
LangChain Ollama 集成位于@langchain/ollama
包中。
提示
有关安装集成包的一般说明,请参阅此部分。
- npm
- yarn
- pnpm
npm i @langchain/ollama
yarn add @langchain/ollama
pnpm add @langchain/ollama
实例化
现在我们可以实例化我们的模型对象并生成聊天补全。
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 参考