成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Spring AI與Ollama整合離線通義千問模型

人工智能
我們成功地將 SpringAI 與通義千問大語言模型整合在一起,并實現了一個簡單的聊天功能。這種整合方式不僅簡化了開發流程,還提供了強大的靈活性,可以輕松切換不同的 AI 服務提供商。

背景介紹

在人工智能領域,大語言模型(LLM)的發展已經取得了顯著進展,這些模型在自然語言處理、知識圖譜構建和智能問答等多個方面表現出色。SpringAI 項目旨在簡化包含人工智能功能的應用程序的開發,避免不必要的復雜性。該項目從著名的 Python 項目(例如 LangChain 和 LlamaIndex)中汲取靈感,但 SpringAI 并不是這些項目的直接移植。它支持所有主要模型,包括 OpenAI、Ollama、Azure OpenAI、Amazon Bedrock、Huggingface、Google VertextAI、Mistral AI 等。

本文將詳細介紹如何使用SpringAI基于Ollama整合通義千問等大語言模型,離線實現AI聊天,并提供一個示例來展示其實現過程。

一、環境準備

在開始之前,需要確保開發環境滿足一定的要求,包括安裝 JDK、Maven 以及 Spring Boot。Ollama環境以及Qwen模型。

1. 安裝 Ollama

Ollama,是一個開源的大語言模型平臺,它允許用戶在本地環境中運行、創建和共享大型語言模型。Ollama提供了豐富的功能和特性,使得用戶可以在自己的計算機上輕松地部署和運行大型語言模型。

下載

首先,需要在本地或服務器上安裝 Ollama。以下是在不同操作系統上的安裝步驟:

  • Windows:

下載 Ollama 的 Windows 安裝包并執行安裝程序。

配置環境變量,將 Ollama 的安裝路徑添加到系統的 PATH 環境變量中。

2. 配置 Ollama

安裝完成后電腦右下角有一只駱駝的圖標

3. 模型安裝

進入Ollama倉庫中查詢自己需要的模型:https://ollama.com/library, 這里我們想下載qwen模型,通過下面的命令進行下載:

-- 下載模型
ollama pull qwen
  
-- 運行模型
ollama run qwen

4. 離線模型部署

服務器環境我們需要離線的模型文件,可以通過下面的命令,生成Modelfile,在服務器環境上傳即可。

-- 查看模型Modelfile
ollama show --modelfile qwen

-- 創建模型
ollama create <your-model-name> -f <./Modelfile>

a. 根據Modelfile內容查看模型具體位置,并上傳到服務器 b. 保存Modelfile文件,并修改FROM子句,改為自己模型位置 c. 執行create命令

二、SpringAI 項目設置

1. 創建 Spring Boot 項目

可以使用 Spring Initializr 創建一個新的 Spring Boot 項目,選擇以下依賴項:

  • Spring Web
  • Spring Boot DevTools

2. 添加 Maven 依賴

在項目的 pom.xml 文件中,添加 Spring Cloud Alibaba AI 的依賴:注意這里將spring-ai-core升級了,不然會有問題

<project>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.ai</groupId>
                <artifactId>spring-ai-bom</artifactId>
                <version>1.0.0-M2</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    
    <dependencies>
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
      </dependency>
      
      <dependency>
          <groupId>org.springframework.ai</groupId>
          <artifactId>spring-ai-core</artifactId>
          <version>1.0.0-M2</version>
      </dependency>
      
      <dependency>
          <groupId>org.springframework.ai</groupId>
          <artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
          <exclusions>
              <exclusion>
                  <groupId>org.springframework.ai</groupId>
                  <artifactId>spring-ai-core</artifactId>
              </exclusion>
          </exclusions>
      </dependency>
    </dependencies>
</project>

3. 配置文件

在 application.yml 文件中,添加Ollama服務配置并啟用通義千問模型:

spring:
  ai:
    ollama:
      base-url: http://127.0.0.1:11434
      chat:
        model: "qwen"
        enabled: true

server:
  servlet:
    encoding:
      charset: utf-8
      enabled: true
      force: true

三、編寫示例代碼

下面是一個簡單的示例,展示如何使用 SpringAI 與通義千問進行交互,并實現一個基本的聊天功能。

1. 創建控制器類

創建一個名為 ChatController 的控制器類,用于處理用戶的聊天請求:

package cn.cycad.ai.qwen.controller;

import org.springframework.ai.chat.messages.UserMessage;
import org.springframework.ai.chat.model.ChatResponse;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.ai.ollama.OllamaChatModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Flux;

@RestController
@RequestMapping("/chat")
public class ChatController {

    private final OllamaChatModel chatModel;

    @Autowired
    public ChatController(OllamaChatModel chatModel) {
        this.chatModel = chatModel;
    }

    @GetMapping
    public String generate(@RequestParam(value = "message") String message) {
        ChatResponse response = chatModel.call(new Prompt(message));
        return response.getResult().getOutput().getContent();
    }

    @GetMapping("/stream")
 public Flux<String> generateStream(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
        Prompt prompt = new Prompt(new UserMessage(message));
        Flux<ChatResponse> stream = this.chatModel.stream(prompt);
        return stream.map(response->response.getResult().getOutput().getContent());
    }

}

2. 啟動應用

運行 Spring Boot 應用,然后訪問 http://localhost:8080/chat?message=你是誰 即可看到通義千問返回的回答。

四、總結與擴展

通過上述步驟,我們成功地將 SpringAI 與通義千問大語言模型整合在一起,并實現了一個簡單的聊天功能。這種整合方式不僅簡化了開發流程,還提供了強大的靈活性,可以輕松切換不同的 AI 服務提供商。

責任編輯:武曉燕 來源: Java技術指北
相關推薦

2024-10-28 08:26:55

SpringAI語言模型1. 多模型

2024-06-11 09:20:48

2024-05-09 11:52:30

通義大模型通義

2023-04-07 14:01:18

ChatGPT人工智能

2023-08-03 19:11:45

2023-12-04 09:55:58

AI大模型

2025-03-06 10:18:38

2023-04-11 13:40:22

阿里云大模型通義千問

2023-04-11 15:49:17

阿里云峰會人工智能

2024-08-30 15:19:22

2024-12-02 08:00:00

2023-12-01 13:36:01

阿里云通義千問

2024-01-26 13:19:00

模型數據

2024-05-21 11:35:48

阿里云通義千問

2023-11-01 19:03:58

GPT-4

2023-10-31 15:26:02

阿里云通義千問

2025-03-31 09:30:52

2024-02-06 12:50:08

AI訓練
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久精品久久久久久 | 国产精品无码专区在线观看 | 国产一区二区在线视频 | 成人妇女免费播放久久久 | 日韩av在线免费 | 91se在线 | 中文字幕一区二区三区四区五区 | 欧美区在线 | 国产精品福利在线观看 | 欧美一级二级在线观看 | 精品一区二区久久久久久久网精 | 毛片网络 | 亚洲最大看片网站 | 欧产日产国产精品国产 | 久久精品欧美一区二区三区麻豆 | 精品视频导航 | 一级毛片视频 | 国产精品爱久久久久久久 | 在线观看国产 | 亚洲视频一区在线 | 青青久久| 操人网站| 成人一区二区三区视频 | 美女啪啪国产 | 国产精品毛片久久久久久久 | 亚洲一区二区精品 | 欧美日韩高清 | 国产成人精品一区二区三区在线 | 波多野结衣二区 | 国产精品亚洲精品 | 九九久久精品 | 久久久久久国产 | 免费能直接在线观看黄的视频 | 国产91黄色 | 亚洲二区在线 | 黄色大片在线免费观看 | 亚洲第一色站 | 精品99在线 | 精产国产伦理一二三区 | 亚洲三区在线 | 国产999精品久久久影片官网 |