forked from open-webui/open-webui
		
	Merge pull request #1544 from lainedfles/generation_info_approximate_total
feat: human readable Generation Info total
This commit is contained in:
		
						commit
						d9ce1d3ea3
					
				
					 2 changed files with 27 additions and 1 deletions
				
			
		|  | @ -18,6 +18,7 @@ | ||||||
| 	import { synthesizeOpenAISpeech } from '$lib/apis/openai'; | 	import { synthesizeOpenAISpeech } from '$lib/apis/openai'; | ||||||
| 	import { imageGenerations } from '$lib/apis/images'; | 	import { imageGenerations } from '$lib/apis/images'; | ||||||
| 	import { | 	import { | ||||||
|  | 		approximateToHumanReadable, | ||||||
| 		extractSentences, | 		extractSentences, | ||||||
| 		revertSanitizedResponseContent, | 		revertSanitizedResponseContent, | ||||||
| 		sanitizeResponseContent | 		sanitizeResponseContent | ||||||
|  | @ -122,7 +123,10 @@ | ||||||
|                     eval_count: ${message.info.eval_count ?? 'N/A'}<br/> |                     eval_count: ${message.info.eval_count ?? 'N/A'}<br/> | ||||||
|                     eval_duration: ${ |                     eval_duration: ${ | ||||||
| 											Math.round(((message.info.eval_duration ?? 0) / 1000000) * 100) / 100 ?? 'N/A' | 											Math.round(((message.info.eval_duration ?? 0) / 1000000) * 100) / 100 ?? 'N/A' | ||||||
| 										}ms</span>`, | 										}ms<br/> | ||||||
|  |                     approximate_total: ${approximateToHumanReadable( | ||||||
|  | 											message.info.total_duration | ||||||
|  | 										)}</span>`, | ||||||
| 				allowHTML: true | 				allowHTML: true | ||||||
| 			}); | 			}); | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
|  | @ -467,3 +467,25 @@ export const blobToFile = (blob, fileName) => { | ||||||
| 	const file = new File([blob], fileName, { type: blob.type }); | 	const file = new File([blob], fileName, { type: blob.type }); | ||||||
| 	return file; | 	return file; | ||||||
| }; | }; | ||||||
|  | 
 | ||||||
|  | export const approximateToHumanReadable = (nanoseconds: number) => { | ||||||
|  | 	const seconds = Math.floor((nanoseconds / 1e9) % 60); | ||||||
|  | 	const minutes = Math.floor((nanoseconds / 6e10) % 60); | ||||||
|  | 	const hours = Math.floor((nanoseconds / 3.6e12) % 24); | ||||||
|  | 
 | ||||||
|  | 	const results: string[] = []; | ||||||
|  | 
 | ||||||
|  | 	if (seconds >= 0) { | ||||||
|  | 		results.push(`${seconds}s`); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	if (minutes > 0) { | ||||||
|  | 		results.push(`${minutes}m`); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	if (hours > 0) { | ||||||
|  | 		results.push(`${hours}h`); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return results.reverse().join(' '); | ||||||
|  | }; | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Timothy Jaeryang Baek
						Timothy Jaeryang Baek