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 输入给大模型。
响应输出:将输出返回给前端。

浙公网安备 33010602011771号