跳到主要内容

Mistral AI

MistralAI 文档

项目设置

要将 langchain4j 安装到您的项目中,请添加以下依赖项:

对于 Maven 项目 pom.xml


<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j</artifactId>
<version>1.0.0-beta3</version>
</dependency>

<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-mistral-ai</artifactId>
<version>1.0.0-beta3</version>
</dependency>

对于 Gradle 项目 build.gradle

implementation 'dev.langchain4j:langchain4j:1.0.0-beta3'
implementation 'dev.langchain4j:langchain4j-mistral-ai:1.0.0-beta3'

API 密钥设置

将您的 MistralAI API 密钥添加到您的项目中,您可以创建一个 ApiKeys.java 类,代码如下

public class ApiKeys {
public static final String MISTRALAI_API_KEY = System.getenv("MISTRAL_AI_API_KEY");
}

不要忘记将您的 API 密钥设置为环境变量。

export MISTRAL_AI_API_KEY=your-api-key #对于基于 Unix 的操作系统
SET MISTRAL_AI_API_KEY=your-api-key #对于 Windows 操作系统

有关如何获取 MistralAI API 密钥的更多详情,请参见此处

嵌入

MistralAI 嵌入模型允许您嵌入句子,在应用程序中使用它很简单。我们提供了一个简单的示例,帮助您开始使用 MistralAI 嵌入模型集成。

创建一个类并添加以下代码。

import dev.langchain4j.data.embedding.Embedding;
import dev.langchain4j.data.segment.TextSegment;
import dev.langchain4j.model.mistralai.MistralAiEmbeddingModel;
import dev.langchain4j.model.embedding.EmbeddingModel;
import dev.langchain4j.store.embedding.EmbeddingMatch;
import dev.langchain4j.store.embedding.EmbeddingStore;
import dev.langchain4j.store.embedding.inmemory.InMemoryEmbeddingStore;

import java.util.List;

public class HelloWorld {
public static void main(String[] args) {
EmbeddingModel embeddingModel = MistralAiEmbeddingModel.builder()
.apiKey(System.getenv("MISTRAL_AI_API_KEY"))
.modelName("mistral-embed")
.build();

// 为简单起见,此示例使用内存存储,但您可以为生产环境选择任何外部兼容存储。
EmbeddingStore<TextSegment> embeddingStore = new InMemoryEmbeddingStore<>();

TextSegment segment1 = TextSegment.from("我喜欢足球。");
Embedding embedding1 = embeddingModel.embed(segment1).content();
embeddingStore.add(embedding1, segment1);

TextSegment segment2 = TextSegment.from("今天天气很好。");
Embedding embedding2 = embeddingModel.embed(segment2).content();
embeddingStore.add(embedding2, segment2);

String userQuery = "你最喜欢什么运动?";
Embedding queryEmbedding = embeddingModel.embed(userQuery).content();
EmbeddingSearchRequest searchRequest = EmbeddingSearchRequest.builder()
.queryEmbedding(queryEmbedding)
.maxResults(1)
.build();
EmbeddingSearchResult<TextSegment> searchResult = embeddingStore.search(searchRequest);
EmbeddingMatch<TextSegment> embeddingMatch = searchResult.matches().get(0);

System.out.println("问题: " + userQuery); // 你最喜欢什么运动?
System.out.println("回答: " + embeddingMatch.embedded().text()); // 我喜欢足球。
}
}

对于这个示例,我们将添加 2 个文本段,但 LangChain4j 提供了从各种来源加载文档的内置支持: 文件系统、URL、Amazon S3、Azure Blob Storage、GitHub、腾讯 COS。 此外,LangChain4j 支持解析多种文档类型: 文本、pdf、doc、xls、ppt。

输出将类似于:

问题: 你最喜欢什么运动?
回答: 我喜欢足球。

当然,您可以将 MistralAI 嵌入与 RAG(检索增强生成)技术结合使用。

RAG 中,您将学习如何使用 LangChain4j 的 RAG 技术进行摄取、检索和高级检索。

许多参数在后台设置,如超时、模型类型和模型参数。 在 设置模型参数 中,您将学习如何明确设置这些参数。

更多示例

如果您想查看更多示例,可以在 langchain4j-examples 项目中找到它们。