OCI GenAI Cohere Chat
OCI GenAI 服務提供基於按需模型或專用 AI 整合系統的生成式 AI 聊天功能。
OCI 聊天模型頁面和OCI 生成式 AI 遊樂場提供了有關在 OCI 上使用和託管聊天模型的詳細資訊。
先決條件
您需要一個活躍的Oracle Cloud Infrastructure (OCI)賬戶才能使用 OCI GenAI Cohere 聊天客戶端。該客戶端提供四種不同的連線方式,包括使用使用者和私鑰的簡單認證、工作負載身份、例項主體或 OCI 配置檔案認證。
新增儲存庫和 BOM
Spring AI Artifacts 釋出在 Maven Central 和 Spring Snapshot 倉庫中。請參閱Artifact 倉庫部分,將這些倉庫新增到您的構建系統。
為了幫助依賴管理,Spring AI 提供了一個 BOM(物料清單),以確保在整個專案中使用的 Spring AI 版本一致。請參閱依賴管理部分,將 Spring AI BOM 新增到您的構建系統。
自動配置
|
Spring AI 自動配置、啟動模組的工件名稱發生了重大變化。請參閱 升級說明 以獲取更多資訊。 |
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 新增到您的構建檔案中。 |
聊天屬性
連線屬性
字首 spring.ai.oci.genai 是用於配置與 OCI GenAI 連線的屬性字首。
| 財產 | 描述 | 預設值 |
|---|---|---|
spring.ai.oci.genai.authenticationType |
向 OCI 驗證時使用的認證型別。可以是 |
file |
spring.ai.oci.genai.region |
OCI 服務區域。 |
us-chicago-1 |
spring.ai.oci.genai.tenantId |
OCI 租戶 OCID,在進行 |
- |
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 配置檔案路徑。在進行 |
<使用者主目錄>/.oci/config |
spring.ai.oci.genai.profile |
OCI 配置檔名稱。在進行 |
DEFAULT |
spring.ai.oci.genai.endpoint |
可選的 OCI GenAI 端點。 |
- |
配置屬性
|
聊天自動配置的啟用和停用現在透過字首為 |
字首 spring.ai.oci.genai.cohere.chat 是配置 OCI GenAI Cohere Chat 的 ChatModel 實現的屬性字首。
| 財產 | 描述 | 預設值 |
|---|---|---|
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 |
較高的值鼓勵生成帶有未使用令牌的輸出。 |
- |
spring.ai.oci.genai.cohere.chat.options.stop |
將結束補全生成的文字序列列表。 |
- |
spring.ai.oci.genai.cohere.chat.options.documents |
聊天上下文中使用的文件列表。 |
- |
所有字首為 spring.ai.oci.genai.cohere.chat.options 的屬性都可以在執行時透過在 Prompt 呼叫中新增請求特定的執行時選項來覆蓋。 |
執行時選項
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 專案,並將 spring-ai-starter-model-oci-genai 新增到您的 pom (或 gradle) 依賴項中。
在 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);
}
}
手動配置
OCICohereChatModel 實現了 ChatModel 並使用 OCI Java SDK 連線到 OCI GenAI 服務。
將 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."));
OCICohereChatOptions 提供了聊天請求的配置資訊。OCICohereChatOptions.Builder 是一個流暢的選項構建器。