refactor(llmx-impl-openai): 重构 OpenAI 模型服务和响应处理 #51
@ -54,19 +54,20 @@ class OpenAiModelServiceImpl(
|
|||||||
extractContent = { json ->
|
extractContent = { json ->
|
||||||
val node = objectMapper.readTree(json)
|
val node = objectMapper.readTree(json)
|
||||||
val type = node["type"]?.asText()
|
val type = node["type"]?.asText()
|
||||||
|
val response = node["response"]
|
||||||
|
val data = response ?: node
|
||||||
when (type) {
|
when (type) {
|
||||||
"response.output_text.delta" -> {
|
"response.output_text.delta" -> {
|
||||||
val outputTextDelta = objectMapper.treeToValue(node, OutputTextDelta::class.java)
|
val outputTextDelta = objectMapper.treeToValue(data, OutputTextDelta::class.java)
|
||||||
ChatResponsePart(content = outputTextDelta.delta)
|
ChatResponsePart(content = outputTextDelta.delta)
|
||||||
}
|
}
|
||||||
|
|
||||||
"response.output_text.done" -> {
|
"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)
|
ChatResponsePart(content = outputTextDone.text, done = true)
|
||||||
}
|
}
|
||||||
"response.completed" -> {
|
"response.completed" -> {
|
||||||
val completed = objectMapper.treeToValue(node, FullResponse::class.java)
|
val completed = objectMapper.treeToValue(data, FullResponse::class.java)
|
||||||
val usage = completed.usage?.let {
|
val usage = completed.usage?.let {
|
||||||
Usage(
|
Usage(
|
||||||
promptTokens = it.inputTokens ?: 0,
|
promptTokens = it.inputTokens ?: 0,
|
||||||
|
|||||||
@ -6,8 +6,8 @@ import com.fasterxml.jackson.annotation.JsonProperty
|
|||||||
data class SseEvent<T>(
|
data class SseEvent<T>(
|
||||||
@JsonProperty("type")
|
@JsonProperty("type")
|
||||||
val type: String,
|
val type: String,
|
||||||
@JsonProperty("data")
|
@JsonProperty("response")
|
||||||
val data: T
|
val response: T
|
||||||
)
|
)
|
||||||
|
|
||||||
/** response.created, response.in_progress, response.completed 共用结构 */
|
/** response.created, response.in_progress, response.completed 共用结构 */
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user