feat: llama3 bot

Signed-off-by: yihong0618 <zouzou0208@gmail.com>
This commit is contained in:
yihong0618
2024-04-19 16:22:43 +08:00
parent cd2185c7d6
commit 450c08ba54
7 changed files with 282 additions and 87 deletions

View File

@ -8,62 +8,66 @@ from . import *
SD_API_KEY = environ.get("SD3_KEY")
if SD_API_KEY is not None:
def get_user_balance():
api_host = "https://api.stability.ai"
url = f"{api_host}/v1/user/balance"
def get_user_balance():
api_host = "https://api.stability.ai"
url = f"{api_host}/v1/user/balance"
response = requests.get(url, headers={"Authorization": f"Bearer {SD_API_KEY}"})
response = requests.get(url, headers={"Authorization": f"Bearer {SD_API_KEY}"})
if response.status_code != 200:
print("Non-200 response: " + str(response.text))
if response.status_code != 200:
print("Non-200 response: " + str(response.text))
# Do something with the payload...
payload = response.json()
return payload["credits"]
# Do something with the payload...
payload = response.json()
return payload["credits"]
def generate_sd3_image(prompt):
response = requests.post(
f"https://api.stability.ai/v2beta/stable-image/generate/sd3",
headers={"authorization": f"Bearer {SD_API_KEY}", "accept": "image/*"},
files={"none": ""},
data={
"prompt": prompt,
"model": "sd3-turbo",
"output_format": "jpeg",
},
)
if response.status_code == 200:
with open("sd3.jpeg", "wb") as file:
file.write(response.content)
return True
def generate_sd3_image(prompt):
response = requests.post(
f"https://api.stability.ai/v2beta/stable-image/generate/sd3",
headers={"authorization": f"Bearer {SD_API_KEY}", "accept": "image/*"},
files={"none": ""},
data={
"prompt": prompt,
"model": "sd3-turbo",
"output_format": "jpeg",
},
)
if response.status_code == 200:
with open("sd3.jpeg", "wb") as file:
file.write(response.content)
return True
else:
print(str(response.json()))
return False
def sd_handler(message: Message, bot: TeleBot):
"""pretty sd3: /sd3 <address>"""
credits = get_user_balance()
bot.reply_to(
message,
f"Generating pretty sd3-turbo image may take some time please left credits {credits} every try will cost 4 criedits wait:",
)
m = message.text.strip()
prompt = m.strip()
try:
r = generate_sd3_image(prompt)
if r:
with open(f"sd3.jpeg", "rb") as photo:
bot.send_photo(
message.chat.id, photo, reply_to_message_id=message.message_id
)
else:
print(str(response.json()))
return False
bot.reply_to(message, "prompt error")
except Exception as e:
print(e)
bot.reply_to(message, "sd3 error")
def sd_handler(message: Message, bot: TeleBot):
"""pretty sd3: /sd3 <address>"""
credits = get_user_balance()
bot.reply_to(
message,
f"Generating pretty sd3-turbo image may take some time please left credits {credits} every try will cost 4 criedits wait:",
)
m = message.text.strip()
prompt = m.strip()
try:
r = generate_sd3_image(prompt)
if r:
with open(f"sd3.jpeg", "rb") as photo:
bot.send_photo(
message.chat.id, photo, reply_to_message_id=message.message_id
)
else:
bot.reply_to(message, "prompt error")
except Exception as e:
print(e)
bot.reply_to(message, "sd3 error")
if SD_API_KEY:
def register(bot: TeleBot) -> None:
bot.register_message_handler(sd_handler, commands=["sd3"], pass_bot=True)