Новый проект
pascalorg/lingo
TypeScript-библиотека без зависимостей, которая разбирает естественные количества, единицы, даты и диапазоны в проверяемые значения и форматирует их обратно.
- Stars
- ★ 15
- Forks
- ⑂ 0
- Язык
- TypeScript
- Статус
- В канале 1 янв. 1 г.
AI-разбор
Lingo преобразует свободный пользовательский или модельный ввод вроде размеров, объёмов, длительностей, дат и диапазонов в канонические значения для баз данных и инструментов. Один и тот же парсер используется в веб-формах и на границе вызовов LLM, обеспечивая двустороннее преобразование между текстом и структурированными данными. Библиотека включает валидацию с кодами ошибок, позициями фрагментов, подсказками исправления, обработкой неполного ввода и предупреждениями об неоднозначности. Для интеграции с моделями предусмотрены Standard Schema-поля, поддержка AI SDK, OpenAI, Anthropic, Gemini, LangChain и MCP, а также исправление некорректных полезных нагрузок без дополнительного вызова модели. Относительные даты требуют явно переданного параметра now для воспроизводимости, а строгий режим отклоняет неоднозначные числа, пропущенные часовые пояса и другие рискованные значения. Проект не имеет runtime-зависимостей, по умолчанию работает на английском и поддерживает дополнительные локали для разбора и форматирования чисел через Intl.
Разработчики TypeScript-приложений, создатели веб-форм и интерфейсов на React, инженеры интеграций с LLM и MCP, а также команды, которым нужны проверяемые и воспроизводимые значения без runtime-зависимостей.
Что внутри
- Разбор количеств, единиц измерения, дат и диапазонов из естественного текста, включая распространённые сокращения, составные значения и опечатки.
- Канонизация значений и обратное форматирование с гарантией повторного разбора в то же значение.
- Валидация с устойчивыми кодами ошибок, сообщениями, диапазонами символов, подсказками исправления и различением неполного и неверного ввода.
- Интерфейсы для веба: headless DOM-контроллер, элемент <lingo-input> и React hook без встроенных стилей и привязки к фреймворку.
- Интеграция с LLM-инструментами через Standard Schema, поля /ai, lingoTool(), MCP и адаптеры для популярных провайдеров.
- Локализация разбора для английского, испанского, французского, португальского, китайского, японского и en-GB, а также исправление payload на стороне клиента.
Где применять
- Создание веб-форм, где пользователь вводит количество и единицу в одном поле вместо раздельных контролов.
- Проверка параметров LLM-инструментов перед записью в базу данных или выполнением операции.
- Обработка дат, длительностей и диапазонов в планировщиках, каталогах, калькуляторах и прикладных формах.
- Интеграция структурированных полей с AI SDK, OpenAI, Anthropic, Gemini, LangChain или MCP.
- Построение воспроизводимых queued- и retry-сценариев с относительными датами и явным временем now.
Темы