赞
踩
使用这个框架可以让你省去一些对ChatGPT的一些网络请求构造,这个框架集成了一些基础的请求方法,只需要调用方法就可以实现调用ChatGPT的接口了,但是对于当前网络环境使用ChatGPT确实比较尴尬,不过可以使用CloudFlare对中的Workers功能对请求进行转发,使用购买的域名进行替换即可,直接搜索CSDN就可以看到答案。使用此方法需要在配置文件中多配置一个代理域名,表示使用这个域名替换原来openai的域名。
第一步引入依赖(本文使用的Java17,Springboot版本是3.2.3)
- <?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.2.3</version>
- <relativePath/> <!-- lookup parent from repository -->
- </parent>
- <groupId>com.wxy</groupId>
- <artifactId>ai</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <name>ai</name>
- <description>ai</description>
- <properties>
- <java.version>17</java.version>
- </properties>
- <!-- 配置仓库,如果不生效,就把原来Maven中的Mirror给注释了,就成功了-->
-
- <repositories>
- <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>
-
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>org.springframework.ai</groupId>
- <artifactId>spring-ai-bom</artifactId>
- <version>0.8.1</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.boot</groupId>
- <artifactId>spring-boot-starter-actuator</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.springframework.ai</groupId>
- <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-devtools</artifactId>
- <scope>runtime</scope>
- <optional>true</optional>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-configuration-processor</artifactId>
- <optional>true</optional>
- </dependency>
- <dependency>
- <groupId>org.projectlombok</groupId>
- <artifactId>lombok</artifactId>
- <optional>true</optional>
- </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>
- <configuration>
- <excludes>
- <exclude>
- <groupId>org.projectlombok</groupId>
- <artifactId>lombok</artifactId>
- </exclude>
- </excludes>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
- </project>
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
创建application.yaml进行简单配置:
-
- spring:
- application:
- name: spring-ai
- ai:
- openai:
- api-key: 在openai官网进行获取
- base-url: 填入代理域名
- server:
- port: 8083
经过以上的操作就可以直接使用了,直接编写Controller:
- package com.wxy.ai.controller;
-
- import org.springframework.ai.chat.ChatClient;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.RestController;
-
- import java.util.Map;
-
- @RestController
- public class SimpleAiController {
-
- private final ChatClient chatClient;
-
- @Autowired
- public SimpleAiController(ChatClient chatClient) {
- this.chatClient = chatClient;
- }
-
- @GetMapping("/ai/simple")
- public Map<String, String> completion(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
- return Map.of("generation", chatClient.call(message));
- }
- }
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
效果如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。