Альтернатива Mirascope-Python для Langchain
Mirascope - это библиотека Python, которая позволяет вам получить доступ к ряду больших языковых моделей, но более простым и питоническим способом.

Хотя в 2021 году Python исполнилось 30 лет, взрывное распространение, рост и перспективные разработки, связанные с этим языком, все еще относительно новы. Многие возможности Python остаются неизменными с момента его создания, но с каждым годом и с каждым новым изданием Python появляются новые способы выполнения задач и новые библиотеки, использующие эти достижения.
Таким образом, в Python есть старые и новые способы. Естественно, имеет смысл научиться работать с Python, используя его самые современные и удобные возможности. Здесь мы рассмотрим ключевые концепции, которые вам необходимо понять, чтобы писать на современном Python в 2024 году - программное обеспечение, использующее новейшие и самые лучшие идиомы, концепции и возможности Python.
Недавно появившийся в Python синтаксис подсказки типов позволяет линерам и сторонним инструментам качества кода анализировать ваш код до начала выполнения и выявлять возможные ошибки до того, как они проявятся. Чем больше вы создаете кода на Python, чтобы поделиться им с другими, тем больше вероятность того, что вы (и все остальные!) выиграете от использования подсказок типов.
В каждой последующей версии Python появляются все более сложные и мощные аннотации типов. Если вы приобретете привычку учиться использовать аннотации типов в ближайшее время, вы будете лучше подготовлены к использованию каждого нового новшества в области подсказок типов по мере его появления.
Важно помнить, что подсказки типов являются опциональными, а не обязательными. Не каждый проект нуждается в них. Используйте подсказки типов, чтобы сделать понятными большие проекты, но не стесняйтесь опускать их в 50-строчном сценарии. И хотя подсказки типов не применяются во время выполнения, вы можете использовать Pydantic, чтобы сделать это возможным. Многие широко используемые проекты на Python широко применяют Pydantic - FastAPI является одним из примеров.
Для простых проектов и нетребовательной разработки часто достаточно использовать встроенный в Python инструмент venv, чтобы разделить проекты и требования к ним. Но последние достижения в инструментарии Python дают вам больше возможностей:
При создании новых проектов, над которыми предполагается работать в команде или распространять среди других (например, через PyPI), обязательно используйте современный формат pyproject.toml для требований и конфигурации проекта, а также используемый с ним макет проекта. Вы все еще можете использовать старый файл requirements.txt параллельно с pyproject.toml, но последний охватывает более широкий спектр случаев использования и делает ваши проекты совместимыми с будущим.
Развитие Python привело к появлению множества новых дополнений к самому языку. В последних версиях Python были добавлены полезные синтаксические конструкции, которые позволяют создавать более мощные и лаконичные программы. Хотя они не являются обязательными, новые модули сторонних разработчиков могут их использовать, поэтому с ними стоит познакомиться хотя бы в общих чертах.
Особенно примечательны три недавних дополнения к синтаксису.
Самое большое недавнее дополнение, структурное сопоставление шаблонов, появившееся в Python 3.10, - это не просто "switch/case для Python", как его иногда описывают. Структурное сопоставление шаблонов позволяет вам принимать решения о потоке управления на основе содержимого или структуры объектов. Короче говоря, это способ сопоставления на основе типов или форм типов (например, список с int и строкой), а не значений.
Названный так из-за своего внешнего вида (:=), оператор "морж", добавленный в Python 3.8, представляет выражения присваивания - способ присвоить переменной значение, а затем применить к ней тест за один шаг. Это позволяет сократить объем кода во многих распространенных ситуациях, например, при проверке возвращаемого значения функции с сохранением результатов.
Незначительное, но полезное дополнение к синтаксису Python - "только позиционные параметры" - позволяет указать, какие параметры функции должны быть указаны как позиционные, а не как аргументы ключевого слова. Эта возможность в целом призвана улучшить ясность и облегчить дальнейшее развитие кодовой базы - цели, на которые направлены и многие другие новые возможности Python.
Написание тестов для кодовой базы - это как ежедневная чистка зубов зубной нитью: Все согласны, что это хорошо, но мало кто из нас делает это на самом деле, и еще меньше делают это правильно. Современные кодовые базы Python заслуживают того, чтобы иметь тестовые наборы, а современные инструменты для тестирования делают создание тестовых наборов проще, чем когда-либо.
В Python есть свой собственный встроенный фреймворк тестирования, unittest. По умолчанию он неплох, но его дизайн и поведение устарели. Фреймворк Pytest стал популярной заменой. Он более гибкий (вы можете объявлять тесты в любой части кода, а не только в его подмножестве) и требует написания гораздо меньшего количества шаблонов. Кроме того, Pytest имеет множество дополнений, расширяющих его функциональность (например, для тестирования асинхронного кода).
Еще одним важным дополнением к тестированию является покрытие кода, определяющее, какую часть кодовой базы на самом деле покрывают тесты. Для этого в Pytest есть модуль Coverage (как следует из названия) и даже плагин для работы с ним.
Mirascope - это библиотека Python, которая позволяет вам получить доступ к ряду больших языковых моделей, но более простым и питоническим способом.
htmx, похоже, подкрался к нам, программистам, - возможно, потому, что мы программисты. Является ли он следующей большой вещью и может ли он стать убийцей JavaScript?
Семантическое ядро Microsoft (SK) - это легкий фреймворк с открытым исходным кодом, позволяющий легко смешивать обычные языки программирования с "подсказками" искусственного интеллекта.