Spring Boot实战:无缝对接文心一言
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.http.ResponseEntity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.web.client.RestTemplate;
import com.alibaba.fastjson.JSONObject;
@RestController
public class ChatController {
@Autowired
private RestTemplate restTemplate;
@Value("${yunfengyu.url}")
private String yunfengyuUrl;
@GetMapping("/ask")
public ResponseEntity<String> ask(@RequestParam String question) {
// 构建请求头,添加必要的认证信息
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "application/json");
// 构建请求体
JSONObject requestBody = new JSONObject();
requestBody.put("messages", new String[] { question });
HttpEntity<String> entity = new HttpEntity<>(requestBody.toString(), headers);
// 发送POST请求到文心一言,获取响应
String response = restTemplate.postForObject(yunfengyuUrl, entity, String.class);
JSONObject jsonResponse = JSONObject.parseObject(response);
String answer = jsonResponse.getJSONArray("results").getJSONObject(0).getString("content");
return ResponseEntity.ok(answer);
}
}
这段代码定义了一个Spring Boot的REST控制器,它提供了一个/ask
接口,用户可以通过GET请求传递问题并获取文心一言的回答。代码中使用了RestTemplate
来发送POST请求到文心一言的服务器,并解析了响应以提取回答。这个例子展示了如何在Spring Boot应用中集成文心一言的API,并简单演示了与AI模型交互的过程。
评论已关闭