diff --git a/llmx-impl/llmx-impl-openai/src/main/kotlin/org/jcnc/llmx/impl/openai/config/service/impl/OpenAiModelServiceImpl.kt b/llmx-impl/llmx-impl-openai/src/main/kotlin/org/jcnc/llmx/impl/openai/config/service/impl/OpenAiModelServiceImpl.kt index 33c1cdb..ec32f50 100644 --- a/llmx-impl/llmx-impl-openai/src/main/kotlin/org/jcnc/llmx/impl/openai/config/service/impl/OpenAiModelServiceImpl.kt +++ b/llmx-impl/llmx-impl-openai/src/main/kotlin/org/jcnc/llmx/impl/openai/config/service/impl/OpenAiModelServiceImpl.kt @@ -54,19 +54,20 @@ class OpenAiModelServiceImpl( extractContent = { json -> val node = objectMapper.readTree(json) val type = node["type"]?.asText() - + val response = node["response"] + val data = response ?: node when (type) { "response.output_text.delta" -> { - val outputTextDelta = objectMapper.treeToValue(node, OutputTextDelta::class.java) + val outputTextDelta = objectMapper.treeToValue(data, OutputTextDelta::class.java) ChatResponsePart(content = outputTextDelta.delta) } "response.output_text.done" -> { - val outputTextDone = objectMapper.treeToValue(node, OutputTextDone::class.java) + val outputTextDone = objectMapper.treeToValue(data, OutputTextDone::class.java) ChatResponsePart(content = outputTextDone.text, done = true) } "response.completed" -> { - val completed = objectMapper.treeToValue(node, FullResponse::class.java) + val completed = objectMapper.treeToValue(data, FullResponse::class.java) val usage = completed.usage?.let { Usage( promptTokens = it.inputTokens ?: 0, diff --git a/llmx-impl/llmx-impl-openai/src/main/kotlin/org/jcnc/llmx/impl/openai/entities/response/OpenAiMultimodalityChatReposponse.kt b/llmx-impl/llmx-impl-openai/src/main/kotlin/org/jcnc/llmx/impl/openai/entities/response/OpenAiMultimodalityChatReposponse.kt index c36371a..4cfcc7a 100644 --- a/llmx-impl/llmx-impl-openai/src/main/kotlin/org/jcnc/llmx/impl/openai/entities/response/OpenAiMultimodalityChatReposponse.kt +++ b/llmx-impl/llmx-impl-openai/src/main/kotlin/org/jcnc/llmx/impl/openai/entities/response/OpenAiMultimodalityChatReposponse.kt @@ -6,8 +6,8 @@ import com.fasterxml.jackson.annotation.JsonProperty data class SseEvent( @JsonProperty("type") val type: String, - @JsonProperty("data") - val data: T + @JsonProperty("response") + val response: T ) /** response.created, response.in_progress, response.completed 共用结构 */