Kontiki, a microservices framework in Python.
github.com/kontiki-org/kontiki
#python #kontiki #amqp #rabbitmq #flask #fastapi #microservices
Novo post no blog: injeção de dependência com Dishka e FastAPI.
O sistema nativo de Depends() do FastAPI é ótimo até o momento em que você precisa de ciclos de vida diferentes por dependência, reutilizar serviços num worker Celery ou testar sem depender de banco real. A partir daí, começa a doer.
O artigo mostra como usar o Dishka — um container de IoC que entende escopo — para resolver isso: providers por Scope.APP e Scope.REQUEST, cleanup via yield, integração com FastAPI e testes com container substituto sem app.dependency_overrides.

Você já escreveu algo assim numa aplicação FastAPI? 1 2 3 4 5 6 7 8 9 @router.get("/orders/{order_id}") async def get_order(order_id: int): db = SessionLocal() try: repo = OrderRepository(db) service = OrderService(repo, settings.TAX_RATE) return await service.get_order(order_id) finally: db.close() O código funciona. Mas há um problema sério: cada endpoint é responsável por montar sua própria árvore de dependências. Quando OrderService precisar de um CacheClient e de um EventPublisher, quem vai sofrer é quem escreve — e depois testa — cada endpoint. O FastAPI tem seu próprio sistema de Depends() que resolve parte disso, mas tem limites quando a aplicação cresce e os grafos de dependência ficam complexos. É aqui que entra o conceito de Inversão de Controle e, mais especificamente, uma biblioteca que acerta onde o Depends() tropeça: o Dishka.
Kong API Gateway: Rate Limiting Tutorial | Protect Your API from Overload

A senior AI project is not defined by complexity but by structure.
My 8‑day HR Copilot roadmap covers repo setup, data upgrades, backend/UI deployment, QA, documentation, communication, and portfolio expansion.
Clear phases → clear delivery.
#AI #DataEngineering #FastAPI #Streamlit #TechPortfolio #LLM
Добавляем в бизнес-портал Битрикс24 роботов для автоматизации
В прошлой статье мы сделали первое пробное фронтенд-приложение. Сегодня покажем, как делать автоматизацию и добавим 4 роботов: исправление номеров телефонов, нормализация имён и сбор данных по задачам и суммам сделок. Для проекта используем специально подготовленный для работы с AI-агентами шаблон AI-стартера, где уже заложены подробные инструкции для работы с ИИ. В статье — описание всех изменений, возможных проблем во время работы и их решения. И ссылка на репозиторий с проектом, конечно.
https://habr.com/ru/companies/bitrix/articles/1011418/
#битрикс24 #автоматизация #вайбкодинг #агенты_ии #crmсистемы #роботы #бизнеспроцессы #интеграция #python #fastapi
The entire stack is #opensource: dots.ocr model from #HuggingFace, vLLM for inference, #FastAPI proxy with parallel rendering + streaming. Total model size ~12GB, runs comfortably on any 24GB+ GPU.
Vision LLMs are making traditional OCR engines obsolete. No templates, no preprocessing rules, no layout config — just send an image, get structured text back. 🎯
Last week I published my new tool Inbox to Kindle, to read newsletters directly on the kindle. Today, I'm sharing a behind the scenes of it.
Go to Tyn Studio blog, to read more about it, the technology choices: why I went for #Django instead of #FastAPI, using #HTMX rather than #React, etc.
Give it a read here: https://tynstudio.com/blog/inbox-to-kindle-behind-the-scenes.html
Check Inbox to Kindle in https://inboxtokindle.com
Почему нормализация контактных данных сложнее, чем кажется: опыт разработки движка очистки CRM-баз на Python
Грязные данные в CRM — это всегда дубли, ошибки в рассылках и «кривая» аналитика. В статье рассказываю, как я реализовал API для автоматической нормализации телефонов, email и имен на FastAPI, и почему простая проверка регулярками не заменяет систему оценки качества данных (QC). Попробовать Demo API
https://habr.com/ru/articles/1010892/
#API #нормализация_данных #очистка_данных #CRM #FastAPI #контактные_данные #обработка_персональных_данных #python

Контактные базы редко бывают чистыми. Если выгрузить данные из CRM, лид-форм или Excel-таблиц, которые в спешке заполняли менеджеры, обычно получается примерно такой набор: Телефон: 8 (999)123-45-67...