SpringAI 阿里云千问大模型

阿里云百炼(qwen大模型)https://bailian.console.aliyun.com/

springAI项目 https://start.spring.io/

一、配置pom文件

  先从springAI官网下载项目,然后开始配置pom跟yml文件。这里使用阿里云百炼模型,所以阿里的dashscope方式。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.4.4</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.lf</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>ai-demo</name>
    <description>Demo project for Spring Boot</description>
    <repositories>
        <repository>
            <name>Central Portal Snapshots</name>
            <id>central-portal-snapshots</id>
            <url>https://central.sonatype.com/repository/maven-snapshots/</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <releases>
                <enabled>false</enabled>
            </releases>
        </repository>
    </repositories>

    <properties>
        <java.version>17</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.ai</groupId>
            <artifactId>spring-ai-starter-mcp-client</artifactId>
            <version>1.0.0-M7</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud.ai</groupId>
            <artifactId>spring-ai-alibaba-starter</artifactId>
            <version>1.0.0-M6.1</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dashscope-sdk-java</artifactId>
            <!-- 请将 'the-latest-version' 替换为最新版本号:https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java -->
            <version>2.19.2</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>
View Code

 

二、配置yml文件

server:
  port: 18080

spring:
  application:
    name: ai-demo
  ai:
    dashscope:
      api-key: sk-xxx
View Code

 

三、Controller文件

@RestController
@RequestMapping("/")
public class ChatController {
private static final String DEFAULT_PROMPT = "你是一个博学的智能聊天助手,请根据用户提问回答!"; private final ChatClient dashScopeChatClient; // private final ChatModel chatModel; public ChatController(ChatClient.Builder chatClientBuilder) { this.dashScopeChatClient = chatClientBuilder .defaultSystem(DEFAULT_PROMPT) // 实现 Chat Memory 的 Advisor // 在使用 Chat Memory 时,需要指定对话 ID,以便 Spring AI 处理上下文。 .defaultAdvisors( new MessageChatMemoryAdvisor(new InMemoryChatMemory()) ) // 实现 Logger 的 Advisor .defaultAdvisors( new SimpleLoggerAdvisor() ) // 设置 ChatClient 中 ChatModel 的 Options 参数 .defaultOptions( DashScopeChatOptions.builder() .withTopP(0.7) .build() ) .build(); }/** * ChatClient 简单调用 */ @GetMapping("/simple/chat") public String simpleChat(@RequestParam(value = "query", defaultValue = "你好,很高兴认识你,能简单介绍一下自己吗?")String query) { return dashScopeChatClient.prompt(query).call().content(); } /** * ChatClient 流式调用 */ @GetMapping("/stream/chat") public Flux<String> streamChat(@RequestParam(value = "query", defaultValue = "你好,很高兴认识你,能简单介绍一下自己吗?")String query, HttpServletResponse response) { response.setCharacterEncoding("UTF-8"); return dashScopeChatClient.prompt(query).stream().content(); } }

四、测试对话

  直接访问,有默认的对话信息。

   也可以自己问想要的问题。

   以上就是springAI+阿里云千问大模型的项目。

 

posted @ 2025-04-23 23:51  Auler  阅读(580)  评论(0)    收藏  举报