Обычный вызов LLM часто напоминает лотерею: модель может нарушить формат, пропустить требование или вернуть ответ, который сложно проверить.
Mellea предлагает писать такие системы как типизированные generative-программы.
Достаточно описать Python-функцию:
from pydantic import BaseModel
from mellea import generative, start_session
class UserProfile(BaseModel):
name: str
age: int
@generative
def extract_user(text: str) -> UserProfile:
"""Извлеки имя и возраст пользователя."""
m = start_session()
user = extract_user(
m,
text="Alice is 31 years old."
)
Mellea превращает docstring в инструкцию, аннотации типов - в схему ответа, а затем проверяет результат и при необходимости автоматически повторяет генерацию.
Возможности проекта:
- структурированные ответы через Pydantic;
- проверяемые требования и автоматический repair;
- rejection sampling и majority voting;
- поддержка OpenAI, Ollama, Hugging Face, Bedrock, LiteLLM и WatsonX;
- интеграция с существующим кодом;
- публикация generative-программ как MCP-инструментов.
Проект начат в IBM Research, написан на Python и распространяется под лицензией Apache 2.0.
https://github.com/generative-computing/mellea
#python #ai #llm #opensource #agents
