序
本文主要研究一下如何使用langchain4j+JlamaEmbeddingModel调用EmbeddingModel
步骤
pom.xml
21
21
UTF-8
1.5.6
0.8.3
dev.langchain4j
langchain4j-jlama
1.0.0-beta1
com.github.tjake
jlama-core
com.github.tjake
jlama-native
${os.detected.classifier}
${jlama.version}
com.github.tjake
jlama-core
${jlama.version}
dev.langchain4j
langchain4j
1.0.0-beta1
kr.motd.maven
os-maven-plugin
1.7.1
下载模型文件
这里使用
https://hf-mirror.com/intfloat/e5-small-v2
下载到下载到~/.jlama/models/目录下
示例
public class JlamaEmbeddedModelExample {
public static void main(String[] args) {
EmbeddingModel embeddingModel = JlamaEmbeddingModel.builder()
.modelName("intfloat/e5-small-v2")
.build();
// For simplicity, this example uses an in-memory store, but you can choose any external compatible store for production environments.
EmbeddingStore 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();
int maxResults = 1;
List<EmbeddingMatch> relevant = embeddingStore.findRelevant(queryEmbedding, maxResults);
EmbeddingMatch embeddingMatch = relevant.get(0);
System.out.println("Question: " + userQuery); // What is your favourite sport?
System.out.println("Response: " + embeddingMatch.embedded().text()); // I like football.
}
}
这里使用JlamaEmbeddingModel加载intfloat/e5-small-v2,之后embed了两个TextSegment,最后通过
embeddingStore.findRelevant去匹配与queryEmbedding最相关的TextSegment
小结
langchain4j提供了langchain4j-jlama来集成Jlama,Jlama提供了JlamaEmbeddingModel来加载EmbeddingModel。
doc
- langchain4j+Jlama小试牛刀
- embedding-models/jlama
- intfloat/e5-small-v2
本文暂时没有评论,来添加一个吧(●'◡'●)