分享免费的编程资源和教程

网站首页 > 技术教程 正文

langchain4j+JlamaEmbeddingModel小试牛刀

goqiw 2025-03-30 16:29:44 技术教程 16 ℃ 0 评论

本文主要研究一下如何使用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

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表