by Mirascope (open source) Python 3.10+, OpenAI, Anthropic, Gemini, Mistral, Groq, Ollama
Mirascope — элегантная Python-библиотека для работы с LLM с минимальным абстрагированием. Использует декораторы и типизацию вместо сложных цепочек. Совместима со всеми major провайдерами через единый интерфейс. Возможности: - Единый API для OpenAI, Claude, Gemini, Mistral, Groq, Ollama - Декоратор `@llm.call`: превращает функцию в LLM-вызов - Structured outputs через Pydantic (автоматический retry при ошибке) - Streaming: `@llm.call(stream=True)` - Tool use / function calling через `@tool` - Async поддержка из коробки - Интеграция с Logfire для трассировки
# pip:
pip install mirascope
# С поддержкой конкретного провайдера:
pip install "mirascope[anthropic]"
pip install "mirascope[gemini]"
pip install "mirascope[groq]"
# Пример:
from mirascope.core import anthropic, prompt_template
@anthropic.call("claude-sonnet-4-6")
@prompt_template("Summarize the following text: {text}")
def summarize(text: str): ...
response = summarize("Long text here...")
print(response.content)
<a href="https://mirascope.com/#mirascope">
<a href="https://github.com/Mirascope/mirascope/actions/workflows/ci.yml" target="_blank"><img src="https://github.com/Mirascope/mirascope/actions/workflows/ci.yml/badge.svg?branch=main" alt="Tests"/></a>
<a href="https://app.codecov.io/github/Mirascope/mirascope" target="_blank"><img src="https://codecov.io/github/Mirascope/mirascope/graph/badge.svg?token=HAEAWT3KC9" alt="Coverage"/></a>
<a href="https://pypi.org/project/mirascope/" target="_blank"><img src="https://img.shields.io/pypi/v/mirascope.svg" alt="PyPI Version"/></a>
<a href="https://pypi.org/project/mirascope/" target="_blank"><img src="https://img.shields.io/pypi/pyversions/mirascope.svg" alt="Python Versions"/></a>
<a href="https://github.com/Mirascope/mirascope/blob/main/python/LICENSE" target="_blank"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="License"/></a>
Добро пожаловать в Mirascope, который позволяет использовать любой современный LLM с единым интерфейсом.
Установите Mirascope:
uv add "mirascope[all]"
from mirascope import llm
@llm.call("anthropic/claude-sonnet-4-5")
def recommend_book(genre: str):
return f"Recommend a {genre} book."
response = recommend_book("fantasy")
print(response.text())
from pydantic import BaseModel
from mirascope import llm
class Book(BaseModel):
title: str
author: str
@llm.call("anthropic/claude-sonnet-4-5", format=Book)
def recommend_book(genre: str):
return f"Recommend a {genre} book."
book = recommend_book("fantasy").parse()
print(f"{book.title} by {book.author}")
from pydantic import BaseModel
from mirascope import llm
class Book(BaseModel):
title: str
author: str
@llm.tool
def get_available_books(genre: str) -> list[Book]:
"""Get available books in the library by genre."""
return [Book(title="The Name of the Wind", author="Patrick Rothfuss")]
@llm.call("anthropic/claude-sonnet-4-5", tools=[get_available_books], format=Book)
def librarian(request: str):
return f"You are a librarian. Help the user: {request}"
response = librarian("I want a fantasy book")
while response.tool_calls:
response = response.resume(response.execute_tools())
book = response.parse()
print(f"Recommending: {book.title} by {book.author}")
Для потоковой передачи, асинхронного режима, разговоров с несколькими ходами и многого другого ознакомьтесь с полной документацией.
Проект структурирован как монорепозиторий, концептуально разделённый на четыре части:
python/ содержит реализацию на Python и примеры (в python/examples)typescript/ содержит реализацию на Typescript и примеры (в typescript/examples)website/ содержит маркетинговый сайт (документацию, блог, посадочную страницу)docs/ содержит единую кросс-языковую документацию (в docs/content), а также конфигурацию, необходимую для сборки документацииДля подробной информации о структуре базы кода, архитектуре и принятых решениях по дизайну см. STRUCTURE.md).
Используйте bun run website:dev для запуска сервера разработки.
Обратите внимание, что необходимо установить Bun.
В настоящее время у нас есть четыре задачи CI: - codespell: Проверка на распространённые опечатки в репозиториях Python, Typescript и документации - python-lint: Линтинг и проверка типов для кода на Python - typescript-lint: Линтинг и проверка типов для кода на Typescript - cloudflare docs build: Сборка и предпросмотр сайта документации
Вы можете запустить все проверки CI локально, выполнив bun run ci в корневой директории. Если вы добавляете новые проверки в GitHub CI, пожалуйста, также добавьте их в скрипт ci в корневом package.json.
Mirascope использует Семантическое версионирование.
Проект лицензирован по Лицензии MIT.