以编程方式使用文档

Mistral AI 是一个提供强大 开源模型.

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

概述

集成详情

ClassPackageLocalSerializablePY supportDownloadsVersion
MistralAI@langchain/mistralai!NPM - 下载量!NPM - 版本

设置

要访问 MistralAI 模型,您需要创建一个 MistralAI 账户,获取 API 密钥,并安装 @langchain/mistralai 集成包。

凭证

前往 console.mistral.ai 注册 MistralAI 并生成 API 密钥。完成此操作后,设置 MISTRAL_API_KEY 环境变量:

如果您想获取模型调用的自动追踪,还可以设置您的 LangSmith API 密钥,请取消下方注释:

# export LANGSMITH_TRACING="true"
# export LANGSMITH_API_KEY="your-api-key"

安装

LangChain MistralAI 集成位于 @langchain/mistralai package:

npm install @langchain/mistralai @langchain/core
yarn add @langchain/mistralai @langchain/core
pnpm add @langchain/mistralai @langchain/core

实例化

现在您可以实例化模型并生成文本补全:

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.

钩子

Mistral AI 支持三种事件的自定义钩子:beforeRequest、requestError 和 response。每种钩子类型的函数签名示例如下所示:

const beforeRequestHook = (req: Request): Request | void | Promise => {
    // Code to run before a request is processed by Mistral
};

const requestErrorHook = (err: unknown, req: Request): void | Promise<void> => {
    // Code to run when an error occurs as Mistral is processing a request
};

const responseHook = (res: Response, req: Request): void | Promise<void> => {
    // Code to run before Mistral sends a successful response
};

要将这些钩子添加到模型中,可以将它们作为参数传递,它们会自动添加:

const modelWithHooks = new MistralAI({
    model: "codestral-latest",
    temperature: 0,
    maxRetries: 2,
    beforeRequestHooks: [ beforeRequestHook ],
    requestErrorHooks: [ requestErrorHook ],
    responseHooks: [ responseHook ],
    // other params...
});

或者在实例化后手动分配和添加它们:

const model = new MistralAI({
    model: "codestral-latest",
    temperature: 0,
    maxRetries: 2,
    // other params...
});

model.beforeRequestHooks = [ ...model.beforeRequestHooks, beforeRequestHook ];
model.requestErrorHooks = [ ...model.requestErrorHooks, requestErrorHook ];
model.responseHooks = [ ...model.responseHooks, responseHook ];

model.addAllHooksToHttpClient();

addAllHooksToHttpClient 方法在分配整个更新的钩子列表之前,会清除所有当前添加的钩子,以避免钩子重复。

钩子可以一次移除一个,也可以一次性清除模型中的所有钩子。

model.removeHookFromHttpClient(beforeRequestHook);

model.removeAllHooksFromHttpClient();

API 参考

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