|
84 | 84 | * @author Jihoon Kim |
85 | 85 | * @author Alexandros Pappas |
86 | 86 | * @author Ilayaperumal Gopinathan |
| 87 | + * @author Sun Yuhan |
87 | 88 | * @since 1.0.0 |
88 | 89 | */ |
89 | 90 | public class OllamaChatModel implements ChatModel { |
@@ -170,18 +171,21 @@ static ChatResponseMetadata from(OllamaApi.ChatResponse response, ChatResponse p |
170 | 171 | Duration totalDuration = response.getTotalDuration(); |
171 | 172 |
|
172 | 173 | if (previousChatResponse != null && previousChatResponse.getMetadata() != null) { |
173 | | - if (previousChatResponse.getMetadata().get(METADATA_EVAL_DURATION) != null) { |
174 | | - evalDuration = evalDuration.plus(previousChatResponse.getMetadata().get(METADATA_EVAL_DURATION)); |
| 174 | + Object metadataEvalDuration = previousChatResponse.getMetadata().get(METADATA_EVAL_DURATION); |
| 175 | + if (metadataEvalDuration != null && evalDuration != null) { |
| 176 | + evalDuration = evalDuration.plus((Duration) metadataEvalDuration); |
175 | 177 | } |
176 | | - if (previousChatResponse.getMetadata().get(METADATA_PROMPT_EVAL_DURATION) != null) { |
177 | | - promptEvalDuration = promptEvalDuration |
178 | | - .plus(previousChatResponse.getMetadata().get(METADATA_PROMPT_EVAL_DURATION)); |
| 178 | + Object metadataPromptEvalDuration = previousChatResponse.getMetadata().get(METADATA_PROMPT_EVAL_DURATION); |
| 179 | + if (metadataPromptEvalDuration != null && promptEvalDuration != null) { |
| 180 | + promptEvalDuration = promptEvalDuration.plus((Duration) metadataPromptEvalDuration); |
179 | 181 | } |
180 | | - if (previousChatResponse.getMetadata().get(METADATA_LOAD_DURATION) != null) { |
181 | | - loadDuration = loadDuration.plus(previousChatResponse.getMetadata().get(METADATA_LOAD_DURATION)); |
| 182 | + Object metadataLoadDuration = previousChatResponse.getMetadata().get(METADATA_LOAD_DURATION); |
| 183 | + if (metadataLoadDuration != null && loadDuration != null) { |
| 184 | + loadDuration = loadDuration.plus((Duration) metadataLoadDuration); |
182 | 185 | } |
183 | | - if (previousChatResponse.getMetadata().get(METADATA_TOTAL_DURATION) != null) { |
184 | | - totalDuration = totalDuration.plus(previousChatResponse.getMetadata().get(METADATA_TOTAL_DURATION)); |
| 186 | + Object metadataTotalDuration = previousChatResponse.getMetadata().get(METADATA_TOTAL_DURATION); |
| 187 | + if (metadataTotalDuration != null && totalDuration != null) { |
| 188 | + totalDuration = totalDuration.plus((Duration) metadataTotalDuration); |
185 | 189 | } |
186 | 190 | if (previousChatResponse.getMetadata().getUsage() != null) { |
187 | 191 | promptTokens += previousChatResponse.getMetadata().getUsage().getPromptTokens(); |
|
0 commit comments