This media is not supported in your browser
VIEW IN TELEGRAM
Репозиторий llm-engineer-toolkit на GitHub представляет собой тщательно подобранный список из более чем 120 библиотек для работы с большими языковыми моделями (LLM). Эти инструменты сгруппированы по различным категориям применения.
В этом наборе вы найдете ресурсы для:
- Обучения и донастройки LLM
- Фреймворков для разработки приложений на основе LLM
- Подготовки данных и доступа к нескольким API
- Retrieval-Augmented Generation (RAG) с использованием LLM
- Инференса и развертывания LLM
- Извлечения и генерации данных
- Создания и оценки агентов на базе LLM
- Мониторинга
- Инженерии промптов
- Получения структурированных выводов
- Обеспечения безопасности
- Работы с моделями вложений (embedding models)
P.S. ваш дурень поспешил и дал пост без ссылки.
Вот репозиторий.
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰3❤1🤬1🙈1😡1
Один из первых относительно серьезных проектов (хоть и начального уровня), который я для портфолио делал.
📈 Ключевые метрики: Собирает данные о подписчиках, просмотрах постов, реакциях и рассчитывает Engagement Rate (ER).
💬 Анализ комментариев: Определяет тональность (позитив/негатив/нейтрал), строит облако популярных слов из комментариев и показывает примеры.
☁️ Облака слов из постов: Помогают быстро оценить основные темы контента.
📅 Графики активности: Визуализирует активность постов по дням и часам – найдите лучшее время для публикаций!
👥 Активность аудитории: Показывает, в какие часы ваши подписчики наиболее активны в комментариях.
🥳 Статистика Emoji: Узнайте, какие эмодзи чаще всего используются в постах и комментариях вашего канала.
🔐 Безопасная авторизация: Подключение через ваши API ID/Hash, все данные обрабатываются локально на вашем ПК.
⚙️ Гибкая настройка: Выбирайте период для анализа, устанавливайте лимиты на количество сообщений и комментариев.
🎨 Современный интерфейс: Приятный дизайн в стиле Fusion с возможностью переключения между светлой и темной темами.
💾 Экспорт отчетов: Сохраняйте подробные данные в CSV-файл и текстовый отчет с основными выводами.
- Всё в одном: Комплексный анализ без необходимости использовать множество разных сервисов.
- Наглядно: Графики и визуализации делают данные понятными с первого взгляда.
- Полезно: Получайте инсайты и рекомендации для развития вашего канала.
- Конфиденциально: Приложение работает локально, ваши данные и ключи не передаются третьим лицам.
Скачать проект тут.
P.S. там первый запуск кривой, ID и HASH внутри приложения вводите, а номер телефона и код еще в IDE. В свое время не доделал и забросил.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
main.py
6.9 KB
Работает на Pyrofork. Выводит в консоль количество существующих подарков, баланс звезд Вашего аккаунта, обновляется раз в 300 секунд (ставьте КД меньше, около минуты). Не забудьте в начале свои API HASH и API ID указать.
pip install pyrofork
Видел, в комментариях часто такое решение упоминали - держите.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4❤1
DocxCleaner.exe
37.4 MB
Пользуйтесь на здоровье.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5😁2
Ваш брат/сестра/кто угодно лазит на сайты, на которые лазить - не нужно? Блочим:
import platform
if platform.system() == "Windows":
pathToHosts=r"C:\Windows\System32\drivers\etc\hosts"
elif platform.system() == "Linux":
pathToHosts=r"/etc/hosts"
redirect="127.0.0.1"
websites=["https://www.sislovesme.com/","https://motherless.com/","https://xhamster.com/","https://www.xnxx.com/","https://www.xvideos.com/","https://www.pornhub.com/"] #cюда сайты которые нужно блокировать/разблокировать
with open(pathToHosts,'r+') as file:
content=file.read()
for site in websites:
if site in content:
pass
else:
file.write(redirect+" "+site+"\n")
import platform
if platform.system() == "Windows":
pathToHosts=r"C:\Windows\System32\drivers\etc\hosts"
elif platform.system() == "Linux":
pathToHosts=r"/etc/hosts"
websites=["https://www.sislovesme.com/","https://motherless.com/","https://xhamster.com/","https://www.xnxx.com/","https://www.xvideos.com/","https://www.pornhub.com/"] #cюда сайты которые нужно блокировать/разблокировать
with open(pathToHosts,'r+') as file:
content=file.readlines()
file.seek(0)
for line in content:
if not any(site in line for site in websites):
file.write(line)
file.truncate()
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6❤4😐2💔1
main.py
7.5 KB
Скрипт демонстрирует, как можно через Telethon не только присоединится к каналу, но и к связанной с ним группе. Простая реализация. В правильных руках и с масштабированием можно создать мощный рекламный инструмент
Получаем:
linked_chat_id
через
telethon.tl.functions.channels.GetFullChannelRequest
Который принимает в качестве параметра channel идентификатор канала (аналогично JoinChannelRequest – имя пользователя, ID, объект сущности и т.д.) и возвращает детальную информацию. Запрос GetFullChannelRequest возвращает объект типа messages.ChatFull. Этот объект является контейнером и имеет сложную структуру.
Ключевыми для нашей задачи являются следующие его компоненты :
- full_chat: Этот атрибут содержит объект ChannelFull (для каналов), который, в свою очередь, хранит расширенную информацию о самом канале, включая искомый linked_chat_id.
- chats: Это список, содержащий объекты сущностей (User, Chat, Channel) для основного канала, а также для всех связанных с ним чатов (включая группу обсуждения, если она есть) и упомянутых пользователей.
Идентификатор связанной группы обсуждений хранится в атрибуте linked_chat_id объекта full_chat (т.е., response.full_chat.linked_chat_id). Этот ID является "маркированным" идентификатором Telegram, который уже включает префикс, указывающий на тип сущности (например, -100... для каналов/супергрупп).
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2🔥1
Скрипт для проверки ресурса на уязвимость к SQL-инъекции. Вайб-кодерам, которые пишут сайты - привет ;)
P.S. нормальные ресурсы имеют 100% защиту от такого уже последние 2-3 года.
import requests
from bs4 import BeautifulSoup
import logging
# Настройка логирования
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
def find_login_forms(url):
"""
Ищет формы входа на указанном веб-сайте.
Args:
url (str): URL веб-сайта.
Returns:
list: Список URL-адресов форм входа.
"""
try:
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
forms = soup.find_all('form')
login_forms = []
for form in forms:
if 'login' in str(form).lower() or 'sign' in str(form).lower():
action = form.get('action')
if action:
login_forms.append(action)
return login_forms
except Exception as e:
logger.error(f"Ошибка при поиске форм входа на {url}: {e}")
return []
def check_sql_injection(url):
"""
Проверяет уязвимость SQL-инъекции на указанном URL.
Args:
url (str): URL для проверки.
Returns:
bool: True если уязвимость обнаружена, иначе False.
"""
payload = "' OR '1'='1"
test_url = f"{url}?username={payload}&password={payload}"
try:
response = requests.get(test_url)
if "welcome" in response.text.lower() or "dashboard" in response.text.lower():
logger.info(f"Возможная уязвимость SQL-инъекции на {url}")
return True
else:
logger.info(f"Уязвимость SQL-инъекции не обнаружена на {url}")
return False
except Exception as e:
logger.error(f"Ошибка при проверке SQL-инъекции на {url}: {e}")
return False
if __name__ == "__main__":
target_url = "http://example.com/login"
login_forms = find_login_forms(target_url)
for form_action in login_forms:
full_url = f"http://example.com{form_action}"
vulnerable = check_sql_injection(full_url)
print(f"URL: {full_url} | SQL Injection Vulnerable: {vulnerable}")
P.S. нормальные ресурсы имеют 100% защиту от такого уже последние 2-3 года.
🔥4❤🔥2❤1🥰1
Стать мультиком можно тут.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣4😁3❤1🙊1
Этот проект предлагает готовое ("Plug & Play") решение для пользователей Windows, столкнувшихся с проблемами доступа к Discord и YouTube. Мои знакомые рекомендовали как лучший обход из имеющихся (и это не реклама, челы)
Что умеет? 🛠
- восстановление доступа к Discord и YouTube;
- не замедляет другие сервисы;
- использование WinDivert для перехвата и фильтрации сетевого трафика, что и позволяет обходить ограничения;
- в комплекте идут .bat файлы для запуска с разными настройками, управления обходом Cloudflare и службами;
- пользователи могут сами расширять списки адресов для обхода, добавляя их в специальные файлы (list-general.txt, list-discord.txt);
На страничке репозитория есть информация по решению частых проблем. Естественно - фулл бесплатно. Автор старается поддерживать актуальность инструмента.
P.S. не знаю, насколько актуально. Вероятно, все кто хотел обойти - уже обошли. Но на всякий.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤬5👍3
import requests
import cv2
import os
from insightface.app import FaceAnalysis
from insightface.model_zoo import get_model
app = FaceAnalysis(name='buffalo_l')
app.prepare(ctx_id=0, det_size=(640, 640))
def download_model(url, model_path):
if not os.path.exists(model_path):
print(f"Загрузка модели с {url}...")
response = requests.get(url)
response.raise_for_status()
with open(model_path, 'wb') as file:
file.write(response.content)
print(f"Модель сохранена как {model_path}")
model_url = "https://huggingface.co/ezioruan/inswapper_128.onnx/resolve/main/inswapper_128.onnx?download=true"
model_path = "inswapper_128.onnx"
download_model(model_url, model_path)
swapper = get_model(model_path)
def swap_face_between_images(source_image_path, target_image_path, output_image_path):
source_img = cv2.imread(source_image_path)
if source_img is None:
print(f"Ошибка: Не удалось загрузить изображение-источник по пути: {source_image_path}")
return
target_img = cv2.imread(target_image_path)
if target_img is None:
print(f"Ошибка: Не удалось загрузить изображение-цель по пути: {target_image_path}")
return
print("Анализ лиц на изображении-источнике...")
source_faces = app.get(source_img)
if not source_faces:
print("Ошибка: Лица на изображении-источнике не найдены.")
return
source_face = source_faces[0]
print("Анализ лиц на изображении-цели...")
target_faces = app.get(target_img)
if not target_faces:
print("Ошибка: Лица на изображении-цели не найдены.")
return
target_face_to_replace = target_faces[0]
print("Выполнение замены лица...")
result_img = target_img.copy()
result_img = swapper.get(result_img, target_face_to_replace, source_face)
cv2.imwrite(output_image_path, result_img)
print(f"Изображение с замененным лицом сохранено как: {output_image_path}")
if __name__ == "__main__":
path_to_source_photo = 'rojers.jpg'
path_to_target_photo = 'stark.jpg'
output_filename = 'swapped_result.png'
if not os.path.exists(path_to_source_photo):
print(
f"Файл источника не найден: {path_to_source_photo}. Пожалуйста, создайте его или укажите правильный путь.")
elif not os.path.exists(path_to_target_photo):
print(f"Файл цели не найден: {path_to_target_photo}. Пожалуйста, создайте его или укажите правильный путь.")
else:
swap_face_between_images(path_to_source_photo, path_to_target_photo, output_filename)
requirements.txt:
opencv-python
onnxruntime
insightface
Чем лучше качество исходных фоток, тем лучше будет результат.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤1
Сам формирует видео название, описание, хештеги. Заполняет формы автоматически.
Все делается с ПК, с одного интерфеса, есть пресеты описаний и хеш-тегов, могу грузить пакетно с папки, ставить любое удобное мне время и не думать.
Кайф. Просто хвастаюсь, даю Вам идеи...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12
Давайте сравним на казуальной задаче: парсинг веб-страницы. Задача - собрать все заголовки с главной страницы Wikipedia.
На Python для этого нужно использовать только: requests, BeautifulSoup. А вот на C++ придется по-мучится с libcurl и Gumbo-parser.
Что у нас получается на Python? Буквально 7 строк. А вот, что получится для С++:
#include <iostream>
#include <string>
#include <vector>
#include <curl/curl.h>
#include <gumbo.h>
size_t write_callback(void *contents, size_t size, size_t nmemb, std::string *s) {
size_t new_length = size * nmemb;
try {
s->append((char*)contents, new_length);
} catch(std::bad_alloc &e) {
return 0;
}
return new_length;
}
void search_for_headers(GumboNode* node, std::vector<std::string>& headers) {
if (node->type != GUMBO_NODE_ELEMENT) {
return;
}
GumboTag tag = node->v.element.tag;
if (tag >= GUMBO_TAG_H1 && tag <= GUMBO_TAG_H6) {
GumboVector* children = &node->v.element.children;
for (unsigned int i = 0; i < children->length; ++i) {
GumboNode* child = static_cast<GumboNode*>(children->data[i]);
if (child->type == GUMBO_NODE_TEXT) {
headers.push_back(child->v.text.text);
}
}
}
GumboVector* children = &node->v.element.children;
for (unsigned int i = 0; i < children->length; ++i) {
search_for_headers(static_cast<GumboNode*>(children->data[i]), headers);
}
}
int main() {
CURL *curl;
CURLcode res;
std::string html_content;
curl = curl_easy_init();
if (curl) {
curl_easy_setopt(curl, CURLOPT_URL, "https://ru.wikipedia.org/wiki/Заглавная_страница");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &html_content);
res = curl_easy_perform(curl);
if (res != CURLE_OK) {
std::cerr << "Ошибка curl_easy_perform(): " << curl_easy_strerror(res) << std::endl;
}
curl_easy_cleanup(curl);
}
if (html_content.empty()) {
std::cerr << "Не удалось загрузить HTML." << std::endl;
return 1;
}
GumboOutput* output = gumbo_parse(html_content.c_str());
std::vector<std::string> headers;
search_for_headers(output->root, headers);
std::cout << "Найденные заголовки:" << std::endl;
for (const auto& header : headers) {
std::cout << "- " << header << std::endl;
}
gumbo_destroy_output(&kGumboDefaultOptions, output);
return 0;
}
Как видите, код на C++ требует:
- ручного управления зависимостями: нужно установить и слинковать библиотеки;
- более низкоуровневой работы: вы вручную настраиваете curl, пишете callback-функцию для сохранения данных;
- явного обхода дерева: вы рекурсивно обходите DOM-дерево, построенное Gumbo;
- ручного управления памятью: вы обязаны вызвать gumbo_destroy_output, чтобы избежать утечек памяти.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥6❤3👏1
Не проблема, есть ngrock
- Разрабатываете сайт или приложение и хотите показать результат друзьям или заказчику до развертывания.
- Тестируете вебхуки или API-интерфейсы.
- Хотите быстро проверить работу вашего сервиса вне вашей локальной сети.
Вы запускаете локальный сервер (например, сайт на Flask или Node.js), затем запускаете ngrok и получаете публичный URL, по которому любой пользователь в интернете сможет получить доступ к вашему локальному серверу.
Например:
ngrok http 8080
Теперь ваш локальный сервер на порту 8080 доступен через URL, который сгенерирует ngrok (например, https://abcd1234.ngrok.io).
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6
Скачать проект можно тут.
🖥 Проект представляет собой погодного бота, реализованного с использованием aiogram и APScheduler. Он получает настройки каждого пользователя (город и время уведомлений) из SQLite, запрашивает данные о погоде через OpenWeather API и отправляет их по расписанию или по запросу.
Пользовательские настройки сохраняются индивидуально, что позволяет каждому получать актуальную информацию о погоде в своем городе.
1) OpenWeather API - бесплатный, вроде как 1000 запросов в сутки.
2) Погоду можно получить состоянием на сейчас/на ближайшие 5 дней.
3) Город флексится.
4) По заданному времени будет давать актуальную погоду в указанном городе.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁7❤2🗿1
Сегодня о классической связке, которая лежит в основе многих крутых проектов: Python и MySQL.
🤔 Как они "дружат?"
Python "общается" с базами данных MySQL с помощью специальных библиотек-коннекторов. Самые популярные — mysql-connector-python (официальный от Oracle) и PyMySQL.
1. Веб-приложения на Django & Flask: Это самая частая сфера применения. Интернет-магазины, блоги, CRM-системы, социальные сети — везде, где нужно надежно хранить данные о пользователях, товарах или постах, MySQL отлично справляется с ролью хранилища. Django и Flask имеют прекрасную интеграцию с этой СУБД.
2. Аналитика и ETL-процессы: Представьте, что вы парсите данные с сайтов. Python-скрипт собирает информацию, обрабатывает ее и аккуратно записывает в таблицы MySQL. Позже эти данные можно легко анализировать и строить отчеты.
3. Телеграм-боты: Ваш бот должен помнить пользователей, их настройки или историю сообщений? MySQL — отличный и надежный выбор для хранения этой информации.
4. Системы мониторинга: Скрипты, которые следят за состоянием серверов или приложений, могут записывать логи и метрики в базу MySQL для последующего анализа.
Python + MySQL — это надежное и масштабируемое решение для огромного спектра задач.
P.S. я вижу сообщения от ВСЕХ в боте, не нужно писать по несколько раз. Я закрываю вопрос с 2-3 людьми, потом иду дальше.
Если я начну отвечать всем и сразу - никто решение своей проблемы не получит, а я к тому, что сейчас кушаю золофт, еще пару таблеток у психиатра выпишу. До всех очередь дойдет, компенсирую работой/деньгами.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Мог бы сделать для Вас что-то похожее, на дистанции в пару недель. Вот только интересно ли будет?) Не в браузере на локальном сервере, а полноценным десктопным приложением.
Ознакомиться с репозиторием автора видео можно здесь.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
DocxCleaner.exe
37.4 MB
Пользуйтесь на здоровье.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11🤣7🤔2🙊2
👀 Google может больше, чем вы думаете, ребята.
Google Dorks — техника, которая превратит ваш поисковик в мощный инструмент для расследований.
Что это за "дорки" такие?
🖥 "Гугл дорки" — это специальные команды (операторы), которые вы добавляете в свой поисковый запрос, чтобы "поговорить" с Google на его языке и найти то, что он не показывает обычным пользователям.
Давайте на примерах. Хотите найти презентации по маркетингу с какого-нибудь университетского сайта?
- обычный поиск: презентация маркетинг (получите тонну рекламы и курсов) ❌;
- filetype:ppt site:edu маркетинг (найдет только файлы PowerPoint (.ppt) с сайтов в доменной зоне .edu) ✅;
🚀 Это и есть поиск с "дорком". Вот несколько крутых операторов:
- site: — ищет информацию только на одном конкретном сайте;
- filetype: — ищет файлы определённого типа. Очень полезно для поиска документов, книг, отчетов;
- inurl: — ищet слoвa прямo в URL-адрeсe стрaницы;
- intitle: — ищет только в заголовках страниц.
Зачем тебе это нужно? Для учебы и работы 🎓, проверить безопасность своего сайта и утолить любопытство... 🕵️♀️
Google Dorks — техника, которая превратит ваш поисковик в мощный инструмент для расследований.
Что это за "дорки" такие?
🖥 "Гугл дорки" — это специальные команды (операторы), которые вы добавляете в свой поисковый запрос, чтобы "поговорить" с Google на его языке и найти то, что он не показывает обычным пользователям.
Давайте на примерах. Хотите найти презентации по маркетингу с какого-нибудь университетского сайта?
- обычный поиск: презентация маркетинг (получите тонну рекламы и курсов) ❌;
- filetype:ppt site:edu маркетинг (найдет только файлы PowerPoint (.ppt) с сайтов в доменной зоне .edu) ✅;
🚀 Это и есть поиск с "дорком". Вот несколько крутых операторов:
- site: — ищет информацию только на одном конкретном сайте;
- filetype: — ищет файлы определённого типа. Очень полезно для поиска документов, книг, отчетов;
- inurl: — ищet слoвa прямo в URL-адрeсe стрaницы;
- intitle: — ищет только в заголовках страниц.
Зачем тебе это нужно? Для учебы и работы 🎓, проверить безопасность своего сайта и утолить любопытство... 🕵️♀️
❤10
⚙️ Генерирует QR со ссылки, любого текста.
Ниже зависимости:
import qrcode
from PIL import Image
def generate_qr_code(data, filename="qr_code.png"):
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
qr.add_data(data)
qr.make(fit=True)
img = qr.make_image(fill_color="black", back_color="white")
img.save(filename)
return filename
if __name__ == "__main__":
print("Генератор QR-кодов")
input_data = input("Введите текст или ссылку для кодирования в QR-код: ")
output_filename = input("Введите имя файла для сохранения QR-кода (например, my_qr.png) или нажмите Enter для 'qr_code.png': ")
if not output_filename:
output_filename = "qr_code.png"
elif not output_filename.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif')):
output_filename += ".png"
saved_file = generate_qr_code(input_data, output_filename)
print(f"QR-код успешно создан и сохранен как '{saved_file}'")
Ниже зависимости:
pip install qrcode Pillow
❤4🤔1
🚀 Python-бот, который отслеживает указанные YouTube-каналы и автоматически отправляет уведомления в группы/каналы Telegram при появлении новых видео.
- 🔄 Отслеживание нескольких YouTube-каналов в реальном времени
- 📢 Мгновенные уведомления в Telegram при публикации новых видео
- 🎯 Чистый и профессиональный формат уведомлений с миниатюрами (thumbnail)
- 👥 Поддержка отправки уведомлений в несколько групп/каналов Telegram
- 🔐 Управление доступом только для администраторов
- ⚙️ Простая конфигурация через переменные окружения
- 💾 Постоянное хранение данных о каналах и настройках чатов
- 🚀 Автоматический повтор уведомлений при сбоях отправки
- 🛡 Обработка ошибок и корректное завершение работы бота
🖥 Для работы нужно указать свои:
1) Токен бота.
2) YOUTUBE_API_KEY.
3) Интервал в котором будет совершаться проверка на пост новых видео.
4) ID админов (для доступа к панели админов 🥹)
Поможет следить за контентом, первыми делать нарезки и т.д., работает надежнее колокольчика.
Cкачать можно тут.
- 🔄 Отслеживание нескольких YouTube-каналов в реальном времени
- 📢 Мгновенные уведомления в Telegram при публикации новых видео
- 🎯 Чистый и профессиональный формат уведомлений с миниатюрами (thumbnail)
- 👥 Поддержка отправки уведомлений в несколько групп/каналов Telegram
- 🔐 Управление доступом только для администраторов
- ⚙️ Простая конфигурация через переменные окружения
- 💾 Постоянное хранение данных о каналах и настройках чатов
- 🚀 Автоматический повтор уведомлений при сбоях отправки
- 🛡 Обработка ошибок и корректное завершение работы бота
🖥 Для работы нужно указать свои:
1) Токен бота.
2) YOUTUBE_API_KEY.
3) Интервал в котором будет совершаться проверка на пост новых видео.
4) ID админов (для доступа к панели админов 🥹)
Поможет следить за контентом, первыми делать нарезки и т.д., работает надежнее колокольчика.
Cкачать можно тут.
👍2