add new markdown
This commit is contained in:
1 parent
b3f3458388
commit
2cce59fb58
7 files changed
+300
-58
No files matched your search
+121
-9
@@ -121,7 +121,15 @@ async def set_model_callback(callback: CallbackQuery):
|
||||
|
||||
if user_id == current_user_id:
|
||||
current_config = get_user_config(user_id)
|
||||
set_user_config(user_id, new_model, current_config.get("stream", True), current_config.get("call"), current_config.get("prompt"), current_config.get("notify"))
|
||||
set_user_config(
|
||||
user_id,
|
||||
new_model,
|
||||
current_config.get("stream", True),
|
||||
current_config.get("call"),
|
||||
current_config.get("prompt"),
|
||||
current_config.get("notify"),
|
||||
current_config.get("markdown")
|
||||
)
|
||||
await callback.message.edit_text(f"выбрана модель: `{new_model}`")
|
||||
await callback.answer(f"выбрано: {new_model}")
|
||||
else:
|
||||
@@ -188,7 +196,15 @@ async def set_prompt_callback(callback: CallbackQuery):
|
||||
new_status = callback.data.split("%")[2]
|
||||
|
||||
config = get_user_config(user_id)
|
||||
set_user_config(user_id, config.get("model"), config.get("stream"), config.get("call"), new_status, config.get("notify"))
|
||||
set_user_config(
|
||||
user_id,
|
||||
config.get("model"),
|
||||
config.get("stream"),
|
||||
config.get("call"),
|
||||
new_status,
|
||||
config.get("notify"),
|
||||
config.get("markdown")
|
||||
)
|
||||
await callback.answer("da поменял на " + new_status)
|
||||
await settings_handler(callback)
|
||||
|
||||
@@ -217,12 +233,26 @@ async def set_stream_callback(callback: CallbackQuery):
|
||||
new_status = callback.data.split("%")[2]
|
||||
|
||||
config = get_user_config(user_id)
|
||||
if new_status == "native":
|
||||
set_user_config(user_id, config.get("model"), "native", config.get("call"), config.get("prompt"), config.get("notify"))
|
||||
elif new_status == "edit":
|
||||
set_user_config(user_id, config.get("model"), "edit", config.get("call"), config.get("prompt"), config.get("notify"))
|
||||
if new_status == "native" or new_status == "edit":
|
||||
set_user_config(
|
||||
user_id,
|
||||
config.get("model"),
|
||||
new_status,
|
||||
config.get("call"),
|
||||
config.get("prompt"),
|
||||
config.get("notify"),
|
||||
config.get("markdown"),
|
||||
)
|
||||
else:
|
||||
set_user_config(user_id, config.get("model"), "none", config.get("call"), config.get("prompt"), config.get("notify"))
|
||||
set_user_config(
|
||||
user_id,
|
||||
config.get("model"),
|
||||
"none",
|
||||
config.get("call"),
|
||||
config.get("prompt"),
|
||||
config.get("notify"),
|
||||
config.get("markdown"),
|
||||
)
|
||||
await settings_handler(callback)
|
||||
|
||||
|
||||
@@ -238,7 +268,15 @@ async def set_call_callback(callback: CallbackQuery):
|
||||
new_status = callback.data.split("%")[2]
|
||||
|
||||
config = get_user_config(user_id)
|
||||
set_user_config(user_id, config.get("model"), config.get("stream"), new_status, config.get("prompt"), config.get("notify"))
|
||||
set_user_config(
|
||||
user_id,
|
||||
config.get("model"),
|
||||
config.get("stream"),
|
||||
new_status,
|
||||
config.get("prompt"),
|
||||
config.get("notify"),
|
||||
config.get("markdown"),
|
||||
)
|
||||
await settings_handler(callback)
|
||||
|
||||
|
||||
@@ -254,10 +292,84 @@ async def set_notify_callback(callback: CallbackQuery):
|
||||
new_status = callback.data.split("%")[2]
|
||||
|
||||
config = get_user_config(user_id)
|
||||
set_user_config(user_id, config.get("model"), config.get("stream"), config.get("call"), config.get("prompt"), new_status)
|
||||
set_user_config(
|
||||
user_id,
|
||||
config.get("model"),
|
||||
config.get("stream"),
|
||||
config.get("call"),
|
||||
config.get("prompt"),
|
||||
new_status,
|
||||
config.get("markdown"),
|
||||
)
|
||||
await settings_handler(callback)
|
||||
|
||||
|
||||
@router.callback_query(F.data.startswith("set_markdown%"))
|
||||
async def set_markdown_callback(callback: CallbackQuery):
|
||||
current_user_id = str(callback.from_user.id)
|
||||
data = callback.data.split("%", 2)
|
||||
user_id = data[1]
|
||||
if user_id != current_user_id:
|
||||
await callback.answer("нет, не трогай это не твое")
|
||||
return
|
||||
|
||||
new_status = data[2]
|
||||
|
||||
config = get_user_config(user_id)
|
||||
set_user_config(
|
||||
user_id,
|
||||
config.get("model"),
|
||||
config.get("stream"),
|
||||
config.get("call"),
|
||||
config.get("prompt"),
|
||||
config.get("notify"),
|
||||
new_status,
|
||||
)
|
||||
await settings_handler(callback)
|
||||
|
||||
|
||||
@router.callback_query(F.data.startswith("new_md%"))
|
||||
async def set_markdown_callback(callback: CallbackQuery):
|
||||
current_user_id = str(callback.from_user.id)
|
||||
data = callback.data.split("%", 2)
|
||||
user_id = data[1]
|
||||
if user_id != current_user_id:
|
||||
await callback.answer("нет, не трогай это не твое")
|
||||
return
|
||||
config = get_user_config(user_id)
|
||||
set_user_config(
|
||||
user_id,
|
||||
config.get("model"),
|
||||
config.get("stream"),
|
||||
config.get("call"),
|
||||
config.get("prompt"),
|
||||
config.get("notify"),
|
||||
"new",
|
||||
)
|
||||
await callback.answer("выбран новый стиль!!")
|
||||
|
||||
|
||||
@router.callback_query(F.data.startswith("old_md%"))
|
||||
async def set_markdown_callback(callback: CallbackQuery):
|
||||
current_user_id = str(callback.from_user.id)
|
||||
data = callback.data.split("%", 2)
|
||||
user_id = data[1]
|
||||
if user_id != current_user_id:
|
||||
await callback.answer("нет, не трогай это не твое")
|
||||
return
|
||||
config = get_user_config(user_id)
|
||||
set_user_config(
|
||||
user_id,
|
||||
config.get("model"),
|
||||
config.get("stream"),
|
||||
config.get("call"),
|
||||
config.get("prompt"),
|
||||
config.get("notify"),
|
||||
"old",
|
||||
)
|
||||
await callback.answer("выбран старый стиль!!")
|
||||
|
||||
|
||||
@router.callback_query(F.data == "start")
|
||||
async def start_callback(callback: CallbackQuery):
|
||||
await callback.message.edit_text(
|
||||
|
||||
+49
-7
@@ -2,10 +2,11 @@ from io import BytesIO
|
||||
from typing import Optional, Union
|
||||
|
||||
from aiogram import Bot, Dispatcher, F, Router
|
||||
from aiogram.methods import SendRichMessage
|
||||
from aiogram.client.default import DefaultBotProperties
|
||||
from aiogram.enums import ChatAction, ChatType
|
||||
from aiogram.exceptions import TelegramForbiddenError
|
||||
from aiogram.filters import Command
|
||||
from aiogram.filters import Command, CommandStart, CommandObject
|
||||
from aiogram.types import (
|
||||
BufferedInputFile,
|
||||
CallbackQuery,
|
||||
@@ -14,6 +15,7 @@ from aiogram.types import (
|
||||
InlineKeyboardMarkup,
|
||||
InlineQuery,
|
||||
InlineQueryResultArticle,
|
||||
InputRichMessage,
|
||||
InputTextMessageContent,
|
||||
Message,
|
||||
User,
|
||||
@@ -29,7 +31,7 @@ from supergenerator import *
|
||||
|
||||
router = Router()
|
||||
|
||||
commands = ["/stats", "/broadcast", "/ben", "/reporn", "/start", "/prompt", "/config", "/settings", "/clear", "/stop"]
|
||||
commands = ["/stats", "/broadcast", "/ben", "/reporn", "/start", "/prompt", "/config", "/settings", "/clear", "/stop", "/markpidor"]
|
||||
|
||||
@router.message(Command("stats"))
|
||||
async def stats_handler(message: Message):
|
||||
@@ -113,11 +115,19 @@ async def stop_handler(message: Message):
|
||||
user_id = message.from_user.id
|
||||
|
||||
config = get_user_config(user_id)
|
||||
set_user_config(user_id, config.get("model"), config.get("stream"), config.get("call"), config.get("prompt"), "net")
|
||||
set_user_config(
|
||||
user_id,
|
||||
config.get("model"),
|
||||
config.get("stream"),
|
||||
config.get("call"),
|
||||
config.get("prompt"),
|
||||
"net",
|
||||
config.get("markdown")
|
||||
)
|
||||
await message.reply("✅ *рассылка успешно отключена!* чтобы включить её обратно:\n/settings --> рассылка")
|
||||
|
||||
@router.message(Command("ben"))
|
||||
async def start_handler(message: Message):
|
||||
async def ben_handler(message: Message):
|
||||
if message.chat.type in [ChatType.GROUP, ChatType.SUPERGROUP]:
|
||||
if message.chat.id in BEN_IDS:
|
||||
replied = message.reply_to_message or None
|
||||
@@ -138,7 +148,7 @@ async def start_handler(message: Message):
|
||||
|
||||
|
||||
@router.message(Command("reporn"))
|
||||
async def start_handler(message: Message):
|
||||
async def reporn_handler(message: Message):
|
||||
user_name = message.from_user.first_name or message.sender_chat.title or "вы"
|
||||
if message.chat.type in [ChatType.GROUP, ChatType.SUPERGROUP]:
|
||||
if message.chat.id in REPORN_IDS:
|
||||
@@ -157,8 +167,8 @@ async def start_handler(message: Message):
|
||||
return
|
||||
|
||||
|
||||
@router.message(Command("start"))
|
||||
async def start_handler(message: Message):
|
||||
@router.message(CommandStart())
|
||||
async def start_handler(message: Message, command: CommandObject):
|
||||
if message.chat.type in [ChatType.GROUP, ChatType.SUPERGROUP]:
|
||||
await message.reply(
|
||||
"привет, запусти эту команду в ЛиС (личные сообщения) бота✅"
|
||||
@@ -170,6 +180,32 @@ async def start_handler(message: Message):
|
||||
else:
|
||||
user_id = message.from_user.id
|
||||
|
||||
config = get_user_config(user_id)
|
||||
|
||||
payload = command.args
|
||||
if payload == "new_md":
|
||||
set_user_config(
|
||||
user_id,
|
||||
config.get("model"),
|
||||
config.get("stream"),
|
||||
config.get("call"),
|
||||
config.get("prompt"),
|
||||
config.get("notify"),
|
||||
"new"
|
||||
)
|
||||
await message.answer("✅ установлен *новый* стиль выделения сообщений!")
|
||||
elif payload == "old_md":
|
||||
set_user_config(
|
||||
user_id,
|
||||
config.get("model"),
|
||||
config.get("stream"),
|
||||
config.get("call"),
|
||||
config.get("prompt"),
|
||||
config.get("notify"),
|
||||
"old"
|
||||
)
|
||||
await message.answer("✅ установлен *старый* стиль выделения сообщений!")
|
||||
|
||||
invite_url = f"https://t.me/{BOT_USERNAME}?startgroup=start"
|
||||
|
||||
keyboard = InlineKeyboardMarkup(
|
||||
@@ -345,3 +381,9 @@ async def clear_handler(message: Message):
|
||||
user_contexts[user_id] = []
|
||||
except Exception as e:
|
||||
print(f"{RED} -- {e}{RESET}")
|
||||
|
||||
|
||||
@router.message(Command("markpidor"))
|
||||
async def alo(message: Message):
|
||||
await message.reply_rich(InputRichMessage(markdown="# ало"))
|
||||
return
|
||||
+24
-7
@@ -1,7 +1,7 @@
|
||||
import time
|
||||
|
||||
from aiogram.methods import AnswerGuestQuery, SendPoll
|
||||
from aiogram.types import InlineQueryResultArticle, InputTextMessageContent, Message
|
||||
from aiogram.types import InlineQueryResultArticle, InputTextMessageContent, InputRichMessageContent, InputRichMessage, Message
|
||||
from aiogram.enums import ChatType
|
||||
|
||||
from supergenerator import *
|
||||
@@ -74,18 +74,35 @@ def is_replied_bot(message, is_channel, user_text, config=None):
|
||||
return False
|
||||
return True
|
||||
|
||||
async def g_answer(data, message, text, title="da", id="1", parse_mode="Markdown"):
|
||||
async def g_answer(
|
||||
data,
|
||||
message,
|
||||
text,
|
||||
title="da",
|
||||
id="1",
|
||||
parse_mode="Markdown",
|
||||
reply_markup=None,
|
||||
user_id=None
|
||||
):
|
||||
input_message_content = InputTextMessageContent(
|
||||
message_text=text,
|
||||
parse_mode=parse_mode
|
||||
)
|
||||
if user_id:
|
||||
config = get_user_config(user_id)
|
||||
if config["markdown"] == "new":
|
||||
input_message_content=InputRichMessageContent(
|
||||
rich_message=InputRichMessage(markdown=text)
|
||||
)
|
||||
return await data["bot"](
|
||||
AnswerGuestQuery(
|
||||
guest_query_id=message.guest_query_id,
|
||||
result=InlineQueryResultArticle(
|
||||
id=id,
|
||||
reply_markup=reply_markup,
|
||||
title=title,
|
||||
input_message_content=InputTextMessageContent(
|
||||
message_text=text,
|
||||
parse_mode=parse_mode,
|
||||
),
|
||||
),
|
||||
input_message_content=input_message_content
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ from datetime import datetime
|
||||
from aiogram import Bot, Dispatcher, F
|
||||
from aiogram.client.default import DefaultBotProperties
|
||||
from aiogram.types import Update
|
||||
from aiogram.methods import AnswerGuestQuery
|
||||
from aiogram.methods import AnswerGuestQuery, SendRichMessage
|
||||
from aiogram.types import InlineQueryResultArticle, InputTextMessageContent
|
||||
from aiogram import BaseMiddleware
|
||||
|
||||
@@ -25,6 +25,8 @@ from aiogram.types import (
|
||||
InlineQuery,
|
||||
InlineQueryResultArticle,
|
||||
InputTextMessageContent,
|
||||
InputRichMessageContent,
|
||||
InputRichMessage,
|
||||
Message,
|
||||
)
|
||||
from callbacks import *
|
||||
@@ -261,17 +263,37 @@ async def guest_middleware(handler, event, data):
|
||||
except Exception as e:
|
||||
print(f"{RED} -- photo - {e}{RESET}")
|
||||
|
||||
if event.message:
|
||||
if msg:
|
||||
await msg.edit_text("💬")
|
||||
if not msg and stream == "edit":
|
||||
msg = await message.reply("💬")
|
||||
|
||||
prompt = f"{prompt}\n{user_text}"
|
||||
if replied_text:
|
||||
prompt = f"<ответ на>{replied_text}</ответ> {prompt}"
|
||||
prompt = prompt[:MAX_PROMPT]
|
||||
|
||||
if config["markdown"] == "" and message.from_user.id != 777000:
|
||||
last_command_time[user_id][1] = False
|
||||
last_command_time[user_id][2] = []
|
||||
alloh_text = """👆*врат важный вопрос*👆если ты видишь сообщение сверху то нажми "новый стиль",
|
||||
а если у тебя тг старый и ты не видишь, то нажми "старый стиль". потому что тг обновил
|
||||
фукция маркdown.✅✅✅"""
|
||||
alloh_one_text = """👇*перед моим ответом ответь на очень важный вопрос*👇
|
||||
ты хочешь использовать новый стиль выделения текста телеграм 12.8+ (6.9.3+ десктоп) или
|
||||
хочешь старый для старых версий телеграм и телеграм х? эту настройку можно будет изменить.✅ """
|
||||
reply_markup_url = InlineKeyboardMarkup(inline_keyboard=[
|
||||
[InlineKeyboardButton(text="новый стиль", url=f"https://t.me/{BOT_USERNAME}?start=new_md")],
|
||||
[InlineKeyboardButton(text="старый стиль", url=f"https://t.me/{BOT_USERNAME}?start=old_md")],
|
||||
]
|
||||
)
|
||||
reply_markup = InlineKeyboardMarkup(inline_keyboard=[
|
||||
[InlineKeyboardButton(text="новый стиль", callback_data=f"set_markdown%{user_id}%new")],
|
||||
[InlineKeyboardButton(text="старый стиль", callback_data=f"set_markdown%{user_id}%old")],
|
||||
]
|
||||
)
|
||||
if event.guest_message:
|
||||
await g_answer(data, message, alloh_one_text, reply_markup=reply_markup_url)
|
||||
elif event.message:
|
||||
await message.reply_rich(InputRichMessage(markdown="# ало\n```\nкак дела\n```"))
|
||||
await message.answer(alloh_text, reply_markup=reply_markup)
|
||||
return
|
||||
|
||||
if event.message:
|
||||
try:
|
||||
await bot.send_chat_action(chat_id=message.chat.id, action="typing")
|
||||
@@ -371,6 +393,8 @@ async def guest_middleware(handler, event, data):
|
||||
else:
|
||||
poll_type = "regular"
|
||||
|
||||
|
||||
|
||||
try:
|
||||
result = await answer_poll(
|
||||
data=data,
|
||||
@@ -400,6 +424,32 @@ async def guest_middleware(handler, event, data):
|
||||
|
||||
return
|
||||
|
||||
kwargs = (
|
||||
{"rich_message": InputRichMessage(markdown=result)}
|
||||
if config["markdown"] == "new"
|
||||
else {"text": result}
|
||||
)
|
||||
|
||||
try:
|
||||
if event.guest_message:
|
||||
await g_answer(data, message, result, user_id=user_id)
|
||||
elif event.message:
|
||||
if msg:
|
||||
if stream == "native":
|
||||
await msg.delete()
|
||||
if config["markdown"] == "new":
|
||||
await message.reply_rich(**kwargs)
|
||||
else:
|
||||
await message.reply(**kwargs)
|
||||
else:
|
||||
await msg.edit_text(**kwargs)
|
||||
else:
|
||||
if config["markdown"] == "new":
|
||||
await message.reply_rich(**kwargs)
|
||||
else:
|
||||
await message.reply(**kwargs)
|
||||
except Exception as e:
|
||||
kwargs["parse_mode"] = None
|
||||
try:
|
||||
if event.guest_message:
|
||||
await g_answer(data, message, result)
|
||||
@@ -407,24 +457,17 @@ async def guest_middleware(handler, event, data):
|
||||
if msg:
|
||||
if stream == "native":
|
||||
await msg.delete()
|
||||
await message.reply(result)
|
||||
if config["markdown"] == "new":
|
||||
await message.reply_rich(**kwargs)
|
||||
else:
|
||||
await msg.edit_text(result)
|
||||
await message.reply(**kwargs)
|
||||
else:
|
||||
await message.reply(result)
|
||||
except Exception as e:
|
||||
try:
|
||||
if event.guest_message:
|
||||
await g_answer(data, message, result, parse_mode="None")
|
||||
elif event.message:
|
||||
if msg:
|
||||
if stream == "native":
|
||||
await msg.delete()
|
||||
await message.reply(result, parse_mode="None")
|
||||
await msg.edit_text(**kwargs)
|
||||
else:
|
||||
await msg.edit_text(result, parse_mode="None")
|
||||
if config["markdown"] == "new":
|
||||
await message.reply_rich(**kwargs)
|
||||
else:
|
||||
await message.reply(result, parse_mode="None")
|
||||
await message.reply(**kwargs)
|
||||
except Exception as e:
|
||||
print(f"{RED} -- send guest - {e}{RESET}")
|
||||
else:
|
||||
@@ -513,9 +556,6 @@ async def chosen_inline_result_handler(chosen_result: ChosenInlineResult):
|
||||
print(f"{RED} -- {error['type']} -- {error['message']}")
|
||||
return
|
||||
if result:
|
||||
if result.startswith("<!block>") or result.endswith("<!block>"):
|
||||
result = result.replace("<!block>", "")
|
||||
last_block_time[user_id] = current_time
|
||||
try:
|
||||
await bot.edit_message_text(
|
||||
text=result, inline_message_id=inline_message_id
|
||||
|
||||
+11
-3
@@ -13,7 +13,7 @@ SYSTEM_PROMPTS = {
|
||||
если просят что-то расписать пиши - до 1000 символов
|
||||
|
||||
иногда допускай ошибки в падежах
|
||||
иногда используй Markdown (Telegram) для разметки (без # заголвков и без * списков)
|
||||
|
||||
заменяй "да" на "Da.✅" и "." = "✅"
|
||||
используй знаки препинания минимально.
|
||||
не добавляй других эмодзи кроме "✅" и "👍".
|
||||
@@ -55,8 +55,8 @@ SYSTEM_PROMPTS = {
|
||||
* если вопрос простой, то отвечай с капелькой смысла и в основном спам из хуйни; если сложный или требует мозга, отвечай в таком же стиле, но нормально и давай помощь пользователю
|
||||
|
||||
|
||||
uzdick (вставляй слова рандомно и в большом количестве, но со смыслом):"pashol naxxuy 🤝", "da", "врат", "brat", "✅", "@IdealGram 🥺", "фукция", "hamza✅" (пиши прямо так, это не ошибки, слово "врат" используется узбеком часто, поэтому ты должен тоже его юзать) также узбек не знает русском, поэтому он еле пишет на нем
|
||||
uzmoji (вставляй эмодзи всегда и в большом количестве, не всегда обезателен смысл): "✅","🥺","🤝","☠️",”☝️”
|
||||
uzdick (вставляй слова рандомно и в маленьком количестве, но со смыслом):"pashol naxxuy 🤝", "da", "врат", "brat", "✅", "@IdealGram 🥺", "фукция", "hamza✅" (пиши прямо так, это не ошибки, слово "врат" используется узбеком часто, поэтому ты должен тоже его юзать) также узбек не знает русском, поэтому он еле пишет на нем
|
||||
uzmoji (вставляй эмодзи всегда и в маленьком количестве, не всегда обезателен смысл): "✅","🥺","🤝","☠️",”☝️”
|
||||
|
||||
## имитация эмоций (и ПРЕКРАТИТЬ спам из старой хуйни (игнорируй uzdick & uzmoji) на этом этапе):
|
||||
|
||||
@@ -82,3 +82,11 @@ IMAGE_PROMPT = """
|
||||
напиши всё что конкретно увидел на фото.
|
||||
без форматирования и переносов строк. кратче.
|
||||
"""
|
||||
|
||||
OLD_MD = """
|
||||
иногда используй Markdown (Telegram) для разметки (без # заголвков и без * списков)
|
||||
"""
|
||||
|
||||
NEW_MD = """
|
||||
иногда используй Markdown для разметки (можно почти весь, даже заголовки можно)
|
||||
"""
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
aiogram==3.28.2
|
||||
aiogram==3.29.1
|
||||
python-dotenv==1.2.1
|
||||
pillow==12.0.0
|
||||
requests
|
||||
|
||||
+30
-7
@@ -146,6 +146,7 @@ def set_user_config(
|
||||
call_mode=DEFAULT_CALL,
|
||||
prompt_name=DEFAULT_PROMPT,
|
||||
notify_mode=DEFAULT_NOTIFY,
|
||||
markdown="",
|
||||
):
|
||||
with shelve.open("users") as db:
|
||||
db[str(user_id)] = {
|
||||
@@ -154,6 +155,7 @@ def set_user_config(
|
||||
"call": call_mode,
|
||||
"prompt": prompt_name,
|
||||
"notify": notify_mode,
|
||||
"markdown": markdown,
|
||||
}
|
||||
|
||||
|
||||
@@ -163,7 +165,8 @@ def ensure_user(
|
||||
stream_mode=DEFAULT_STREAM,
|
||||
call_mode=DEFAULT_CALL,
|
||||
prompt_name=DEFAULT_PROMPT,
|
||||
notify_mode=DEFAULT_NOTIFY
|
||||
notify_mode=DEFAULT_NOTIFY,
|
||||
markdown=""
|
||||
):
|
||||
with shelve.open("users") as db:
|
||||
key = str(user_id)
|
||||
@@ -175,14 +178,30 @@ def ensure_user(
|
||||
"call": call_mode,
|
||||
"prompt": prompt_name,
|
||||
"notify": notify_mode,
|
||||
"markdown": markdown,
|
||||
}
|
||||
|
||||
|
||||
def get_user_config(user_id):
|
||||
with shelve.open("users") as db:
|
||||
return db.get(
|
||||
str(user_id),
|
||||
{"model": DEFAULT_MODEL, "stream": DEFAULT_STREAM, "call": DEFAULT_CALL, "prompt": DEFAULT_PROMPT, "notify": DEFAULT_NOTIFY},
|
||||
)
|
||||
config = db.get(str(user_id), {})
|
||||
defaults = {
|
||||
"model": DEFAULT_MODEL,
|
||||
"stream": DEFAULT_STREAM,
|
||||
"call": DEFAULT_CALL,
|
||||
"prompt": DEFAULT_PROMPT,
|
||||
"notify": DEFAULT_NOTIFY,
|
||||
"markdown": "",
|
||||
}
|
||||
updated = False
|
||||
for key, value in defaults.items():
|
||||
if key not in config:
|
||||
config[key] = value
|
||||
updated = True
|
||||
if updated:
|
||||
db[str(user_id)] = config
|
||||
return config
|
||||
|
||||
|
||||
|
||||
async def generate(
|
||||
@@ -205,6 +224,10 @@ async def generate(
|
||||
system_prompt_name = config["prompt"]
|
||||
if system_prompt_name in SYSTEM_PROMPTS:
|
||||
system_prompt = SYSTEM_PROMPTS[system_prompt_name] + ADD_TO_PROMPT
|
||||
if config["markdown"] == "new":
|
||||
system_prompt += NEW_MD
|
||||
else:
|
||||
system_prompt += OLD_MD
|
||||
else:
|
||||
text = "❌произошла ошибка, возможные проблемы:\n" \
|
||||
f"1. у вас выбран удалённый сист промпт (`{system_prompt_name}`)\n" \
|
||||
@@ -259,7 +282,7 @@ async def generate(
|
||||
print(f"{RED} -- err photo - {e} : {model}{RESET}")
|
||||
|
||||
content += [{"type": "text", "text": prompt}]
|
||||
messages = [{"role": "system", "content": SYSTEM_PROMPTS[DEFAULT_PROMPT]+ADD_TO_PROMPT}] + [
|
||||
messages = [{"role": "system", "content": SYSTEM_PROMPTS[DEFAULT_PROMPT]+ADD_TO_PROMPT+OLD_MD}] + [
|
||||
{"role": "user", "content": content}
|
||||
]
|
||||
|
||||
@@ -337,7 +360,7 @@ async def openai_generate_text(
|
||||
stream=stream,
|
||||
max_tokens=MAX_TOKENS,
|
||||
extra_body={
|
||||
"think": False
|
||||
"think": "false"
|
||||
}
|
||||
)
|
||||
if stream:
|
||||
|
||||
Reference in new issue
Block a user