Fix /ollama pull
This commit is contained in:
parent
af11baeeaa
commit
3c61504cb3
1 changed files with 39 additions and 38 deletions
|
@ -434,45 +434,46 @@ class Chat(commands.Cog):
|
||||||
last_completed = 0
|
last_completed = 0
|
||||||
last_completed_ts = time.time()
|
last_completed_ts = time.time()
|
||||||
|
|
||||||
async for line in await client.pull(model, stream=True):
|
async with ollama_client(str(server.base_url)) as client:
|
||||||
if view.event.is_set():
|
async for line in await client.pull(model, stream=True):
|
||||||
embed.add_field(name="Error!", value="Download cancelled.")
|
if view.event.is_set():
|
||||||
embed.colour = discord.Colour.red()
|
embed.add_field(name="Error!", value="Download cancelled.")
|
||||||
await ctx.edit(embed=embed)
|
embed.colour = discord.Colour.red()
|
||||||
return
|
await ctx.edit(embed=embed)
|
||||||
self.log.debug("Response from %r: %r", server, line)
|
return
|
||||||
if line["status"] in {
|
self.log.debug("Response from %r: %r", server, line)
|
||||||
"pulling manifest",
|
if line["status"] in {
|
||||||
"verifying sha256 digest",
|
"pulling manifest",
|
||||||
"writing manifest",
|
"verifying sha256 digest",
|
||||||
"removing any unused layers",
|
"writing manifest",
|
||||||
"success"
|
"removing any unused layers",
|
||||||
}:
|
"success"
|
||||||
embed.description = line["status"].capitalize()
|
}:
|
||||||
else:
|
embed.description = line["status"].capitalize()
|
||||||
total = line["total"]
|
else:
|
||||||
completed = line.get("completed", 0)
|
total = line["total"]
|
||||||
percent = round(completed / total * 100, 1)
|
completed = line.get("completed", 0)
|
||||||
pb_fill = "▰" * int(percent / 10)
|
percent = round(completed / total * 100, 1)
|
||||||
pb_empty = "▱" * (10 - int(percent / 10))
|
pb_fill = "▰" * int(percent / 10)
|
||||||
bytes_per_second = completed - last_completed
|
pb_empty = "▱" * (10 - int(percent / 10))
|
||||||
bytes_per_second /= (time.time() - last_completed_ts)
|
bytes_per_second = completed - last_completed
|
||||||
last_completed = completed
|
bytes_per_second /= (time.time() - last_completed_ts)
|
||||||
last_completed_ts = time.time()
|
last_completed = completed
|
||||||
mbps = round((bytes_per_second * 8) / 1024 / 1024)
|
last_completed_ts = time.time()
|
||||||
eta = (total - completed) / max(1, bytes_per_second)
|
mbps = round((bytes_per_second * 8) / 1024 / 1024)
|
||||||
progress_bar = f"[{pb_fill}{pb_empty}]"
|
eta = (total - completed) / max(1, bytes_per_second)
|
||||||
ns_total = naturalsize(total, binary=True)
|
progress_bar = f"[{pb_fill}{pb_empty}]"
|
||||||
ns_completed = naturalsize(completed, binary=True)
|
ns_total = naturalsize(total, binary=True)
|
||||||
embed.description = (
|
ns_completed = naturalsize(completed, binary=True)
|
||||||
f"{line['status'].capitalize()} {percent}% {progress_bar} "
|
embed.description = (
|
||||||
f"({ns_completed}/{ns_total} @ {mbps} Mb/s) "
|
f"{line['status'].capitalize()} {percent}% {progress_bar} "
|
||||||
f"[ETA: {naturaldelta(eta)}]"
|
f"({ns_completed}/{ns_total} @ {mbps} Mb/s) "
|
||||||
)
|
f"[ETA: {naturaldelta(eta)}]"
|
||||||
|
)
|
||||||
|
|
||||||
if time.time() - last_edit >= 2.5:
|
if time.time() - last_edit >= 2.5:
|
||||||
await ctx.edit(embed=embed)
|
await ctx.edit(embed=embed)
|
||||||
last_edit = time.time()
|
last_edit = time.time()
|
||||||
except ResponseError as err:
|
except ResponseError as err:
|
||||||
if err.error.endswith("file does not exist"):
|
if err.error.endswith("file does not exist"):
|
||||||
await ctx.edit(
|
await ctx.edit(
|
||||||
|
|
Loading…
Reference in a new issue