保持领先
VMware 提供培训和认证,助您加速发展。
了解更多更快捷的信息处理不仅能提供信息,还能改变我们的认知和创新方式。
Spring AI,一个用于将 AI 功能集成到 Spring 应用中的强大框架,现已支持Groq - 一个极速 AI 推理引擎,支持工具/函数调用。
利用 Groq 与 OpenAI 兼容的 API,Spring AI 通过调整其现有的OpenAI 聊天客户端实现了无缝集成。这种方法使开发者能够通过熟悉的 Spring AI API 利用 Groq 的高性能模型。
我们将探讨如何配置和使用 Spring AI OpenAI 聊天客户端连接 Groq。有关详细信息,请查阅 Spring AI Groq 文档和相关的测试。
要与 Groq 交互,您需要从https://console.groq.com/keys获取 Groq API 密钥。
将 Spring AI OpenAI Starter 添加到您的项目。
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-openai-spring-boot-starter</artifactId>
</dependency>
对于 Gradle,将其添加到您的 build.gradle
文件中
dependencies {
implementation 'org.springframework.ai:spring-ai-openai-spring-boot-starter'
}
确保您已添加 Spring 的Milestone 和 Snapshot 仓库并添加Spring AI BOM。
要将 Groq 与 Spring AI 一起使用,我们需要配置 OpenAI 客户端以指向 Groq 的 API 端点并使用 Groq 专有模型。
将以下环境变量添加到您的项目
export SPRING_AI_OPENAI_API_KEY=<INSERT GROQ API KEY HERE>
export SPRING_AI_OPENAI_BASE_URL=https://api.groq.com/openai
export SPRING_AI_OPENAI_CHAT_OPTIONS_MODEL=llama3-70b-8192
或者,您可以将这些添加到您的 application.properties
文件中
spring.ai.openai.api-key=<GROQ_API_KEY>
spring.ai.openai.base-url=https://api.groq.com/openai
spring.ai.openai.chat.options.model=llama3-70b-8192
spring.ai.openai.chat.options.temperature=0.7
关键点
api-key
设置为您的Groq 密钥之一。base-url
设置为 Groq 的 API 端点:https://api.groq.com/openai
model
设置为 Groq 的可用模型之一。有关完整的配置属性列表,请查阅Groq 聊天属性文档。
现在我们已经配置 Spring AI 使用 Groq,让我们看一个如何在您的应用中使用它的简单示例。
@RestController
public class ChatController {
private final ChatClient chatClient;
@Autowired
public ChatController(ChatClient.Builder builder) {
this.chatClient = builder.build();
}
@GetMapping("/ai/generate")
public Map generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
String response = chatClient.prompt().user(message).call().content();
return Map.of("generation", response);
}
@GetMapping("/ai/generateStream")
public Flux<String> generateStream(@RequestParam(value = "message",
defaultValue = "Tell me a joke") String message) {
return chatClient.prompt().user(message).stream().content();
}
}
在这个示例中,我们创建了一个简单的 REST 控制器,包含两个端点:
/ai/generate
: 为给定提示生成一个响应。/ai/generateStream
: 以流式方式传输响应,这对于较长的输出或实时交互非常有用。Groq API 端点在选择支持工具/函数的模型时支持工具/函数调用。
您可以在 ChatModel 中注册自定义 Java 函数,并让提供的 Groq 模型智能地选择输出一个包含调用一个或多个已注册函数的参数的 JSON 对象。这是一种将大型语言模型 (LLM) 功能与外部工具和 API 连接起来的强大技术。
以下是使用 Spring AI 调用 Groq 函数的一个简单示例:
@SpringBootApplication
public class GroqApplication {
public static void main(String[] args) {
SpringApplication.run(GroqApplication.class, args);
}
@Bean
CommandLineRunner runner(ChatClient.Builder chatClientBuilder) {
return args -> {
var chatClient = chatClientBuilder.build();
var response = chatClient.prompt()
.user("What is the weather in Amsterdam and Paris?")
.functions("weatherFunction") // reference by bean name.
.call()
.content();
System.out.println(response);
};
}
@Bean
@Description("Get the weather in location")
public Function<WeatherRequest, WeatherResponse> weatherFunction() {
return new MockWeatherService();
}
public static class MockWeatherService implements Function<WeatherRequest, WeatherResponse> {
public record WeatherRequest(String location, String unit) {}
public record WeatherResponse(double temp, String unit) {}
@Override
public WeatherResponse apply(WeatherRequest request) {
double temperature = request.location().contains("Amsterdam") ? 20 : 25;
return new WeatherResponse(temperature, request.unit);
}
}
}
在此示例中,当模型需要天气信息时,它将自动调用 weatherFunction
bean,该 bean 随后可以获取实时天气数据。
预期的响应示例如下:“阿姆斯特丹目前的天气为 20 摄氏度,巴黎目前的天气为 25 摄氏度。”
阅读更多关于 OpenAI 函数调用的信息。
将 Groq 与 Spring AI 一起使用时,请记住以下几点:
将 Groq 与 Spring AI 集成,为希望在其 Spring 应用中利用高性能 AI 模型的开发者带来了新的可能性。通过重用 OpenAI 客户端,Spring AI 使得在不同 AI 提供商之间切换变得简单直观,让您可以为特定需求选择最佳解决方案。
在探索这种集成时,请记住随时查阅Spring AI和Groq的最新文档,因为功能和兼容性可能会随时间变化。
我们鼓励您尝试不同的 Groq 模型,并比较它们的性能和输出,以便找到最适合您的用例的模型。
编程愉快,享受 Groq 为您的 AI 驱动的 Spring 应用带来的速度和能力吧!