Spring AI 第二讲 之 Chat Model API 第九节 watsonx.ai Chat

2024-06-09 11:36

本文主要是介绍Spring AI 第二讲 之 Chat Model API 第九节 watsonx.ai Chat,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

通过 watsonx.ai,你可以在本地运行各种大型语言模型(LLM),并从中生成文本。Spring AI 通过 WatsonxAiChatModel 支持 watsonx.ai 文本生成。

您首先需要拥有一个 watsonx.ai 的 SaaS 实例(以及一个 IBM 云帐户)。

请参阅免费试用,免费试用 watsonx.ai

更多信息请点击此处

自动配置

Spring AI 为 watsonx.ai 聊天客户端提供了 Spring Boot 自动配置功能。要启用它,请在项目的 Maven pom.xml 文件中添加以下依赖项:

<dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-watsonx-ai-spring-boot-starter</artifactId>
</dependency>

 或 Gradle build.gradle 构建文件。

dependencies {implementation 'org.springframework.ai:spring-ai-watsonx-ai-spring-boot-starter'
}

聊天属性

连接属性

前缀 spring.ai.watsonx.ai 用作属性前缀,可让您连接到 watsonx.ai。

PropertyDescriptionDefault

spring.ai.watsonx.ai.base-url

要连接的 URL

us-south.ml.cloud.ibm.com

spring.ai.watsonx.ai.stream-endpoint

流媒体端点

generation/stream?version=2023-05-29

spring.ai.watsonx.ai.text-endpoint

文本终端

generation/text?version=2023-05-29

spring.ai.watsonx.ai.project-id

项目 ID

-

spring.ai.watsonx.ai.iam-token

IBM 云账户 IAM 令牌

-

配置属性

spring.ai.watsonx.ai.chat 前缀是让你配置 Watsonx.AI 聊天模型实现的属性前缀。 

PropertyDescriptionDefault

spring.ai.watsonx.ai.chat.enabled

启用 Watsonx.AI 聊天模型。

true

spring.ai.watsonx.ai.chat.options.temperature

模型的温度。温度越高,模型的答案越有创意。

0.7

spring.ai.watsonx.ai.chat.options.top-p

与 top-k 一起使用。较高的值(如 0.95)将产生更多样化的文本,而较低的值(如 0.2)将产生更集中和保守的文本。

1.0

spring.ai.watsonx.ai.chat.options.top-k

降低产生无意义答案的概率。数值越大(如 100),答案就越多样化,而数值越小(如 10),答案就越保守。

50

spring.ai.watsonx.ai.chat.options.decoding-method

解码是模型在生成的输出中选择标记的过程。

greedy

spring.ai.watsonx.ai.chat.options.max-new-tokens

设置 LLM 遵循的标记上限。

20

spring.ai.watsonx.ai.chat.options.min-new-tokens

设置 LLM 必须生成的令牌数量。

0

spring.ai.watsonx.ai.chat.options.stop-sequences

设置 LLM 停止的时间。(例如,["\n\n\n"]),那么当 LLM 产生三个连续的换行符时就会终止。在生成 Min tokens 参数中指定的标记数之前,停止序列将被忽略。

-

spring.ai.watsonx.ai.chat.options.repetition-penalty

设置对重复的惩罚力度。数值越大(如 1.8),对重复的惩罚力度就越大,而数值越小(如 1.1),惩罚力度就越宽松。

1.0

spring.ai.watsonx.ai.chat.options.random-seed

产生可重复的结果,每次设置相同的随机种子值。

randomly generated

spring.ai.watsonx.ai.chat.options.model

模型是要使用的 LLM 模型的标识符。

google/flan-ul2

运行时选项

WatsonxAiChatOptions.java 提供了模型配置,如使用的模型、温度、频率惩罚等。

启动时,可使用 WatsonxAiChatModel(api, options) 构造函数或 spring.ai.watsonxai.chat.options.* 属性配置默认选项。

在运行时,你可以通过向提示调用添加新的、针对特定请求的选项来覆盖默认选项。例如,覆盖特定请求的默认模型和温度:

ChatResponse response = chatModel.call(new Prompt("Generate the names of 5 famous pirates.",WatsonxAiChatOptions.builder().withTemperature(0.4).build()));

除了特定于模型的 WatsonxAiChatOptions.java 之外,你还可以使用通过 ChatOptionsBuilder#builder() 创建的便携式 ChatOptions实例。

 使用示例

public class MyClass {private final static String MODEL = "google/flan-ul2";private final WatsonxAiChatModel chatModel;@AutowiredMyClass(WatsonxAiChatModel chatModel) {this.chatModel = chatModel;}public String generate(String userInput) {WatsonxAiOptions options = WatsonxAiOptions.create().withModel(MODEL).withDecodingMethod("sample").withRandomSeed(1);Prompt prompt = new Prompt(new SystemMessage(userInput), options);var results = chatModel.call(prompt);var generatedText = results.getResult().getOutput().getContent();return generatedText;}public String generateStream(String userInput) {WatsonxAiOptions options = WatsonxAiOptions.create().withModel(MODEL).withDecodingMethod("greedy").withRandomSeed(2);Prompt prompt = new Prompt(new SystemMessage(userInput), options);var results = chatModel.stream(prompt).collectList().block(); // wait till the stream is resolved (completed)var generatedText = results.stream().map(generation -> generation.getResult().getOutput().getContent()).collect(Collectors.joining());return generatedText;}}

这篇关于Spring AI 第二讲 之 Chat Model API 第九节 watsonx.ai Chat的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1045068

相关文章

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

Spring Cloud Hystrix原理与注意事项小结

《SpringCloudHystrix原理与注意事项小结》本文介绍了Hystrix的基本概念、工作原理以及其在实际开发中的应用方式,通过对Hystrix的深入学习,开发者可以在分布式系统中实现精细... 目录一、Spring Cloud Hystrix概述和设计目标(一)Spring Cloud Hystr

Spring Boot整合消息队列RabbitMQ的实现示例

《SpringBoot整合消息队列RabbitMQ的实现示例》本文主要介绍了SpringBoot整合消息队列RabbitMQ的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录RabbitMQ 简介与安装1. RabbitMQ 简介2. RabbitMQ 安装Spring

springMVC返回Http响应的实现

《springMVC返回Http响应的实现》本文主要介绍了在SpringBoot中使用@Controller、@ResponseBody和@RestController注解进行HTTP响应返回的方法,... 目录一、返回页面二、@Controller和@ResponseBody与RestController

JAVA集成本地部署的DeepSeek的图文教程

《JAVA集成本地部署的DeepSeek的图文教程》本文主要介绍了JAVA集成本地部署的DeepSeek的图文教程,包含配置环境变量及下载DeepSeek-R1模型并启动,具有一定的参考价值,感兴趣的... 目录一、下载部署DeepSeek1.下载ollama2.下载DeepSeek-R1模型并启动 二、J

springboot rocketmq配置生产者和消息者的步骤

《springbootrocketmq配置生产者和消息者的步骤》本文介绍了如何在SpringBoot中集成RocketMQ,包括添加依赖、配置application.yml、创建生产者和消费者,并展... 目录1. 添加依赖2. 配置application.yml3. 创建生产者4. 创建消费者5. 使用在

Spring Retry 实现乐观锁重试实践记录

《SpringRetry实现乐观锁重试实践记录》本文介绍了在秒杀商品SKU表中使用乐观锁和MybatisPlus配置乐观锁的方法,并分析了测试环境和生产环境的隔离级别对乐观锁的影响,通过简单验证,... 目录一、场景分析 二、简单验证 2.1、可重复读 2.2、读已提交 三、最佳实践 3.1、配置重试模板

Spring中@Lazy注解的使用技巧与实例解析

《Spring中@Lazy注解的使用技巧与实例解析》@Lazy注解在Spring框架中用于延迟Bean的初始化,优化应用启动性能,它不仅适用于@Bean和@Component,还可以用于注入点,通过将... 目录一、@Lazy注解的作用(一)延迟Bean的初始化(二)与@Autowired结合使用二、实例解

SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)

《SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)》本文介绍了如何在SpringBoot项目中使用Jasypt对application.yml文件中的敏感信息(如数... 目录SpringBoot使用Jasypt对YML文件配置内容进行加密(例:数据库密码加密)前言一、J

Java中有什么工具可以进行代码反编译详解

《Java中有什么工具可以进行代码反编译详解》:本文主要介绍Java中有什么工具可以进行代码反编译的相关资,料,包括JD-GUI、CFR、Procyon、Fernflower、Javap、Byte... 目录1.JD-GUI2.CFR3.Procyon Decompiler4.Fernflower5.Jav