主题
Mistral AI
项目搭建
要将 langchain4j 安装到你的项目,添加以下依赖:
Maven 项目的 pom.xml
xml
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j</artifactId>
<version>1.22.0</version>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-mistral-ai</artifactId>
<version>1.22.0</version>
</dependency>1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
Gradle 项目的 build.gradle
groovy
implementation 'dev.langchain4j:langchain4j:1.22.0'
implementation 'dev.langchain4j:langchain4j-mistral-ai:1.22.0'1
2
2
API 密钥设置
将你的 MistralAI API 密钥添加到项目中,你可以创建一个 ApiKeys.java 类,内容如下
java
public class ApiKeys {
public static final String MISTRALAI_API_KEY = System.getenv("MISTRAL_AI_API_KEY");
}1
2
3
2
3
别忘了把你的 API 密钥设置为环境变量。
shell
export MISTRAL_AI_API_KEY=your-api-key #For Unix OS based
SET MISTRAL_AI_API_KEY=your-api-key #For Windows OS1
2
2
关于如何获取 MistralAI API 密钥的更多细节可在这里找到
嵌入
MistralAI Embeddings 模型允许你对句子进行嵌入,在应用中使用它很简单。我们提供了一个简单示例,帮助你上手 MistralAI Embeddings 模型集成。
创建一个类并添加以下代码。
java
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();
// For simplicity, this example uses an in-memory store, but you can choose any external compatible store for production environments.
EmbeddingStore<TextSegment> embeddingStore = new InMemoryEmbeddingStore<>();
TextSegment segment1 = TextSegment.from("I like football.");
Embedding embedding1 = embeddingModel.embed(segment1).content();
embeddingStore.add(embedding1, segment1);
TextSegment segment2 = TextSegment.from("The weather is good today.");
Embedding embedding2 = embeddingModel.embed(segment2).content();
embeddingStore.add(embedding2, segment2);
String userQuery = "What is your favourite sport?";
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("Question: " + userQuery); // What is your favourite sport?
System.out.println("Response: " + embeddingMatch.embedded().text()); // I like football.
}
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
在本例中,我们会添加 2 个文本片段,但 LangChain4j 内置支持从各种来源加载文档: 文件系统、URL、Amazon S3、Azure Blob Storage、GitHub、腾讯云 COS。 此外,LangChain4j 支持解析多种文档类型: 文本、pdf、doc、xls、ppt。
输出将与下面类似:
plaintext
Question: What is your favourite sport?
Response: I like football.1
2
2
当然,你可以将 MistralAI Embeddings 与 RAG(检索增强生成)技术结合使用。
在 RAG 中,你将学习如何使用 LangChain4j 的摄入、检索与高级检索等 RAG 技术。
许多参数是在幕后设置的,例如超时、模型类型与模型参数。 在设置模型参数中,你将学习如何显式地设置这些参数。
更多示例
如果你想查看更多示例,可以在 langchain4j-examples 项目中找到它们。