Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Погрузись в захватывающий шутер!

FRAGEN

Шутер, Экшены, Шутер от первого лица

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • Animalrescueed Animalrescueed 36 постов
  • Oskanov Oskanov 7 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
1
arfrost
arfrost
1 год назад

Телеграмм бот с ChatGPT⁠⁠

Телеграмм бот с ChatGPT Telegram бот, ChatGPT, Пользуйтесь, Длиннопост
Телеграмм бот с ChatGPT Telegram бот, ChatGPT, Пользуйтесь, Длиннопост

@ArgonFox_bot
Кто знает что с этим делать тот знает.
1000 токенов в запросе
Пока оплачен
Позволяю пользоваться
код на питоне :
import logging
import asyncio
from telegram import Update
from telegram.ext import Application, CommandHandler, CallbackContext, MessageHandler, filters
import openai
import time
from collections import deque

# Вставьте ваш API токен Telegram и OpenAI
TELEGRAM_TOKEN = 'YOUR_TELEGRAM_TOKEN'
OPENAI_API_KEY = 'YOUR_OPENAI_API_KEY'

# Настройка OpenAI
openai.api_key = OPENAI_API_KEY

# Настройка логирования
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO)

# Начальные параметры
parameters = {
'temperature': 1.0,
'max_tokens': 1000,# Обновлено
'top_p': 1.0,
'n': 1,
'model': 'gpt-3.5-turbo'
}

# Очередь для хранения временных меток запросов
request_times = deque()

# Период времени для контроля (например, 60 секунд)
TIME_WINDOW = 60
MAX_REQUESTS = 10

def request_allowed():
current_time = time.time()
while request_times and request_times[0] < current_time - TIME_WINDOW:
request_times.popleft()
if len(request_times) < MAX_REQUESTS:
request_times.append(current_time)
return True
else:
return False

async def start(update: Update, context: CallbackContext) -> None:
await update.message.reply_text('Добро пожаловать в дом, где Лис любит Совушку. Начинаем генерацию?')

async def set_temperature(update: Update, context: CallbackContext) -> None:
try:
temp = float(context.args[0])
if 0 <= temp <= 2:
parameters['temperature'] = temp
await update.message.reply_text(f"Температура установлена на {temp}.")
else:
await update.message.reply_text("Температура должна быть в диапазоне от 0 до 2.")
except (IndexError, ValueError):
await update.message.reply_text("Использование: /set_temperature <значение>")

async def set_max_tokens(update: Update, context: CallbackContext) -> None:
try:
tokens = int(context.args[0])
if tokens > 0:
parameters['max_tokens'] = tokens
await update.message.reply_text(f"Максимальное количество токенов установлено на {tokens}.")
else:
await update.message.reply_text("Максимальное количество токенов должно быть положительным числом.")
except (IndexError, ValueError):
await update.message.reply_text("Использование: /set_max_tokens <значение>")

async def set_top_p(update: Update, context: CallbackContext) -> None:
try:
top_p = float(context.args[0])
if 0 <= top_p <= 1:
parameters['top_p'] = top_p
await update.message.reply_text(f"Top-p установлено на {top_p}.")
else:
await update.message.reply_text("Top-p должно быть в диапазоне от 0 до 1.")
except (IndexError, ValueError):
await update.message.reply_text("Использование: /set_top_p <значение>")

async def set_n(update: Update, context: CallbackContext) -> None:
try:
n = int(context.args[0])
if n > 0:
parameters['n'] = n
await update.message.reply_text(f"Количество ответов установлено на {n}.")
else:
await update.message.reply_text("Количество ответов должно быть положительным числом.")
except (IndexError, ValueError):
await update.message.reply_text("Использование: /set_n <значение>")

async def set_model(update: Update, context: CallbackContext) -> None:
try:
model = context.args[0]
available_models = ['gpt-3.5-turbo', 'gpt-4']
if model in available_models:
parameters['model'] = model
await update.message.reply_text(f"Модель установлена на {model}.")
else:
await update.message.reply_text(f"Модель должна быть одной из следующих: {', '.join(available_models)}.")
except IndexError:
await update.message.reply_text("Использование: /set_model <модель>")
except Exception as e:
logging.error("Ошибка при установке модели: %s", e)
await update.message.reply_text("Произошла ошибка при установке модели.")

async def show_status(update: Update, context: CallbackContext) -> None:
status = (f"Текущие параметры:\n"
f"Модель: {parameters['model']}\n"
f"Температура: {parameters['temperature']}\n"
f"Максимальное количество токенов: {parameters['max_tokens']}\n"
f"Top-p: {parameters['top_p']}\n"
f"Количество ответов: {parameters['n']}")
await update.message.reply_text(status)

async def respond(update: Update, context: CallbackContext) -> None:
if not request_allowed():
await update.message.reply_text("Достигнут лимит запросов. Попробуйте позже.")
return

user_message = update.message.text

try:
logging.info(f"Запрос к OpenAI: Модель={parameters['model']}, Токены={parameters['max_tokens']}, Температура={parameters['temperature']}, Top-p={parameters['top_p']}, Количество ответов={parameters['n']}")

response = openai.ChatCompletion.create(
model=parameters['model'],
messages=[{"role": "user", "content": user_message}],
max_tokens=parameters['max_tokens'],
temperature=parameters['temperature'],
top_p=parameters['top_p'],
n=parameters['n']
)

if response and response.choices and response.choices[0].message:
await send_long_message(update, response.choices[0].message['content'].strip())
else:
logging.error("Пустой ответ от OpenAI")
await update.message.reply_text("Получен пустой ответ от OpenAI.")

if 'usage' in response:
usage = response['usage']
logging.info(f"Использовано токенов: {usage['total_tokens']}")

except openai.error.RateLimitError:
logging.error("Превышен лимит запросов. Попробуйте позже.")
await update.message.reply_text("Превышен лимит запросов. Попробуйте позже.")
except openai.error.OpenAIError as e:
logging.error("Ошибка OpenAI API: %s", e)
await update.message.reply_text("Произошла ошибка при взаимодействии с API.")
except Exception as e:
logging.error("Произошла неожиданная ошибка: %s", e)
await update.message.reply_text("Произошла неожиданная ошибка. Пожалуйста, попробуйте снова позже.")

async def send_long_message(update: Update, text: str) -> None:
chunks = [text[i:i + 4096] for i in range(0, len(text), 4096)]
for chunk in chunks:
try:
await update.message.reply_text(chunk)
await asyncio.sleep(1)# Задержка в 1 секунду между сообщениями
except Exception as e:
logging.error("Ошибка при отправке сообщения: %s", e)
break

def main() -> None:
application = Application.builder().token(TELEGRAM_TOKEN).build()

application.add_handler(CommandHandler("start", start))
application.add_handler(CommandHandler("set_temperature", set_temperature))
application.add_handler(CommandHandler("set_max_tokens", set_max_tokens))
application.add_handler(CommandHandler("set_top_p", set_top_p))
application.add_handler(CommandHandler("set_n", set_n))
application.add_handler(CommandHandler("set_model", set_model))
application.add_handler(CommandHandler("show_status", show_status))
application.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, respond))

application.run_polling()

if __name__ == '__main__':
main()

Показать полностью 2
[моё] Telegram бот ChatGPT Пользуйтесь Длиннопост
1
3
Tamasciridate
Tamasciridate
2 года назад
Лига Гекконов

Календарь кормления эублефаров⁠⁠

На весь 2023 в формате а4

Календарь кормления эублефаров Эублефар, Геккон, Террариумистика, Террариум, Календарь, Кормление, Удобство, Пользуйтесь, Хобби, Разведение

Мы записываем сюда даты кормления, витамины и просто вкусняшки.

https://cloud.mail.ru/public/5Jna/X39MK1cJS

Показать полностью
[моё] Эублефар Геккон Террариумистика Террариум Календарь Кормление Удобство Пользуйтесь Хобби Разведение
0
2
Maisok
Maisok
2 года назад

Новая услуга «спам» от мегафона⁠⁠

Новая услуга «спам» от мегафона
[моё] Спам Мегафон Услуги Пользуйтесь Скриншот
5
5
DELETED
2 года назад

«Яндекс Браузер» научили переводить видеокурсы на платформе Coursera⁠⁠

Браузер «Яндекса» теперь умеет переводить на русский язык видеокурсы на образовательной платформе Coursera. Доступен как закадровый перевод, так и интерактивные субтитры.

Компания рассказала, что осваивать новые темы на иностранном языке бывает сложно. Всё дело в обилии профессионализмов, с которыми бывает сложно разобраться даже людям с высоким уровнем владения иностранным языком. Для облегчения задачи «Яндекс» добавил в собственный браузер поддержку закадрового перевода на образовательной платформе Coursera.

Кроме закадрового перевода доступны и интерактивные субтитры. Во время просмотра можно кликнуть на слово и получить подробную информацию. Компания отметила, что новая функция будет полезна дизайнерам, разработчикам, финансистам, маркетологам и всем специалистам, которые повышают квалификацию на платформе Coursera.

Представьте себе лекцию по машинному обучению — даже если вы уверенно владеете языком, всё равно есть шанс не до конца уловить важную мысль. Закадровый перевод в браузере упростит жизнь: можно спокойно сосредоточиться на материале и не думать о том, что вы могли упустить из-за языкового барьера. Этого барьера больше нет.

Дмитрий Тимко, руководитель приложения «Яндекс» и «Яндекс Браузера»

В августе 2022 года «Яндекс» добавила технологию синхронного закадрового перевода в «Яндекс Браузер». Сейчас доступен перевод на русский язык с английского, французского, немецкого, итальянского и испанского. В ближайшее время ожидается поддержка китайского языка.

«Яндекс Браузер» научили переводить видеокурсы на платформе Coursera Habr, Coursera, Пользуйтесь, Знания, Яндекс Браузер
Показать полностью 1
Habr Coursera Пользуйтесь Знания Яндекс Браузер
4
29
Caramel56
Caramel56
2 года назад
Лига Юристов

Простые истины⁠⁠

У меня есть  юридическое образование, пару лет я работала по специальности, хотя, в итоге, и пошла в другую сферу, но некоторые элементы профессиональной деформации  хорошо в меня впитались  - довольно простые вещи, над которыми многие люди, к сожалению, не задумываются, вроде «не подписывай не прочитав», «не выбрасывай гарантии/чеки, пока они актуальны», «храни копии важных документов»…  и ещё куча разных мелочей, но чаще всего я пользуюсь  и вижу профит от простой истины, которую услышала от одного из преподавателей ещё курсе на первом:

Права и свободы одного человека заканчиваются там, где начинаются права и свободы другого человека.

Гениально, правда?

Думаю, если бы все люди в мире всегда держали в голове эту простую фразу, жить в мире было бы гораздо лучше.

[моё] Простые вещи Лига юристов Лига Добра Жизнь Пользуйтесь Уважение Текст
46
3
dopystim.nikita
dopystim.nikita
2 года назад

Ответ на пост «Вот с..а!»⁠⁠15

Для всех таких же "счастливчиков"
Если ты покупаешь товар через сайт, то в течении 7 дней можешь отказаться от покупки и магазин обязан вернуть полную сумму.
Т.е сдаёшь товар который купил за 100 тысяч, а покупаешь потом по новой цене за 80 тысяч.
Пользуйтесь!

Реклама Покупка Сергей Бурунов Покупатель Покупки в интернете Схема Пользуйтесь Ответ на пост Текст
0
130
bez.granic45
bez.granic45
3 года назад

Хоккей без границ⁠⁠

Сегодня про ледовую арену «Трактор» г. Челябинск . Хотелось бы рассказать о поездке на матч хоккейных команд «Трактор»-«Металлург».
Это было первое спортивное мероприятие после травмы. Организация на высшем уровне.
Заранее созвонились с ареной, где всё подробно и доступно объяснили. Ездили вдвоём и это не доставило ни каких проблем.
*Парковка рядом со входом
*Везде пандусы
*Отдельный вход, где встречают волонтёры
*Специальная трибуна с хорошим видом и удобным доступом
*Приятный бонус , что предоставляют два бесплатных билета ( для человека с ограниченными возможностями и сопровождающего). Очень удобно тем кто живёт рядом, можно ходить на каждый матч.
От игры , организации и поездки остались только положительные эмоции, в феврале продолжится КХЛ и хочется посетить и рассказать вам про крк «Уралец »(хк «Автомобилист »)в г. Екатеринбурге, чтобы было с чем сравнивать.

Хоккей без границ Хоккей, Лайфхак, Травма, Инвалид, КХЛ, Пользуйтесь, Текст
Показать полностью 1
Хоккей Лайфхак Травма Инвалид КХЛ Пользуйтесь Текст
4
The.Alf
The.Alf
4 года назад

Одно кольцо, что бы объединить все ..ключи воедино⁠⁠

Столкнулся с проблемой, что кольца рвутся, которые объединяют ключи. Так как сделаны из не очень качественного материала.


У меня на связке висит 7 ключей + несколько аксессуаров тип ножа и ручки :)


Это только на одной,  у меня их еще две. От трех разных помещений. Короче, заказывал кольца раньше с али-экспресса. Но ждать  надоело...загуглил как еще можно решить вопрос  и обьединить все кольца в одну связку... нашел решение.


Может быть не супер эстетичное, но надежное. Обыкновенные стяжки ....купил...и 3 связки ключей держатся на стяжках. Прочно и удобно. И не жалко...

может кому то пригодится. пользуйтесь

Кольцо Ключи Пользуйтесь Лайфхак Практичность Видео
21
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии