refactor(llmx-impl-openai): 重构 OpenAI 模型服务和响应处理 #51
@ -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,
|
||||
|
||||
@ -6,8 +6,8 @@ import com.fasterxml.jackson.annotation.JsonProperty
|
||||
data class SseEvent<T>(
|
||||
@JsonProperty("type")
|
||||
val type: String,
|
||||
@JsonProperty("data")
|
||||
val data: T
|
||||
@JsonProperty("response")
|
||||
val response: T
|
||||
)
|
||||
|
||||
/** response.created, response.in_progress, response.completed 共用结构 */
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user