from config import settings, google_ai_settings
import discord
from discord import app_commands
from discord.ext import commands
from googletrans import Translator
import google.generativeai as genai
from google.generativeai.types import StopCandidateException
class SText(commands.Cog):
"""Text"""
def __init__(self, bot):
self.bot = bot
genai.configure(api_key=google_ai_settings.get("google_api_key"))
self.model = genai.GenerativeModel(
model_name="gemini-1.0-pro",
safety_settings=google_ai_settings.get("safety_settings"),
generation_config=google_ai_settings.get("generation_config"),
)
self.chat_sessions = {}
...
@app_commands.command(name="ai", description="Общение с нейросетью Google Gemini")
@app_commands.describe(message="Задай свой вопрос, скотина блядь")
async def ai(self, interaction: discord.Interaction, message: str):
embed = discord.Embed(color=0xffcd4c, title=f"{interaction.user.name} :: {message}")
await interaction.response.send_message(embed=embed)
embed.set_footer(text="DebilAI - Powered by Google Gemini 1.0 Pro",
icon_url="https://tidurak.github.io/google-gemini-icon.png")
chat_session = self.chat_sessions.get(interaction.guild.id)
if chat_session == None:
self.chat_sessions[interaction.guild.id] = self.model.start_chat(history=[])
chat_session = self.chat_sessions.get(interaction.guild.id)
response = None
try:
response = chat_session.send_message(message)
except StopCandidateException:
fuck_you_message = "ТЫ еблаН? Я нейронка от гугла, и у меня ёбнутые фильтры на т.н. \"опасный\" контент. ЫЫЫЫЫ"
embed.add_field(name="🚫 Иди нахуй", value=fuck_you_message, inline=False)
await interaction.edit_original_response(embed=embed)
return
if len(response.text) > 1000:
res = response.text
j = 1
embed.add_field(name="\u200b", value=res[:999], inline=False)
while True:
j += 1
res = res[999:]
if len(res) > 1000:
embed.add_field(name="\u200b", value=res[0:999], inline=False)
else:
embed.add_field(name="\u200b", value=res, inline=False)
break
else:
embed.add_field(name="\u200b", value=response.text, inline=False)
await interaction.edit_original_response(embed=embed)
async def setup(bot):
await bot.add_cog(SText(bot))
Everything works fine, but after like 10 minutes api responds only on second time, and i get Exception:
Traceback (most recent call last):
File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\app_commands\commands.py", line 841, in _do_call
return await self._callback(self.binding, interaction, **params) # type: ignore
File "C:\Users\User\Files\bot\cogs\slash\s_text.py", line 134, in ai
response = chat_session.send_message(message)
File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\google\generativeai\generative_models.py", line 496, in send_message
response = self.model.generate_content(
File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\google\generativeai\generative_models.py", line 262, in generate_content
response = self._client.generate_content(
File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\google\ai\generativelanguage_v1beta\services\generative_service\client.py", line 812, in generate_content
response = rpc(
File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\google\api_core\gapic_v1\method.py", line 131, in __call__
return wrapped_func(*args, **kwargs)
File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\google\api_core\retry\retry_unary.py", line 293, in retry_wrapped_func
return retry_target(
File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\google\api_core\retry\retry_unary.py", line 153, in retry_target
_retry_error_helper(
File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\google\api_core\retry\retry_base.py", line 212, in _retry_error_helper
raise final_exc from source_exc
File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\google\api_core\retry\retry_unary.py", line 144, in retry_target
result = target()
File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\google\api_core\timeout.py", line 120, in func_with_timeout
return func(*args, **kwargs)
File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\google\api_core\grpc_helpers.py", line 78, in error_remapped_callable
raise exceptions.from_grpc_error(exc) from exc
google.api_core.exceptions.Unknown: None Stream removed
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\app_commands\tree.py", line 1248, in _call
await command._invoke_with_namespace(interaction, namespace)
File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\app_commands\commands.py", line 867, in _invoke_with_namespace
return await self._do_call(interaction, transformed_values)
File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\app_commands\commands.py", line 860, in _do_call
raise CommandInvokeError(self, e) from e
discord.app_commands.errors.CommandInvokeError: Command 'ai' raised an exception: Unknown: None Stream removed
Description of the bug:
Here is my code:
Everything works fine, but after like 10 minutes api responds only on second time, and i get Exception:
What should I do?
Actual vs expected behavior:
No response
Any other information you'd like to share?
No response