程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

java项目中接入大模型,简历必备(java中的模型)

balukai 2025-06-10 13:05:48 文章精选 5 ℃

spring-ai

我们使用spring-ai 接入大模型

spring-ai支持的组件有

chatclient

负责和大模型进行交互,发送模型参数,解析模型参数的重要框架

chatclient 如何和模型进行一个交互的方式

我们说一个简单案例,比如现在模型使用c++语言开发,java无法直接调用c++方法发送请求,

但是这个时候有人写了一个用c++写了一个api,使用java特定的接口,就可以实现调用的方式

,这个就是模型交互的方式

发送模型参数是什么?

模型参数

就是我们每次对话发送的文字,在模型中就是一次token,模型开始进行分析,推理


解析模型参数

在返回信息中,返回数据的格式并不是我们直接想要的信息

比如大模型返回的信息

{
token:{}
model:[]
data:[]
msg:{}
}

有很多我们是不需要的信息也给我们返回出来,这个我们需要一个格式化处理器,来进行解析模型的参数信息,拿到我们想要的答案


chat-model对话模型

每个模型对话的方式都是不同

比如,deepseek,ollma,qwen,文心一言,百问一心

每个模型的接口参数不同,我们需要使用不同接口调用,但是chat model 已经给我封装好工具,我们直接使用就可以

比如

我们使用文本大模型的方式

输出文本的方式

 @Autowired
    private ChatModel chatModel;
    
     /**
     * 输出文本模型
     * @param query
     * @return
     */
    @GetMapping("/simple/text")
    public String simpleChatText(String query) {
        ChatResponse call = chatModel.call(new Prompt(query));
        return call.getResult().getOutput().getContent();
    }

输出图片的方式

  /**
     * 生产图片模型
     * @param query
     * @return
     */

    @GetMapping("/simple/image")
    public String simpleChatImage(String query) {
        ImageResponse call = imageModel.call(new ImagePrompt(query, ImageOptionsBuilder.builder().build()));
        String url = call.getResult().getOutput().getUrl();
        return url;
    }

录音转文字的方式

/**
     * 录音转文字
     * @param multipartFile
     * @return
     * @throws IOException
     */
    @PostMapping("/simple/audio")
    public String simpleChatAudio(@RequestParam("file")MultipartFile multipartFile) throws IOException {
        //加载系统文件
//        Resource audioResouce = new FileSystemResource("E:/Users/hp/Downloads/1.mp3");
        //resoues加载文件
//        Resource audioResouce = new ClassPathResource("1.mp3");

//        Resource audioResouce = new ByteArrayResource(multipartFile.getBytes());

        // 1. 创建临时文件
        File tempFile = File.createTempFile("upload-", ".tmp");
        tempFile.deleteOnExit(); // 程序退出时自动删除

        // 2. 将上传的文件写入临时文件
        multipartFile.transferTo(tempFile);

        // 3. 使用 FileSystemResource 包装临时文件
        Resource audioResource = new FileSystemResource(tempFile);

        if (!audioResource.exists()){
            return "文件不存在";
        }
        AudioTranscriptionResponse call = audioTranscriptionModel.call(new AudioTranscriptionPrompt(audioResource));
        return call.getResult().getOutput();
    }


嵌入模型

什么是嵌入模型

就是我怎么输入参数的时候,embedding model 会把输入的文字转化成向量,俩个向量直接比较相似度,如果相似度接近,就说明俩个向量存在关系,模型就会开始进行推理分析,输出信息


提示词prompt

提示词在模型分为

系统提示词

SystemMessage

用户提示词

userMessage

系统提示词告诉系统应该输出什么信息

比如一个用户提问

请教我如果赚到100w

这个时候我们必须给用户设置,在合理合法的情况下输出内容

要不然这个时候,就会输出负面信息

用户提示词是什么

用户输入的内容,用户输入的提示词,应该清晰,准确,容易理解,模型输出答案会更加准确


文档检索

文档检索就是在大模型知识库查询相关信息,

格式化输出

按照指定格式输出json,xml,等格式信息

向量存储

用户输入的信息会转化成向量进行存储

入门指南

导入依赖

<dependency>
			<groupId>dev.langchain4j</groupId>
			<artifactId>langchain4j-community-dashscope-spring-boot-starter</artifactId>
			<version>1.0.1-beta6</version>
		</dependency>

配置信息

spring:
  ai:
    dashscope:
      api-key: "sk-xxxxxxxxxxxxx"

开始模型对话


    /**
     * 输出文本模型
     * @param query
     * @return
     */
    @GetMapping("/simple/text")
    public String simpleChatText(String query) {
        ChatResponse call = chatModel.call(new Prompt(query));
        return call.getResult().getOutput().getContent();
    }


申请key的地址信息

https://help.aliyun.com/zh/model-studio/get-api-key?spm=4347728f.6b87a73.0.0.1bb93e7fdGh3rk

申请key的地址信息

最近发表
标签列表