MistralAI
想要在本地运行 Mistral 的模型?查看我们的Ollama 集成。
Mistral AI 是一个平台,提供对其强大的 开源模型 的托管服务。
这将帮助你使用 LangChain 开始使用 MistralAI 补全模型 (LLMs)。有关 MistralAI
功能和配置选项的详细文档,请参阅 API 参考。
概述
集成详情
类 | 包 | 本地 | 可序列化 | PY 支持 | 包下载 | 包最新 |
---|---|---|---|---|---|---|
MistralAI | @langchain/mistralai | ❌ | ✅ | ❌ |
设置
要访问 MistralAI 模型,你需要创建一个 MistralAI 帐户,获取 API 密钥,并安装 @langchain/mistralai
集成包。
凭据
前往 console.mistral.ai 注册 MistralAI 并生成 API 密钥。完成后,设置 MISTRAL_API_KEY
环境变量
export MISTRAL_API_KEY="your-api-key"
如果你想获得模型调用的自动跟踪,还可以通过取消下面的注释来设置你的 LangSmith API 密钥
# export LANGCHAIN_TRACING_V2="true"
# export LANGCHAIN_API_KEY="your-api-key"
安装
LangChain MistralAI 集成位于 @langchain/mistralai
包中
查看 此部分以获取安装集成包的一般说明。
- npm
- yarn
- pnpm
npm i @langchain/mistralai
yarn add @langchain/mistralai
pnpm add @langchain/mistralai
实例化
现在我们可以实例化我们的模型对象并生成聊天补全
import { MistralAI } from "@langchain/mistralai";
const llm = new MistralAI({
model: "codestral-latest",
temperature: 0,
maxTokens: undefined,
maxRetries: 2,
// other params...
});
调用
const inputText = "MistralAI is an AI company that ";
const completion = await llm.invoke(inputText);
completion;
has developed Mistral 7B, a large language model (LLM) that is open-source and available for commercial use. Mistral 7B is a 7 billion parameter model that is trained on a diverse and high-quality dataset, and it has been fine-tuned to perform well on a variety of tasks, including text generation, question answering, and code interpretation.
MistralAI has made Mistral 7B available under a permissive license, allowing anyone to use the model for commercial purposes without having to pay any fees. This has made Mistral 7B a popular choice for businesses and organizations that want to leverage the power of large language models without incurring high costs.
Mistral 7B has been trained on a diverse and high-quality dataset, which has enabled it to perform well on a variety of tasks. It has been fine-tuned to generate coherent and contextually relevant text, and it has been shown to be capable of answering complex questions and interpreting code.
Mistral 7B is also a highly efficient model, capable of processing text at a fast pace. This makes it well-suited for applications that require real-time responses, such as chatbots and virtual assistants.
Overall, Mistral 7B is a powerful and versatile large language model that is open-source and available for commercial use. Its ability to perform well on a variety of tasks, its efficiency, and its permissive license make it a popular choice for businesses and organizations that want to leverage the power of large language models.
链式调用
我们可以链式调用 我们的补全模型与提示模板,如下所示
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.",
});
I love programming.
Ich liebe Programmieren.
In German, the phrase "I love programming" is translated as "Ich liebe Programmieren." The word "programming" is translated to "Programmieren," and "I love" is translated to "Ich liebe."
由于 Mistral LLM 是一个补全模型,它们也允许你在提示中插入一个 suffix
。可以在调用模型时通过调用选项传递 Suffix,如下所示
const suffixResponse = await llm.invoke(
"You can print 'hello world' to the console in javascript like this:\n```javascript",
{
suffix: "```",
}
);
console.log(suffixResponse);
console.log('hello world');
```
如第一个示例所示,模型生成了请求的 console.log('hello world')
代码片段,但也包含了额外的、不需要的文本。通过添加一个后缀,我们可以限制模型只完成提示,直到后缀(在本例中,是三个反引号)。这使我们可以轻松解析补全并仅使用自定义输出解析器提取所需的响应,而不会提取后缀。
import { MistralAI } from "@langchain/mistralai";
const llmForFillInCompletion = new MistralAI({
model: "codestral-latest",
temperature: 0,
});
const suffix = "```";
const customOutputParser = (input: string) => {
if (input.includes(suffix)) {
return input.split(suffix)[0];
}
throw new Error("Input does not contain suffix.");
};
const resWithParser = await llmForFillInCompletion.invoke(
"You can print 'hello world' to the console in javascript like this:\n```javascript",
{
suffix,
}
);
console.log(customOutputParser(resWithParser));
console.log('hello world');
API 参考
有关所有 MistralAI 功能和配置的详细文档,请访问 API 参考:https://api.js.langchain.com/classes/langchain_mistralai.MistralAI.html