ChatClient与OpenAiChatModel、OpenAIClient 之间的关系

核心关系概述

ChatClient 包含 OpenAiChatModel(包含 OpenAIClient)

1、OpenAIClient:主要配置怎么连接

由 new OpenAIClientImpl(options) 与 ClientOptions options 创建。

点击查看代码
Timeout timeout = Timeout.builder()
        .connect(Duration.ofMillis(connectTimeout))
        .read(Duration.ofMillis(readTimeout))
        .build();

ClientOptions options = ClientOptions.Companion.builder()
        .apiKey(apiKey)
        .credential(BearerTokenCredential.create(apiKey))
        .baseUrl(resolveVersionedBaseUrl(baseUrl))
        .timeout(timeout)
        .httpClient(SpringAiOpenAiHttpClient.builder().timeout(timeout).build())
        .build();

OpenAIClient openAiClient = new OpenAIClientImpl(options);

2、OpenAiChatModel:主要配置怎么聊天

由 OpenAiChatOptions 和 OpenAIClient 创建。其中 OpenAiChatOptions 主要配置模型参数,比如模型是什么、temperature 大小(越大内容越发散)。

点击查看代码
OpenAiChatModel.builder()
        .openAiClient(openAiClient)
        .openAiClientAsync(openAiClient.async())
        .options(options)
        .observationRegistry(observationRegistry != null ? observationRegistry : ObservationRegistry.NOOP)
        .build();

3、ChatClient:面向场景的高级编排器

由 OpenAiChatModel、prompt、Advisor、tool、message、opt 创建。

核心处理逻辑:
Prompt 构建:其中 prompt 分为 user、system。历史记录的处理一般是输入用户问题与历史记录到历史记录模板,获取模板内容,再输入给大模型重新处理。
RAG 检索增强:如果有知识库,就将大模型处理过的文本进行检索,再将用户问题与检索出的文档作为 userPrompt 输入给大模型。
响应输出:将输出返回给前端。

posted @ 2026-06-16 17:58  xz_move_on  阅读(19)  评论(0)    收藏  举报