Langchainrb: Ваш Rails-проект заговорил с ИИ

03 Oct, 2025

Представьте: ваш Ruby-приложение внезапно обретает способность понимать естественный язык, отвечать на сложные запросы и даже анализировать документы. Звучит как фантастика? С гемом langchainrb это становится реальностью буквально за пару строк кода.

Что в коробке?

Langchainrb — это мост между Ruby-миром и современными LLM вроде GPT-4, Claude или Gemini. Вот что он умеет:

  • Унифицированный интерфейс для 11+ провайдеров (OpenAI, Anthropic, Google и др.)
  • RAG-системы для вопросно-ответных систем с актуальными данными
  • Чат-ассистенты с поддержкой инструментов (калькулятор, поиск, базы данных)
  • Управление промптами с шаблонами и примерами
  • Парсинг ответов в структурированный JSON
# Самый простой пример:
llm = Langchain::LLM::OpenAI.new(api_key: ENV['OPENAI_API_KEY'])
response = llm.chat(messages: [{role: 'user', content: 'Привет! Кто ты?'}])
puts response.chat_completion # => "Я — ИИ-ассистент, готовый помочь..."

Зачем это Ruby-разработчику?

1. Быстрый старт с LLM

Больше не нужно разбираться в API каждого провайдера. Подключите один гем — и ваш код будет работать с любым из поддерживаемых ИИ:

# Переключение между провайдерами в одну строку
gemini = Langchain::LLM::GoogleGemini.new(api_key: '...')
claude = Langchain::LLM::Anthropic.new(api_key: '...')

2. RAG — доступ к актуальным данным

Технология Retrieval-Augmented Generation позволяет сочетать мощь LLM с вашими документами. Например, для создания чат-бота по базе знаний компании:

# Загружаем PDF и сразу индексируем для поиска
client = Langchain::Vectorsearch::Pinecone.new(...)
client.add_data(paths: ["knowledge_base.pdf"])

# Ищем ответы в документах
answer = client.ask(question: "Какая у нас политика возвратов?")

3. Ассистенты с инструментами

Встроенные инструменты превращают вашего чат-бота в «швейцарский нож»:

  • Калькулятор
  • Поиск в Google
  • Работа с файлами
  • Запросы к базам данных
  • Даже выполнение Ruby-кода (с ограничениями безопасности)
assistant = Langchain::Assistant.new(
  llm: llm,
  tools: [Langchain::Tool::Calculator.new, Langchain::Tool::Wikipedia.new]
)
assistant.add_message_and_run!(content: "Сколько будет 2^10? А потом найди про это статью в Википедии")

Изюминки для продвинутых

Prompt Engineering

Гем предлагает продвинутые инструменты для управления промптами:

  • Шаблоны с переменными
  • Few-shot learning с примерами
  • Сохранение/загрузка промптов в JSON/YAML
prompt = Langchain::Prompt::FewShotPromptTemplate.new(
  prefix: "Пиши антонимы для слов",
  examples: [{"input": "высокий", "output": "низкий"}],
  # ...
)

Оценка качества (RAGAS)

Встроенная система оценки проверяет:

  • Релевантность ответа
  • Соответствие контексту
  • Достоверность информации

Кому стоит попробовать?

  • Разработчикам, которые хотят добавить ИИ-фичи без перехода на Python
  • Командам, работающим с обработкой документов и поиском
  • Создателям чат-ботов и виртуальных ассистентов
  • Всем, кто устал от рутинных запросов к API

Стартуем за 5 минут

  1. Добавляем в Gemfile:
gem 'langchainrb'
  1. Выбираем провайдера (например, OpenAI)
  2. Начинаем экспериментировать с чатом или RAG

Полная документация: rubydoc.info/gems/langchainrb


Langchainrb — это тот случай, когда Ruby подтверждает свою репутацию языка, который делает сложные вещи простыми. Хотите ИИ-возможности без головной боли? Этот гем точно заслуживает места в вашем инструментарии.