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 @langchain/core
yarn add @langchain/ollama @langchain/core
pnpm 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 参考