Spring AI教程(四)Embedding API之快速入门

751次阅读
没有评论

共计 1734 个字符,预计需要花费 5 分钟才能阅读完成。

内容目录

Embedding API 快速入门

 Spring AI 的 Embeddings API的功能是调用各平台(目前包括:OpenAI、Ollama、Azure OpenAI等)的嵌入模型将文本转换为数值向量。这些文本向量化后的数值数据对于文本分析和检索有着至关重要的作用。

  同样的spring-ai-openai-spring-boot-starter里有对EmbeddingClient接口的实现类:OpenAiEmbeddingClient,该类支持调用OpenAI的两种嵌入模型:text-embedding-ada-002text-embedding-3

Spring AI教程(四)Embedding API之快速入门

 与OpenAiClientOpenAiImageClient类似的,当Spring 启动时,会自动注入OpenAiEmbeddingClient,因此完成key和url的配置后,我们就能直接使用。

Spring AI教程(四)Embedding API之快速入门

源码解读

 嵌入模型的主要工作就是将一些原数据进行降为,从而获得一组低维的数据。拿OpenAI的嵌入模型来说,它的功能十分简单,给它一段文本,它会返回一组这段文本的向量化数据。
Spring AI教程(四)Embedding API之快速入门

EmbeddingClient的调用需要传入一个EmbeddingRequest对象进行调用。该类中包含一组文本列表和执行嵌入的配置信息。
Spring AI教程(四)Embedding API之快速入门

 同样的,我们只需关注options,在spring-ai-openai-spring-boot-starter中提供了EmbeddingOptions接口的实现类:OpenAiEmbeddingOptions
Spring AI教程(四)Embedding API之快速入门

 在该类中,只需关注model和encodingFormat。
Spring AI教程(四)Embedding API之快速入门

 model用于指定嵌入模型:text-embedding-ada-002或text-embedding-3;

 encodingFormat一般传入float就行。

调用嵌入模型

 下面就通过EmbeddingClient调用text-embedding-ada-002模型将一段文本向量化并获取向量化后的向量值。

package com.ningning0111;

import org.junit.jupiter.api.Test;
import org.springframework.ai.embedding.EmbeddingClient;
import org.springframework.ai.embedding.EmbeddingRequest;
import org.springframework.ai.embedding.EmbeddingResponse;
import org.springframework.ai.openai.OpenAiEmbeddingOptions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

@SpringBootTest
public class EmbeddingDemoApplicationTest {

    @Autowired
    private EmbeddingClient embeddingClient;

    @Test
    public void quickStart() {
        String vectorString = "I'm learning Spring AI";
        EmbeddingRequest embeddingRequest =
                new EmbeddingRequest(List.of(vectorString),
                        OpenAiEmbeddingOptions.builder()
                                .withEncodingFormat("float")
                                .withModel("text-embedding-ada-002")
                                .build());

        EmbeddingResponse response = embeddingClient.call(embeddingRequest);
        System.out.println(response.getResult().getOutput());
    }
}

执行结果如下:
Spring AI教程(四)Embedding API之快速入门

正文完
 
PG Thinker
版权声明:本站原创文章,由 PG Thinker 2024-04-25发表,共计1734字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
热评文章
Rust中所有权与借用规则概述

Rust中所有权与借用规则概述

在GC与手动管理内存之间,Rust选择了第三种:所有权机制...