🔥 Анонс новой статьи на Хабре! 🔥
Друзья, скоро на Хабре выйдет мой новый материал, в котором я разберу, как подключить свою базу данных к LLM-моделям вроде Deepseek или GPT.
На простом примере покажу, как это работает:
✅ Собираем текстовые данные (документацию, книги, корпоративную информацию).
✅ Преобразуем их в векторную базу с помощью Python + ChromaDB.
✅ Подключаемся к базе и учим модель искать в ней нужную информацию.
✅ Интегрируем всё с LLM, чтобы получать точные и контекстные ответы.
Где это применимо? В бизнесе, обучении, автоматизации поддержки и не только.
📌 Подробности — скоро на Хабре! Следите за анонсом. 🚀
Друзья, скоро на Хабре выйдет мой новый материал, в котором я разберу, как подключить свою базу данных к LLM-моделям вроде Deepseek или GPT.
На простом примере покажу, как это работает:
✅ Собираем текстовые данные (документацию, книги, корпоративную информацию).
✅ Преобразуем их в векторную базу с помощью Python + ChromaDB.
✅ Подключаемся к базе и учим модель искать в ней нужную информацию.
✅ Интегрируем всё с LLM, чтобы получать точные и контекстные ответы.
Где это применимо? В бизнесе, обучении, автоматизации поддержки и не только.
📌 Подробности — скоро на Хабре! Следите за анонсом. 🚀
2🔥76❤11👍9🎉7🦄2🙏1🤪1
Вот наглядная демонстрация интеллектуального поиска без внешних нейросетей.
🔹 Как это работает?
1. Я загрузил в Chroma небольшой набор товаров, а для их преобразования в векторы использовал локальную нейросеть paraphrase-multilingual-MiniLM-L12-v2 (её размер ~450 МБ).
2. На основе этих данных была сформирована векторная база.
3. Подключившись к Chroma, я выполнял запросы и получал релевантные текстовые результаты (пример на скриншотах).
Теперь осталось интегрировать мощную языковую нейросеть для обработки ответов – и можно собирать полноценный сервис.
💡 На самом деле всё проще, чем кажется! 🚀
🔹 Как это работает?
1. Я загрузил в Chroma небольшой набор товаров, а для их преобразования в векторы использовал локальную нейросеть paraphrase-multilingual-MiniLM-L12-v2 (её размер ~450 МБ).
2. На основе этих данных была сформирована векторная база.
3. Подключившись к Chroma, я выполнял запросы и получал релевантные текстовые результаты (пример на скриншотах).
Теперь осталось интегрировать мощную языковую нейросеть для обработки ответов – и можно собирать полноценный сервис.
💡 На самом деле всё проще, чем кажется! 🚀
1🔥41👍13❤8🤯2🤪1😎1👾1
Друзья, привет! 🚀
Наконец-то готов поделиться с вами проектом, который поможет разобраться с векторными базами данных и их интеграцией с мощными нейросетями, такими как ChatGPT и DeepSeek.
🔹 В первой части, которая выйдет на Хабре через пару дней, мы разберем:
✅ Что такое векторная база данных и зачем она нужна
✅ Как преобразовать информацию в векторный формат
✅ Как реализовать умный поиск по смыслу, а не просто по совпадениям
✅ Как использовать эти данные для работы с нейросетями
Исходный код проекта уже доступен на GitHub 👉 ССЫЛКА
Что там найдете?
📌 Простые примеры работы с векторной базой данных
📌 Запаковку 70 документов крупного сайта в базу и реализацию умного поиска по ним
📌 Интеграцию с ChatGPT и DeepSeek через LangChain – мощнейший инструмент для работы с AI
🔥 Пока всё работает в консоли, но во второй части я покажу, как сделать веб-приложение на FastAPI + VueJS + Centrifugo для удобного общения с AI-ассистентом.
Для тестов нужен API-токен ChatGPT или DeepSeek
Будете ждать статью?
Наконец-то готов поделиться с вами проектом, который поможет разобраться с векторными базами данных и их интеграцией с мощными нейросетями, такими как ChatGPT и DeepSeek.
🔹 В первой части, которая выйдет на Хабре через пару дней, мы разберем:
✅ Что такое векторная база данных и зачем она нужна
✅ Как преобразовать информацию в векторный формат
✅ Как реализовать умный поиск по смыслу, а не просто по совпадениям
✅ Как использовать эти данные для работы с нейросетями
Исходный код проекта уже доступен на GitHub 👉 ССЫЛКА
Что там найдете?
📌 Простые примеры работы с векторной базой данных
📌 Запаковку 70 документов крупного сайта в базу и реализацию умного поиска по ним
📌 Интеграцию с ChatGPT и DeepSeek через LangChain – мощнейший инструмент для работы с AI
🔥 Пока всё работает в консоли, но во второй части я покажу, как сделать веб-приложение на FastAPI + VueJS + Centrifugo для удобного общения с AI-ассистентом.
Для тестов нужен API-токен ChatGPT или DeepSeek
Будете ждать статью?
GitHub
ChromaDBGPTDeepSeek/article_1 at main · Yakvenalex/ChromaDBGPTDeepSeek
Contribute to Yakvenalex/ChromaDBGPTDeepSeek development by creating an account on GitHub.
5👍70🔥32❤8⚡2👏1😁1🤪1
Друзья, рассказать вам как в РФ оплатить доступ к API DeepSeek?
Anonymous Poll
83%
Конечно
5%
Я знаю как
13%
Не интересно
🔥6❤5👌2💘2😇1
Привет, друзья!
На Хабре вышла моя новая статья — «Личный ИИ-ассистент на ваших данных. Часть 1: Векторная база ChromaDB + DeepSeek | GPT».
Это первая часть цикла, в котором я подробно рассказываю, как собрать собственного ИИ-ассистента, способного работать с вашими текстами и знаниями. Если статья получит отклик — в следующей части покажу, как развернуть полноценный веб-сервис на основе описанных инструментов.
В этой статье вы узнаете:
- Что такое векторная база данных и зачем она нужна
- Как превратить любую текстовую информацию в "поиск по смыслу", а не просто по ключевым словам
- Как связать такой смысловой поисковик с ChatGPT, DeepSeek и другими LLM
- Как использовать фреймворк Langchain, чтобы легко интегрировать нейросети в свои Python-проекты
Langchain позволяет в пару строк кода создать свою векторную базу и построить на ней интеллектуальный поисковик, который «понимает» смысл запроса. А дальше — просто подключаем DeepSeek или GPT, и получаем умного ассистента, который отвечает именно на ваши данные.
🔍 В статье много теории, но и практики хватает: я демонстрирую, как на базе 63 объёмных статей собрать свою базу знаний и интегрировать её с ChatGPT и DeepSeek.
📁 Весь код проекта доступен на GitHub: https://github.com/Yakvenalex/ChromaDBGPTDeepSeek
Там есть как примеры из статьи, так и удобный класс для асинхронной работы с ChromaDB.
Буду рад вопросам, комментариям и вашей обратной связи! Если тема интересна — вторая часть не заставит себя ждать 😉
На Хабре вышла моя новая статья — «Личный ИИ-ассистент на ваших данных. Часть 1: Векторная база ChromaDB + DeepSeek | GPT».
Это первая часть цикла, в котором я подробно рассказываю, как собрать собственного ИИ-ассистента, способного работать с вашими текстами и знаниями. Если статья получит отклик — в следующей части покажу, как развернуть полноценный веб-сервис на основе описанных инструментов.
В этой статье вы узнаете:
- Что такое векторная база данных и зачем она нужна
- Как превратить любую текстовую информацию в "поиск по смыслу", а не просто по ключевым словам
- Как связать такой смысловой поисковик с ChatGPT, DeepSeek и другими LLM
- Как использовать фреймворк Langchain, чтобы легко интегрировать нейросети в свои Python-проекты
Langchain позволяет в пару строк кода создать свою векторную базу и построить на ней интеллектуальный поисковик, который «понимает» смысл запроса. А дальше — просто подключаем DeepSeek или GPT, и получаем умного ассистента, который отвечает именно на ваши данные.
🔍 В статье много теории, но и практики хватает: я демонстрирую, как на базе 63 объёмных статей собрать свою базу знаний и интегрировать её с ChatGPT и DeepSeek.
📁 Весь код проекта доступен на GitHub: https://github.com/Yakvenalex/ChromaDBGPTDeepSeek
Там есть как примеры из статьи, так и удобный класс для асинхронной работы с ChromaDB.
Буду рад вопросам, комментариям и вашей обратной связи! Если тема интересна — вторая часть не заставит себя ждать 😉
Хабр
Личный ИИ-ассистент на ваших данных. Часть 1: Векторная база ChromaDB + DeepSeek | GPT
Друзья, приветствую! Сегодня я хотел бы рассмотреть интересующую многих тему, а именно связку большой языковой модели по типу DeepSeek или ChatGPT со своей базой знаний. В рамках этой статьи я дам вам...
14🔥72👍23❤🔥12🦄4❤2🐳2🥰1👏1
Друзья, добрый вечер! 😎 Надеюсь, что соскучились? 😏 Я немного увяз в рабочих проектах, но теперь, немного раскидавшись, анонсирую вторую часть из серии «Личный ИИ-ассистент на ваших данных»!
К концу недели опубликую на Хабре продолжение, в рамках которого мы будем разрабатывать полноценный веб-интерфейс для нашего ИИ-ассистента.
Для тех, кто пропустил: в первой части мы создали собственную векторную базу данных, используя личную информацию, и разобрались, как интегрировать её с нейросетями DeepSeek и OpenAI. Пока всё работало в консольной версии, но это уже был важный шаг вперёд!
Теперь мы реализуем веб-интерфейс с поддержкой стриминга ответов, как в чате ChatGPT, используя Centrifugo V6, чтобы ИИ выдавал текст постепенно — плавно и без долгих ожиданий. Также добавим простую систему авторизации для безопасного доступа и возможность выбора между моделями DeepSeek и ChatGPT прямо в интерфейсе.
Сам чат, естественно, будет завязан на векторной базе данных, которую мы уже подготовили в первой части.
Будет, как минимум, интересно так что следите за обновлениями! 🔥
К концу недели опубликую на Хабре продолжение, в рамках которого мы будем разрабатывать полноценный веб-интерфейс для нашего ИИ-ассистента.
Для тех, кто пропустил: в первой части мы создали собственную векторную базу данных, используя личную информацию, и разобрались, как интегрировать её с нейросетями DeepSeek и OpenAI. Пока всё работало в консольной версии, но это уже был важный шаг вперёд!
Теперь мы реализуем веб-интерфейс с поддержкой стриминга ответов, как в чате ChatGPT, используя Centrifugo V6, чтобы ИИ выдавал текст постепенно — плавно и без долгих ожиданий. Также добавим простую систему авторизации для безопасного доступа и возможность выбора между моделями DeepSeek и ChatGPT прямо в интерфейсе.
Сам чат, естественно, будет завязан на векторной базе данных, которую мы уже подготовили в первой части.
Будет, как минимум, интересно так что следите за обновлениями! 🔥
Хабр
Личный ИИ-ассистент на ваших данных. Часть 1: Векторная база ChromaDB + DeepSeek | GPT
Друзья, приветствую! Сегодня я хотел бы рассмотреть интересующую многих тему, а именно связку большой языковой модели по типу DeepSeek или ChatGPT со своей базой знаний. В рамках этой статьи я дам вам...
2🔥58❤15👍12⚡6✍1🙈1😇1
🚀 Как конвертировать XML в JSON на Python. Простой и удобный способ 🔄
Привет, друзья! Недавно столкнулся с задачей трансформации XML-файлов в читаемый JSON — решил поделиться рабочим решением 💡
📦 Установим пару библиотек:
-
-
🛠 Что умеет скрипт:
✅ Автоматически определяет кодировку XML
✅ Конвертирует структуру XML в JSON
✅ Поддерживает кириллицу и спецсимволы
✅ Генерирует читаемый JSON с отступами
📄 Пример скрипта:
📎 Подходит как для небольших XML-файлов, так и для массивных выгрузок (сегодня делал тест на файле 200мб + - летает).
Привет, друзья! Недавно столкнулся с задачей трансформации XML-файлов в читаемый JSON — решил поделиться рабочим решением 💡
📦 Установим пару библиотек:
pip install xmltodict chardet
-
xmltodict — превращает XML в питоновский словарь (json)-
chardet — автоматически определяет кодировку файла (важно для кириллицы)🛠 Что умеет скрипт:
✅ Автоматически определяет кодировку XML
✅ Конвертирует структуру XML в JSON
✅ Поддерживает кириллицу и спецсимволы
✅ Генерирует читаемый JSON с отступами
📄 Пример скрипта:
import xmltodict
import json
import os
import chardet
def detect_encoding(file_path):
with open(file_path, "rb") as file:
raw_data = file.read()
result = chardet.detect(raw_data)
return result["encoding"]
def xml_to_json(xml_file_path):
try:
if not os.path.exists(xml_file_path):
print(f"Ошибка: Файл {xml_file_path} не найден")
return
encoding = detect_encoding(xml_file_path)
print(f"Определена кодировка файла: {encoding}")
with open(xml_file_path, "r", encoding=encoding) as xml_file:
xml_content = xml_file.read()
xml_dict = xmltodict.parse(xml_content)
json_file_path = os.path.splitext(xml_file_path)[0] + ".json"
with open(json_file_path, "w", encoding="utf-8") as json_file:
json.dump(xml_dict, json_file, ensure_ascii=False, indent=4)
print(f"✅ Файл успешно сохранён как {json_file_path}")
except Exception as e:
print(f"❌ Ошибка при преобразовании: {str(e)}")
if __name__ == "__main__":
xml_file_path = "my_file.xml"
xml_to_json(xml_file_path)
📎 Подходит как для небольших XML-файлов, так и для массивных выгрузок (сегодня делал тест на файле 200мб + - летает).
🔥35👍17⚡3❤3
This media is not supported in your browser
VIEW IN TELEGRAM
Друзья, приветствую! К сожалению, не успеваю с публикацией полноценной статьи на сегодня, но сам проект практически готов.
На приложенной анимации вы можете увидеть, как работает чат на данный момент.
Есть выбор между ChatGPT и Deepseek, ответ подгружается в формате стриминга (чанками).
Сами ответы основаны на контексте, который мы получаем из векторной базы знаний (в прошлой статье я рассказывал, что это такое и как она собирается).
Остается добавить простую авторизацию, и проект будет полностью готов.
Сегодня делюсь с вами кодом проекта.
На приложенной анимации вы можете увидеть, как работает чат на данный момент.
Есть выбор между ChatGPT и Deepseek, ответ подгружается в формате стриминга (чанками).
Сами ответы основаны на контексте, который мы получаем из векторной базы знаний (в прошлой статье я рассказывал, что это такое и как она собирается).
Остается добавить простую авторизацию, и проект будет полностью готов.
Сегодня делюсь с вами кодом проекта.
3👍32🔥19❤7⚡2🥰2😱1😇1
🚀 Проект готов! Личный ИИ-ассистент на ваших данных
Друзья, рад поделиться хорошими новостями — мой проект по созданию персонального ИИ-ассистента завершён! Он работает на базе ваших собственных данных с использованием ChromaDB + DeepSeek | GPT.
🧠 Пока вторая часть статьи ещё в процессе написания, но не терпится показать вам результат. Ниже — видео с демонстрацией, а также доступ к исходному коду.
🎥 Видео-демо веб-интерфейса и возможностей ассистента:
▶️ YouTube: Смотреть на YouTube
📺 RuTube: Смотреть на RuTube
📖 Если ещё не читали первую часть статьи — рекомендую начать с неё:
«Личный ИИ-ассистент на ваших данных. Часть 1: Векторная база ChromaDB + DeepSeek | GPT»
💻 Исходный код проекта (вся логика из видео и статьи):
🔗 GitHub: ChromaDBGPTDeepSeek — article_2
Буду рад вашим вопросам, идеям и обратной связи — присоединяйтесь к обсуждению!💬
Друзья, рад поделиться хорошими новостями — мой проект по созданию персонального ИИ-ассистента завершён! Он работает на базе ваших собственных данных с использованием ChromaDB + DeepSeek | GPT.
🧠 Пока вторая часть статьи ещё в процессе написания, но не терпится показать вам результат. Ниже — видео с демонстрацией, а также доступ к исходному коду.
🎥 Видео-демо веб-интерфейса и возможностей ассистента:
▶️ YouTube: Смотреть на YouTube
📺 RuTube: Смотреть на RuTube
📖 Если ещё не читали первую часть статьи — рекомендую начать с неё:
«Личный ИИ-ассистент на ваших данных. Часть 1: Векторная база ChromaDB + DeepSeek | GPT»
💻 Исходный код проекта (вся логика из видео и статьи):
🔗 GitHub: ChromaDBGPTDeepSeek — article_2
Буду рад вашим вопросам, идеям и обратной связи — присоединяйтесь к обсуждению!
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Личный ИИ-ассистент на ваших данных. Часть 2: Веб-интерфейс и чат (обзор, GPT / DeepSeek + ChromaDB)
🚀 Демонстрация веб-интерфейса ИИ-ассистента на ваших данных
Добро пожаловать во вторую часть проекта, посвящённого созданию личного ИИ-ассистента на основе GPT / DeepSeek и ChromaDB. В этом видео — обзор готового интерфейса с чатом, его функциональности…
Добро пожаловать во вторую часть проекта, посвящённого созданию личного ИИ-ассистента на основе GPT / DeepSeek и ChromaDB. В этом видео — обзор готового интерфейса с чатом, его функциональности…
12👍38🔥27❤8🤮1💋1🤪1
This media is not supported in your browser
VIEW IN TELEGRAM
🌅 Доброе утро, друзья!
Как и обещал, на Хабре вышло продолжение серии про создание ИИ-ассистента на собственной базе знаний!
В новой статье я подробно рассказываю, как превратить консольного ассистента в полноценное веб-приложение с авторизацией и стримингом ответов от нейросети. Проект изначально задумывался максимально гибким — с возможностью легко масштабировать функциональность, добавлять пользователей и подключать новые модели.
🔐 В этой части я также показал новый подход к реализации системы JWT-авторизации — просто, прозрачно и удобно.
💡 Сейчас в проекте задействованы две нейросети: DeepSeek и ChatGPT. Всё работает через стриминг, интерфейс аккуратный и современный. Думаю, вам понравится.
📖 Читайте статью:
👉 Личный ИИ-ассистент на ваших данных. Часть 2: Веб-интерфейс, авторизация и стриминг ответов от ИИ
💻 Исходники проекта (вся логика из обеих частей):
🔗 GitHub: ChromaDBGPTDeepSeek — article_2
Как всегда, буду рад вашей поддержке, комментариям и обратной связи 🙌
Как и обещал, на Хабре вышло продолжение серии про создание ИИ-ассистента на собственной базе знаний!
В новой статье я подробно рассказываю, как превратить консольного ассистента в полноценное веб-приложение с авторизацией и стримингом ответов от нейросети. Проект изначально задумывался максимально гибким — с возможностью легко масштабировать функциональность, добавлять пользователей и подключать новые модели.
🔐 В этой части я также показал новый подход к реализации системы JWT-авторизации — просто, прозрачно и удобно.
💡 Сейчас в проекте задействованы две нейросети: DeepSeek и ChatGPT. Всё работает через стриминг, интерфейс аккуратный и современный. Думаю, вам понравится.
📖 Читайте статью:
👉 Личный ИИ-ассистент на ваших данных. Часть 2: Веб-интерфейс, авторизация и стриминг ответов от ИИ
💻 Исходники проекта (вся логика из обеих частей):
🔗 GitHub: ChromaDBGPTDeepSeek — article_2
Как всегда, буду рад вашей поддержке, комментариям и обратной связи 🙌
4🔥52👍15❤6✍2👏2😁2🤗1
👋 Друзья, привет!
Ловите небольшой лайфхак для тех, кто работает с FastAPI.
Иногда возникает необходимость скрыть отдельные методы из Swagger-документации (автоматически генерируемого интерфейса). Например, если у вас есть служебные эндпоинты, которые не стоит светить наружу.
Вот как это легко сделать 👇
💡 Ключевой параметр —
Пользуйтесь! 🚀
Ловите небольшой лайфхак для тех, кто работает с FastAPI.
Иногда возникает необходимость скрыть отдельные методы из Swagger-документации (автоматически генерируемого интерфейса). Например, если у вас есть служебные эндпоинты, которые не стоит светить наружу.
Вот как это легко сделать 👇
@router.post("/secret/", include_in_schema=False)
async def my_secret():
# Ваш код здесь
pass💡 Ключевой параметр —
include_in_schema=False. Он говорит FastAPI не включать метод в OpenAPI-схему, а значит, и в Swagger он не попадёт.Пользуйтесь! 🚀
2👍78❤15🔥11🐳3⚡1✍1👾1
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Интеграция Keycloak с FastAPI — просто о безопасности
Друзья, привет!
В честь 1 мая — Дня труда, решил не отдыхать, а поделиться полезной темой: интеграция Keycloak с FastAPI.
Для тех, кто не знаком: Keycloak — это мощная open-source система управления пользователями, авторизацией и SSO. Минимум кода — максимум защиты. Используется даже в банковских продуктах благодаря своей стабильности и гибкости.
📽 В видео, которое прикрепил к посту, вы увидите простой сценарий:
1️⃣ Пользователь с фронта перенаправляется на страницу авторизации Keycloak
2️⃣ Проходит регистрацию или вход
3️⃣ После успешного логина — возвращается в приложение с нужными токенами
🔗 Код из демонстрации доступен тут:
https://github.com/Yakvenalex/KeycloackFastApi
💡 Сейчас думаю собрать небольшой pet-проект — "хранилище мыслей" с авторизацией через Keycloak, и заодно оформить это в статью на Хабр. Если тема вам зайдёт — углубимся в детали: роли, группы, refresh токены, разграничение доступа и многое другое.
📬 Пишите в комментарии, если интересно. Будем разбирать вместе!
P.S. Всех с 1 мая! Хорошего настроения, и пусть труд будет в радость — особенно, если это труд по внедрению безопасных решений 😉
Друзья, привет!
В честь 1 мая — Дня труда, решил не отдыхать, а поделиться полезной темой: интеграция Keycloak с FastAPI.
Для тех, кто не знаком: Keycloak — это мощная open-source система управления пользователями, авторизацией и SSO. Минимум кода — максимум защиты. Используется даже в банковских продуктах благодаря своей стабильности и гибкости.
📽 В видео, которое прикрепил к посту, вы увидите простой сценарий:
1️⃣ Пользователь с фронта перенаправляется на страницу авторизации Keycloak
2️⃣ Проходит регистрацию или вход
3️⃣ После успешного логина — возвращается в приложение с нужными токенами
🔗 Код из демонстрации доступен тут:
https://github.com/Yakvenalex/KeycloackFastApi
💡 Сейчас думаю собрать небольшой pet-проект — "хранилище мыслей" с авторизацией через Keycloak, и заодно оформить это в статью на Хабр. Если тема вам зайдёт — углубимся в детали: роли, группы, refresh токены, разграничение доступа и многое другое.
📬 Пишите в комментарии, если интересно. Будем разбирать вместе!
P.S. Всех с 1 мая! Хорошего настроения, и пусть труд будет в радость — особенно, если это труд по внедрению безопасных решений 😉
5❤48👍42🔥19🎉3❤🔥2⚡1🍌1💋1
🚀 FastAPI + Keycloak: готовый проект и видеообзор
Друзья, всем привет!
Я подготовил для вас демо-проект, который показывает, как можно реализовать авторизацию с помощью Keycloak в связке с FastAPI в своем веб-приложении.
🔍 Чтобы проще разобраться, как всё работает, я записал короткий видеообзор — смотрите на удобной вам платформе:
📺 YouTube – https://www.youtube.com/watch?v=YyeB4NjWMHY&t=2s
📺 RuTube – https://rutube.ru/video/84b5021cadd5033c441ba43adcd166a8/
💡 Проект — это простое CRUD-приложение для заметок. Но основной акцент — на реализации авторизации через Keycloak.
Вот как работает процесс:
1. Пользователь переходит на страницу Keycloak (готовая форма авторизации/регистрации).
2. После входа происходит редирект обратно в ваше приложение с одноразовым кодом.
3. Приложение получает код и отправляет его обратно в Keycloak.
4. В ответ возвращаются access_token, refresh_token и id_token, которые можно сохранить в куках.
5. Далее эти токены используются для доступа к защищённым маршрутам.
🔐 Возможности Keycloak:
💎 формы регистрации/входа «из коробки»
💎 внутренняя база пользователей
💎 интеграция с email-рассылкой
💎 поддержка множества внешних провайдеров авторизации: GitHub, Google и многие другие.
🎥 В видео — демонстрация процесса. А более подробный разбор кода будет в моей статье на Хабре (скоро!).
📦 Исходный код проекта на GitHub:
🔗 github.com/Yakvenalex/KeycloackFastApi
Если остались вопросы или есть пожелания — пишите в комментариях!
Друзья, всем привет!
Я подготовил для вас демо-проект, который показывает, как можно реализовать авторизацию с помощью Keycloak в связке с FastAPI в своем веб-приложении.
🔍 Чтобы проще разобраться, как всё работает, я записал короткий видеообзор — смотрите на удобной вам платформе:
📺 YouTube – https://www.youtube.com/watch?v=YyeB4NjWMHY&t=2s
📺 RuTube – https://rutube.ru/video/84b5021cadd5033c441ba43adcd166a8/
💡 Проект — это простое CRUD-приложение для заметок. Но основной акцент — на реализации авторизации через Keycloak.
Вот как работает процесс:
1. Пользователь переходит на страницу Keycloak (готовая форма авторизации/регистрации).
2. После входа происходит редирект обратно в ваше приложение с одноразовым кодом.
3. Приложение получает код и отправляет его обратно в Keycloak.
4. В ответ возвращаются access_token, refresh_token и id_token, которые можно сохранить в куках.
5. Далее эти токены используются для доступа к защищённым маршрутам.
🔐 Возможности Keycloak:
🎥 В видео — демонстрация процесса. А более подробный разбор кода будет в моей статье на Хабре (скоро!).
📦 Исходный код проекта на GitHub:
🔗 github.com/Yakvenalex/KeycloackFastApi
Если остались вопросы или есть пожелания — пишите в комментариях!
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
FastAPI + Keycloak: профессиональная авторизация без лишних сложностей (видео-обзор)
В этом видео я покажу вам, как быстро организовать профессиональную систему авторизации для вашего веб-приложения с помощью связки FastAPI и Keycloak. Вы увидите работающий пример приложения для заметок, где пользователи могут регистрироваться, входить в…
4❤🔥32🔥24👍14❤3🫡2😍1🎃1
Друзья, добрый день!
Рад поделиться с вами завершённым проектом на связке Keycloak + FastAPI, который подробно описан в моей новой статье на Хабре.
В статье я разбираю простой CRUD-приложение для заметок с реализацией полноценной авторизации через Keycloak - от формы входа и регистрации до работы с access и refresh токенами.
Что внутри статьи?
- Подробный разбор теоретических основ интеграции FastAPI с Keycloak.
- Особенности взаимодействия собственной системы с системой авторизации Keycloak.
- Пошаговое руководство по созданию безопасного и удобного механизма аутентификации и авторизации.
- Практический пример на реальном проекте, который будет полезен как новичкам, так и опытным разработчикам.
Статья называется:
«FastAPI + Keycloak: Простая и безопасная авторизация в веб-приложении на примере реального проекта» и уже доступна на Хабре.
Полезные материалы:
💎 Статья на Хабре: https://habr.com/ru/companies/amvera/articles/907990/
- Короткий видеообзор, где я показываю работу проекта на практике:
💎 YouTube: https://www.youtube.com/watch?v=YyeB4NjWMHY&t=2s
💎 RuTube: https://rutube.ru/video/84b5021cadd5033c441ba43adcd166a8/
💎 Исходный код проекта на GitHub: https://github.com/Yakvenalex/KeycloackFastApi
Если у вас возникнут вопросы или предложения - пишите в комментариях, буду рад помочь!
Рад поделиться с вами завершённым проектом на связке Keycloak + FastAPI, который подробно описан в моей новой статье на Хабре.
В статье я разбираю простой CRUD-приложение для заметок с реализацией полноценной авторизации через Keycloak - от формы входа и регистрации до работы с access и refresh токенами.
Что внутри статьи?
- Подробный разбор теоретических основ интеграции FastAPI с Keycloak.
- Особенности взаимодействия собственной системы с системой авторизации Keycloak.
- Пошаговое руководство по созданию безопасного и удобного механизма аутентификации и авторизации.
- Практический пример на реальном проекте, который будет полезен как новичкам, так и опытным разработчикам.
Статья называется:
«FastAPI + Keycloak: Простая и безопасная авторизация в веб-приложении на примере реального проекта» и уже доступна на Хабре.
Полезные материалы:
- Короткий видеообзор, где я показываю работу проекта на практике:
Если у вас возникнут вопросы или предложения - пишите в комментариях, буду рад помочь!
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
FastAPI + Keycloak: Простая и безопасная авторизация в веб-приложении на примере реального проекта
Друзья, приветствую! Давно хотел рассказать вам о такой замечательной open-source технологии, как Keycloak на примере реального веб-приложения. Сегодня я расскажу вам простым и доступным языком о том,...
3👍39🔥21❤6🙏2🏆2👏1💋1
👋 Друзья, привет!
Хочу поделиться небольшой, но полезной наработкой для тех, кто работает с Telegram-ботами и отправкой изображений.
Ситуация:
У вас есть backend, на котором лежат изображения. Вы пытаетесь отправить их в чат бота с помощью
❌ Bad Request: wrong type of the web page content
Такое часто бывает, если:
* домен нестандартный (например, через туннель или локальный IP)
* сертификат Telegram не устраивает
* или просто он не может скачать файл напрямую.
🎯 Решение — скачать изображение вручную и отправить его как байты:
🛡 Это работает стабильно и безопасно. Независимо от особенностей хостинга или домена, Telegram получит реальный файл и всё отправится без ошибок.
Надеюсь, пригодится!
Хочу поделиться небольшой, но полезной наработкой для тех, кто работает с Telegram-ботами и отправкой изображений.
Ситуация:
У вас есть backend, на котором лежат изображения. Вы пытаетесь отправить их в чат бота с помощью
bot.send_photo, передавая прямую ссылку (image_url) — но Telegram отвечает чем-то вроде:❌ Bad Request: wrong type of the web page content
Такое часто бывает, если:
* домен нестандартный (например, через туннель или локальный IP)
* сертификат Telegram не устраивает
* или просто он не может скачать файл напрямую.
🎯 Решение — скачать изображение вручную и отправить его как байты:
import aiohttp
from aiogram.types import BufferedInputFile
async def send_photo_from_url(chat_id, image_url, caption=None, parse_mode="HTML"):
async with aiohttp.ClientSession() as session:
async with session.get(image_url) as resp:
if resp.status != 200:
raise Exception(f"Image load failed: {resp.status}")
img_bytes = await resp.read()
image = BufferedInputFile(img_bytes, filename="image.jpg")
await bot.send_photo(
chat_id=chat_id,
photo=image,
caption=caption,
parse_mode=parse_mode,
)
🛡 Это работает стабильно и безопасно. Независимо от особенностей хостинга или домена, Telegram получит реальный файл и всё отправится без ошибок.
Надеюсь, пригодится!
👍36🔥23❤7❤🔥1💘1
💭 А что, если пойти дальше?
Вместо того чтобы вручную возиться с кодом, почему бы не создать полноценный веб-интерфейс для отправки отложенных сообщений в Telegram — с поддержкой:
✨ форматированного текста
📸 изображений
📎 файлов
🔒 авторизации
🕒 планирования по времени
Всё это — через удобную, современную админку. Никаких команд в терминале — всё в пару кликов.
⚙️ Хочу рассказать, как реализовать такую систему на базе FastAPI, Aiogram 3 и SQLAlchemy, с гибкой очередью сообщений и полной готовностью к продакшену. Авторизацию можно будет снова сделать через Keycloak.
Будете ждать такую статью?
Вместо того чтобы вручную возиться с кодом, почему бы не создать полноценный веб-интерфейс для отправки отложенных сообщений в Telegram — с поддержкой:
✨ форматированного текста
📸 изображений
📎 файлов
🔒 авторизации
🕒 планирования по времени
Всё это — через удобную, современную админку. Никаких команд в терминале — всё в пару кликов.
⚙️ Хочу рассказать, как реализовать такую систему на базе FastAPI, Aiogram 3 и SQLAlchemy, с гибкой очередью сообщений и полной готовностью к продакшену. Авторизацию можно будет снова сделать через Keycloak.
Будете ждать такую статью?
2🔥124👍37❤11🤩3🤪3👎1🎄1