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 驗證時使用的認證型別。可以是 fileinstance-principalworkload-identitysimple

file

spring.ai.oci.genai.region

OCI 服務區域。

us-chicago-1

spring.ai.oci.genai.tenantId

OCI 租戶 OCID,在進行 simple 認證時使用。

-

spring.ai.oci.genai.userId

OCI 使用者 OCID,在進行 simple 認證時使用。

-

spring.ai.oci.genai.fingerprint

私鑰指紋,在進行 simple 認證時使用。

-

spring.ai.oci.genai.privateKey

私鑰內容,在進行 simple 認證時使用。

-

spring.ai.oci.genai.passPhrase

可選的私鑰密碼短語,在進行 simple 認證並使用受密碼短語保護的私鑰時使用。

-

spring.ai.oci.genai.file

OCI 配置檔案路徑。在進行 file 認證時使用。

<使用者主目錄>/.oci/config

spring.ai.oci.genai.profile

OCI 配置檔名稱。在進行 file 認證時使用。

DEFAULT

spring.ai.oci.genai.endpoint

可選的 OCI GenAI 端點。

-

配置屬性

聊天自動配置的啟用和停用現在透過字首為 spring.ai.model.chat 的頂級屬性進行配置。要啟用,請設定 spring.ai.model.chat=oci-genai (預設啟用)。要停用,請設定 spring.ai.model.chat=none (或任何不匹配 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-demanddedicated

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
filecompartmentmodel 替換為您的 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 是一個流暢的選項構建器。

© . This site is unofficial and not affiliated with VMware.