org.springframework.ai
spring-ai-azure-openai-spring-boot-starter
Em essência, quando o Spring verifica o projeto em busca de um ChatClient, ele usará a propriedade para criar um usando convenções de nomenclatura no openai
projeto inicial. No simples helloworld
exemplo que estamos vendo, que ChatClient é chamado pelo controlador:
package com.xkcd.ai.helloworld;
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 MapString, generation(
@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
return Map.of("generation", chatClient.call(message));
}
}
Este é um controlador Spring REST típico, onde o chatClient
membro é um método anotado como @Autowired
. Esse ChatClient é então usado para lidar com as solicitações em /ai/simple
. (Os padrões dos parâmetros de solicitação são fornecidos no método, portanto, uma solicitação sem parâmetros será definida como “Conte-me uma piada”.) O método endpoint retorna um mapa com uma chave de “geração” cujo valor é o valor de retorno de chatClient.call(message)
.
Para que tudo isso funcione, você precisa de uma chave API para Azure. A chave é definida como uma variável de ambiente: