From 980c61d08bb11540d1d6f8a95ff7d77a868f6ed0 Mon Sep 17 00:00:00 2001 From: nexy7574 Date: Fri, 12 Jan 2024 10:00:12 +0000 Subject: [PATCH] Make timings more accurate --- src/cogs/ollama.py | 40 +++++++++++++++++++++++++++++++++++----- 1 file changed, 35 insertions(+), 5 deletions(-) diff --git a/src/cogs/ollama.py b/src/cogs/ollama.py index bcad64d..8fec1bc 100644 --- a/src/cogs/ollama.py +++ b/src/cogs/ollama.py @@ -18,6 +18,36 @@ from discord.ext import commands from conf import CONFIG +def get_time_spent(nanoseconds: int) -> str: + hours, minutes, seconds = 0, 0, 0 + seconds = nanoseconds / 1e9 + if seconds >= 60: + minutes, seconds = divmod(seconds, 60) + if minutes >= 60: + hours, minutes = divmod(minutes, 60) + + result = [] + if seconds: + if seconds != 1: + label = "seconds" + else: + label = "second" + result.append(f"{round(seconds)} {label}") + if minutes: + if minutes != 1: + label = "minutes" + else: + label = "minute" + result.append(f"{round(minutes)} {label}") + if hours: + if hours != 1: + label = "hours" + else: + label = "hour" + result.append(f"{round(hours)} {label}") + return ", ".join(reversed(result)) + + class OllamaView(View): def __init__(self, ctx: discord.ApplicationContext): super().__init__(timeout=3600, disable_on_timeout=True) @@ -388,7 +418,7 @@ class Ollama(commands.Cog): embed.add_field(name="Context Key", value=key, inline=True) self.log.debug("Ollama finished consuming.") embed.title = "Done!" - embed.color = discord.Color.green() + embed.colour = discord.Color.green() value = buffer.getvalue() if len(value) >= 4096: @@ -408,10 +438,10 @@ class Ollama(commands.Cog): await ctx.edit(embed=embed, view=None) if line.get("done"): - total_duration = humanize.naturaldelta(line["total_duration"] / 1e9) - load_duration = humanize.naturaldelta(line["load_duration"] / 1e9) - prompt_eval_duration = humanize.naturaldelta(line["prompt_eval_duration"] / 1e9) - eval_duration = humanize.naturaldelta(line["eval_duration"] / 1e9) + total_duration = get_time_spent(line["total_duration"]) + load_duration = get_time_spent(line["load_duration"]) + prompt_eval_duration = get_time_spent(line["prompt_eval_duration"]) + eval_duration = get_time_spent(line["eval_duration"]) embed = discord.Embed( title="Timings",