OCI GenAI Cohere Chat
OCI GenAI 服務 提供隨需模型或專用 AI 叢集的生成式 AI 聊天功能。
OCI 聊天模型頁面 和 OCI Generative AI Playground 提供關於在 OCI 上使用和託管聊天模型的詳細資訊。
先決條件
您需要一個有效的 Oracle Cloud Infrastructure (OCI) 帳戶才能使用 OCI GenAI Cohere Chat 用戶端。此用戶端提供四種不同的連線方式,包括使用使用者和私密金鑰的簡單驗證、工作負載身分、執行個體主體或 OCI 組態檔驗證。
自動組態
Spring AI 為 OCI GenAI Cohere Chat 用戶端提供 Spring Boot 自動組態。若要啟用它,請將以下相依性新增至您專案的 Maven pom.xml
檔案
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-oci-genai-spring-boot-starter</artifactId>
</dependency>
或您的 Gradle build.gradle
建置檔案。
dependencies {
implementation 'org.springframework.ai:spring-ai-oci-genai-spring-boot-starter'
}
請參閱 相依性管理 章節,將 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.chat.cohere
是用於組態 OCI GenAI Cohere Chat 的 ChatModel
實作的屬性字首。
屬性 | 描述 | 預設值 |
---|---|---|
spring.ai.oci.genai.chat.cohere.enabled |
啟用 OCI GenAI Cohere 聊天模型。 |
true |
spring.ai.oci.genai.chat.cohere.options.model |
模型 OCID 或端點 |
- |
spring.ai.oci.genai.chat.cohere.options.compartment |
模型區間 OCID。 |
- |
spring.ai.oci.genai.chat.cohere.options.servingMode |
要使用的模型服務模式。可以是 |
on-demand |
spring.ai.oci.genai.chat.cohere.options.preambleOverride |
覆寫聊天模型的提示前言 |
- |
spring.ai.oci.genai.chat.cohere.options.temperature |
推論溫度 |
- |
spring.ai.oci.genai.chat.cohere.options.topP |
Top P 參數 |
- |
spring.ai.oci.genai.chat.cohere.options.topK |
Top K 參數 |
- |
spring.ai.oci.genai.chat.cohere.options.frequencyPenalty |
較高的值會減少重複的 token,輸出會更隨機。 |
- |
spring.ai.oci.genai.chat.cohere.options.presencePenalty |
較高的值會鼓勵產生具有未使用 token 的輸出。 |
- |
spring.ai.oci.genai.chat.cohere.options.stop |
將結束完成產生的文字序列清單。 |
- |
spring.ai.oci.genai.chat.cohere.options.documents |
聊天內容中使用的文件清單。 |
- |
所有字首為 spring.ai.oci.genai.chat.cohere.options 的屬性都可以在執行時被覆寫,方法是將請求特定的 執行階段選項 新增至 Prompt 呼叫。 |
執行階段選項
OCICohereChatOptions.java 提供模型組態,例如要使用的模型、溫度、頻率懲罰等。
在啟動時,可以使用 OCICohereChatModel(api, options)
建構函式或 spring.ai.oci.genai.chat.cohere.options.*
屬性來組態預設選項。
在執行階段,您可以將新的、請求特定的選項新增至 Prompt
呼叫,以覆寫預設選項。例如,若要覆寫特定請求的預設模型和溫度
ChatResponse response = chatModel.call(
new Prompt(
"Generate the names of 5 famous pirates.",
OCICohereChatOptions.builder()
.withModel("my-model-ocid")
.withCompartment("my-compartment-ocid")
.withTemperature(0.5)
.build()
));
範例控制器
建立 新的 Spring Boot 專案,並將 spring-ai-oci-genai-spring-boot-starter
新增至您的 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()
.withModel(MODEL_ID)
.withCompartment(COMPARTMENT_ID)
.withServingMode("on-demand")
.build());
ChatResponse response = chatModel.call(
new Prompt("Generate the names of 5 famous pirates."));
OCICohereChatOptions
提供聊天請求的組態資訊。OCICohereChatOptions.Builder
是流暢選項建構器。