本文主要是介绍SpringAI初体验----拒绝繁杂请求构造,即开即用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
使用这个框架可以让你省去一些对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>
创建application.yaml进行简单配置:
spring:application:name: spring-aiai: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;@Autowiredpublic 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));}
}
效果如下:
这篇关于SpringAI初体验----拒绝繁杂请求构造,即开即用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!