|
此版本仍在开发中,尚未被视为稳定版。如需最新的快照版本,请使用 Spring AI 1.1.3! |
OCI GenAI Cohere Chat
OCI GenAI服务 提供按需模型的生成式AI聊天,或专用AI集群。
The OCI聊天模型页面和OCI生成式AI游乐场提供了在OCI上使用和托管聊天模型的详细信息。
前置条件
您需要一个活跃的Oracle云基础设施(OCI)账号才能使用OCI GenAI Cohere Chat客户端。该客户端提供了四种不同的连接方式,包括使用用户和私钥进行简单的身份验证、工作负载身份、实例主身份或OCI配置文件身份验证。
Auto-configuration
|
Spring AI自动配置和starter模块的artifact名称有了重大变化。 请参阅升级说明获取更多信息。 |
Spring AI 提供了对 OCI GenAI Cohere Chat 客户端的 Spring Boot 自动配置。
要启用它,请将以下依赖项添加到您项目的 Maven pom.xml 文件中:
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-oci-genai</artifactId>
</dependency>
请将以下内容添加到您的Gradle build.gradle 构建文件中。
dependencies {
implementation 'org.springframework.ai:spring-ai-starter-model-oci-genai'
}
| 请参阅依赖管理部分,将Spring AI BOM添加到您的构建文件中。 |
聊天属性
连接属性
The prefix spring.ai.oci.genai 是配置连接到 OCI GenAI 的属性前缀。
| <property> </property> | <description> </description> | 默认 |
|---|---|---|
spring.ai.oci.genai.authenticationType |
当向OCI进行身份验证时要使用的认证类型。可能的值为 |
file |
spring.ai.oci.genai.region |
OCI服务区域。 |
us-chicago-1 |
spring.ai.oci.genai.tenantId |
当使用 |
- |
spring.ai.oci.genai.userId |
OCI用户OCID,用于使用 |
- |
spring.ai.oci.genai.fingerprint |
私钥指纹,在使用 |
- |
spring.ai.oci.genai.privateKey |
私钥内容,在使用 |
- |
spring.ai.oci.genai.passPhrase |
使用 |
- |
spring.ai.oci.genai.file |
OCI配置文件路径。用于使用 |
<user’s home directory>/.oci/config |
spring.ai.oci.genai.profile |
OCI配置文件名称。在使用 |
默认 |
spring.ai.oci.genai.endpoint |
可选的OCI GenAI 端点。 |
- |
配置属性
|
现在,聊天自动配置的启用和禁用是通过带有前缀 |
spring.ai.oci.genai.cohere.chat 前缀是配置 OCI GenAI Cohere Chat 实现的属性前缀。
| <property> </property> | <description> </description> | 默认 |
|---|---|---|
spring.ai.model.chat |
启用OCI GenAI Cohere聊天模型。 |
oci-genai |
spring.ai.oci.genai.cohere.chat.enabled (不再有效) |
启用OCI GenAI Cohere聊天模型。 |
true |
spring.ai.oci.genai.cohere.chat.options.model |
模型OCID或端点 |
- |
spring.ai.oci.genai.cohere.chat.options.compartment |
模型隔间OCID。 |
- |
spring.ai.oci.genai.cohere.chat.options.servingMode |
要使用的模型服务模式。可能为 |
on-demand |
spring.ai.oci.genai.cohere.chat.options.preambleOverride |
覆盖聊天模型的提示前缀 |
- |
spring.ai.oci.genai.cohere.chat.options.temperature |
推理温度 |
- |
spring.ai.oci.genai.cohere.chat.options.topP |
Top P参数 |
- |
spring.ai.oci.genai.cohere.chat.options.topK |
Top K 参数 |
- |
spring.ai.oci.genai.cohere.chat.options.frequencyPenalty |
更高的数值会减少重复的标记,并使输出更加随机。 |
- |
spring.ai.oci.genai.cohere.chat.options.presencePenalty |
更高的值会鼓励生成未使用的词汇Tokens。 |
- |
spring.ai.oci.genai.cohere.chat.options.stop |
列出将结束生成完成项的文字序列。 |
- |
spring.ai.oci.genai.cohere.chat.options.documents |
使用在聊天上下文中的一份文档列表。 |
- |
所有以spring.ai.oci.genai.cohere.chat.options开头的属性可以在运行时通过向Prompt调用添加请求特定的运行时选项来覆盖。 |
运行时选项
The OCICohereChatOptions.java 提供了模型配置,例如要使用的模型、温度、频率惩罚等。
启动时,可以使用OCICohereChatModel(api, options)构造函数或spring.ai.oci.genai.cohere.chat.options.*属性来配置默认选项。
在运行时,您可以覆盖默认选项并通过向Prompt调用添加新的、针对请求的选项来实现。例如,要为特定请求覆盖默认模型和温度:
ChatResponse response = chatModel.call(
new Prompt(
"Generate the names of 5 famous pirates.",
OCICohereChatOptions.builder()
.model("my-model-ocid")
.compartment("my-compartment-ocid")
.temperature(0.5)
.build()
));
样本控制器
创建一个新的Spring Boot项目,并在pom(或gradle)依赖中添加spring-ai-starter-model-oci-genai。
在src/main/resources目录下添加一个application.properties文件,以启用并配置OCI GenAI Cohere聊天模型:
spring.ai.oci.genai.authenticationType=file
spring.ai.oci.genai.file=/path/to/oci/config/file
spring.ai.oci.genai.cohere.chat.options.compartment=my-compartment-ocid
spring.ai.oci.genai.cohere.chat.options.servingMode=on-demand
spring.ai.oci.genai.cohere.chat.options.model=my-chat-model-ocid
替换file、compartment和model为您OCI账户中的值。 |
这将创建一个OCICohereChatModel实现,你可以在你的类中注入。
以下是一个使用聊天模型进行文本生成的简单@Controller类示例。
@RestController
public class ChatController {
private final OCICohereChatModel chatModel;
@Autowired
public ChatController(OCICohereChatModel chatModel) {
this.chatModel = chatModel;
}
@GetMapping("/ai/generate")
public Map generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
return Map.of("generation", chatModel.call(message));
}
@GetMapping("/ai/generateStream")
public Flux<ChatResponse> generateStream(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
var prompt = new Prompt(new UserMessage(message));
return chatModel.stream(prompt);
}
}
手动配置
The OCICohereChatModel 实现了 ChatModel 并使用 OCI Java SDK 连接到 OCI 生成式人工智能服务。
将如下的spring-ai-oci-genai依赖添加到项目中Maven的pom.xml文件中:
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-oci-genai</artifactId>
</dependency>
请将以下内容添加到您的Gradle build.gradle 构建文件中。
dependencies {
implementation 'org.springframework.ai:spring-ai-oci-genai'
}
| 请参阅依赖管理部分,将Spring AI BOM添加到您的构建文件中。 |
接下来,创建一个OCICohereChatModel 并用于文本生成:
var CONFIG_FILE = Paths.get(System.getProperty("user.home"), ".oci", "config").toString();
var COMPARTMENT_ID = System.getenv("OCI_COMPARTMENT_ID");
var MODEL_ID = System.getenv("OCI_CHAT_MODEL_ID");
ConfigFileAuthenticationDetailsProvider authProvider = new ConfigFileAuthenticationDetailsProvider(
CONFIG_FILE,
"DEFAULT"
);
var genAi = GenerativeAiInferenceClient.builder()
.region(Region.valueOf("us-chicago-1"))
.build(authProvider);
var chatModel = new OCICohereChatModel(genAi, OCICohereChatOptions.builder()
.model(MODEL_ID)
.compartment(COMPARTMENT_ID)
.servingMode("on-demand")
.build());
ChatResponse response = chatModel.call(
new Prompt("Generate the names of 5 famous pirates."));
The OCICohereChatOptions 提供了聊天请求的配置信息。
The OCICohereChatOptions.Builder 是流畅选项构建器。