use a lock for AskAI
This commit is contained in:
parent
093991ad70
commit
42215bff2a
1 changed files with 28 additions and 19 deletions
|
@ -447,6 +447,7 @@ class Ollama(commands.Cog):
|
|||
self.last_server = 0
|
||||
self.contexts = {}
|
||||
self.history = ChatHistory()
|
||||
self.lock = asyncio.Lock()
|
||||
|
||||
def next_server(self, increment: bool = True) -> str:
|
||||
"""Returns the next server key."""
|
||||
|
@ -884,12 +885,17 @@ class Ollama(commands.Cog):
|
|||
"Downloading orca-mini:3b on server %r - %s (%.2f%%)", server, handler.status, handler.percent
|
||||
)
|
||||
|
||||
if self.lock.locked():
|
||||
await ctx.respond("Waiting for server to be free...")
|
||||
async with self.lock:
|
||||
await ctx.delete(delay=0.1)
|
||||
messages = self.history.get_history(thread)
|
||||
embed = discord.Embed(description="*waiting...*")
|
||||
embed = discord.Embed(description="*Waking Ollama up...*")
|
||||
embed.add_field(
|
||||
name="\u200b",
|
||||
value="[in reply to message from {0.author.display_name}]({0.jump_url})".format(message),
|
||||
)
|
||||
async with self.lock:
|
||||
await ctx.respond(embed=embed)
|
||||
last_edit = time.time()
|
||||
with client.new_chat("orca-mini:3b", messages) as handler:
|
||||
|
@ -904,10 +910,13 @@ class Ollama(commands.Cog):
|
|||
else:
|
||||
embed.colour = discord.Color.blurple()
|
||||
embed.set_footer(text="Using server %r" % server, icon_url=CONFIG["ollama"][server].get("icon_url"))
|
||||
if time.time() >= (last_edit + 5.1) or done:
|
||||
if time.time() >= (last_edit + 5.1) or done is True:
|
||||
await ctx.edit(embed=embed)
|
||||
last_edit = time.time()
|
||||
if done:
|
||||
break
|
||||
embed.colour = discord.Colour.dark_theme()
|
||||
return await ctx.edit(embed=embed)
|
||||
|
||||
|
||||
def setup(bot):
|
||||
|
|
Loading…
Reference in a new issue