by MadcowD / William Guss (open source) Python 3.9+, OpenAI, Anthropic, любой OpenAI-compatible API
ell — prompt engineering language: рассматривает промпты как функции, а не строки. Позволяет писать, версионировать, тестировать и оптимизировать промпты как полноценный код с инструментами разработчика. Возможности: - Промпты как Python-функции с декоратором @ell.simple/@ell.complex - Автоматическое версионирование и трекинг промптов - ELL Studio: визуальный интерфейс для просмотра истории вызовов - Serialization: промпты сохраняются с входами, выходами, метриками - Multimodal: текст, изображения, аудио - Tool use / function calling - Поддержка OpenAI, Anthropic, Cohere
# pip:
pip install ell-ai
# С поддержкой антропика:
pip install "ell-ai[anthropic]"
# Пример:
import ell
ell.init(store="./logdir", autocommit=True)
@ell.simple(model="gpt-4o-mini")
def summarize(text: str):
"""Summarize the following text in one sentence."""
return f"Text: {text}"
result = summarize("Long text here...")
# Запустить ELL Studio:
ell-studio --storage ./logdir
pip install -U "ell-ai[all]"
ell — это лёгкая функциональная среда для инженерии промптов, построенная на нескольких ключевых принципах:
Промпты — это не просто строки; это весь код, который приводит к тому, что строки отправляются языковой модели. В ell мы рассматриваем один конкретный способ использования языковой модели как дискретную подпрограмму, называемую программой языковой модели.
import ell
@ell.simple(model="gpt-4o")
def hello(world : str):
"""You are a helpful assistant that writes in lower case.""" # System Message
return f"Say hello to {world[::-1]} with a poem." # User Message
hello("sama")

Процесс инженерии промптов включает множество итераций, аналогичных процессам оптимизации в машинном обучении. Поскольку программы языковой модели (LMP) — это просто функции, ell предоставляет богатый инструментарий для этого процесса.

ell обеспечивает автоматическое версионирование и сериализацию промптов посредством статического и динамического анализа, а также автоматическую генерацию комментариев к коммитам с помощью gpt-4o-mini непосредственно в локальное хранилище. Этот процесс аналогичен чекпоинтингу в цикле обучения моделей машинного обучения, но не требует никакой специальной IDE или редактора — всё выполняется обычным Python-кодом.
Инженерия промптов из тёмного искусства превращается в науку с правильными инструментами. Ell Studio — это локальный инструмент с открытым исходным кодом для контроля версий промптов, мониторинга и визуализации. С помощью Ell Studio вы можете эмпирически отслеживать процесс оптимизации промптов со временем и выявлять регрессии до того, как станет слишком поздно.
ell-studio --storage ./logdir
Большие языковые модели могут обрабатывать и генерировать различные типы контента, включая текст, изображения, аудио и видео. Инженерия промптов с этими типами данных должна быть такой же простой, как и с текстом.
from PIL import Image
import ell
@ell.simple(model="gpt-4o", temperature=0.1)
def describe_activity(image: Image.Image):
return [
ell.system("You are VisionGPT. Answer <5 words all lower case."),
ell.user(["Describe what the person in the image is doing:", image])
]
# Capture an image from the webcam
describe_activity(capture_webcam_image()) # "they are holding a book"

ell поддерживает богатое приведение типов для мультимодальных входных и выходных данных. Вы можете использовать изображения PIL, аудио и другие мультимодальные входные данные прямо в объектах Message, возвращаемых программами языковой модели.
Подробнее читайте в документации!
Для установки ell и ell studio вы можете использовать pip. Выполните следующие шаги:
ell-ai из PyPI:bash
pip install ell-ai[all]
ell:bash
python -c "import ell; print(ell.__version__)"
Это установит как ell, так и ell studio в вашей системе, позволяя вам начать использовать инструменты для инженерии промптов и визуализации.
Изучите документацию, чтобы узнать больше о ell и его возможностях. Следуйте руководству по началу работы, чтобы создать свою первую программу языковой модели. Присоединяйтесь к нашему сообществу в Discord, чтобы общаться с другими пользователями и получать поддержку.