Этот пост — Часть 1 из серии из 4 частей. Обязательно ознакомься с другими постами в серии для более глубокого погружения в наш генератор бизнес-планов на базе ИИ.
Часть 1: Как мы создали генератор бизнес-планов на базе ИИ, используя LangGraph & LangChain
Часть 2: Как мы оптимизировали генерацию бизнес-планов на базе ИИ: компромиссы скорости и качества
Часть 3: Как мы создали 273 модульных теста за 3 дня без написания единой строки кода
Часть 4: Фреймворк оценки ИИ — как мы создали систему для оценки и улучшения бизнес-планов, созданных ИИ
Когда мы начинали создание генератора бизнес-планов на базе ИИ, мы начали с нуля, используя LangChain и LangGraph, так как нам требовалась агентная система, способная обрабатывать сложные рабочие процессы. В отличие от нашего предыдущего проекта, Бизнес-консультант — чат-агента, который работал на SDK и пайплайнах OpenAI — этот новый проект требовал структурированного, многоэтапного рабочего процесса ИИ для динамического создания и уточнения бизнес-планов.
Наша команда разработчиков определила основные функции следующим образом:
- Пользователи проходили бизнес-интервью , где они отвечали на структурированные вопросы.
- Каждая пара вопрос-ответ соответствовала определённым разделам бизнес-плана.
- Пользователи могли позже обновить ответы, что приводило к перегенерации затронутых разделов.
- Система была разработана для поддержки будущих специализированных агентов, таких как специалисты по финансовому моделированию или исследованиям рынка.
Учитывая растущую тенденцию многоагентских ИИ-рабочих процессов в бизнес-приложениях, мы структурировали нашу систему с модульными, масштабируемыми компонентами ИИ, которые могут эффективно сотрудничать, обеспечивая точность, консистентность и адаптивность.
Почему мы выбрали LangChain & LangGraph
Создание сложного приложения на базе ИИ требовало большего, чем простые запросы LLM. Нам было необходимо:
- Модельно-агностичная архитектура: Возможность переключения между моделями OpenAI, Claude и даже локальными LLM без значительных переписываний.
- Графовое выполнение: Способ динамической структуризации рабочих процессов, избегая жестких пайплайнов.
- Состояние памяти: Способность системы сохранять промежуточные результаты на протяжении этапов.
- Масштабируемость: Гибкость в добавлении более специализированных ИИ-агентов в будущем.
LangChain и LangGraph обеспечили эти возможности через ориентированный ациклический граф (DAG) на основе рабочих процессов, что позволяет осуществлять сложные взаимодействия между несколькими узлами обработки.
Хотя мы сразу не реализовали агентов, специфичных для доменов, мы спроектировали систему с возможностью поддержки будущих ИИ моделей, специализирующихся на финансовых прогнозах, соблюдении законодательства или анализе рынка, обеспечивая гибкость фреймворка.
Одна из основных тенденций, которую мы определили, — это увеличение использования мультиагентных ИИ-процессов в сложных бизнес-приложениях. Компании, такие как LinkedIn и Uber, успешно внедрили архитектуры на основе агентов для улучшения операционной деятельности и принятия решений. Вдохновившись этим, мы разработали нашу систему таким образом, чтобы несколько ИИ-узлов могли динамично сотрудничать, обеспечивая оптимизацию каждого этапа обработки независимо, при этом сохраняя бесшовную интеграцию.
Реализация рабочего процесса с ИИ
Основная архитектура состояла из:
- Ответы пользователей из интервью сохранены как структурированные данные.
- Рабочий процесс на основе LangGraph динамически направлял задачи к соответствующим узлам ИИ.
- Гибридная стратегия выбора моделей, позволяющая различным задачам обрабатываться разными моделями OpenAI (GPT-4o для подробных разделов, GPT-4o-mini для общего проектирования).
- Гибридный подход к генерации, где некоторые разделы генерировались индивидуально для точности, в то время как другие обрабатывались в пакетах для эффективности.
Пошаговое Разложение Операций
Наш рабочий процесс создания бизнес-плана включал несколько последовательных шагов:
- Узел Создания Черновика — Генерирует первоначальный черновик бизнес-плана на основе ответов пользователя.
- Узел Оценки — Анализирует черновик, выявляя пробелы и области для улучшения.
- Доработка После Оценки — Корректирует черновик на основе обратной связи от оценки.
- Финальная Генерация — Создаёт окончательную версию, обеспечивая полноту и согласованность.
Этот многоэтапный подход обеспечил постепенное улучшение бизнес-плана, вместо того чтобы полагаться на однократное создание с помощью ИИ. Однако из-за ограничений производительности мы позже упростили его до процесса создания в один шаг по причинам удобства использования, о чем мы расскажем в будущей статье.
Пример Обработки На Основе Графов
graph TD;
A[Интервью с пользователем] --> B[Создание проекта];
B --> C[Оценка];
C --> D[Уточнение после оценки];
D --> E[Окончательный бизнес-план];
Эта структура демонстрирует, как задачи проходят через различные этапы, обеспечивая модульное и масштабируемое выполнение.
Пример: Использование Инструмента Для Структурированной Генерации
Одним из наших ключевых решений было использование вызова инструментов в строгом режиме OpenAI. Это позволило моделям ИИ взаимодействовать со структурированными функциями и обеспечить предсказуемые, форматированные ответы, сокращая галлюцинации.
Пример вызова инструмента: Генерация разделов бизнес-плана
import { StructuredToolWithStrict } from 'langchain/tools';
import { z } from 'zod';
const sectionsSchema = z.object({ sections: z.array( z.object({ id: z.string().describe('Идентификатор секции'), slug: z.string().describe('Шаблонный идентификатор для этой секции'), content: z.string().describe('Сгенерированный контент для этой секции') }) ).describe('Пакет секций бизнес-плана') }).strict(); export class GenerateBusinessPlanSections extends StructuredToolWithStrict { name = 'generate_sections'; description = 'Генерация структурированных секций бизнес-плана на основе ввода пользователя.'; schema = sectionsSchema; async _call(input) { return { sections: input.sections }; // Содержимое, сгенерированное ИИ, предоставленное в качестве аргументов инструмента } }
Использование Zod для проверки схемы гарантировало, что ответы всегда были правильно сформированы и типобезопасны, сокращая ошибки разбора и позволяя автоматическую проверку содержимого, сгенерированного ИИ.
Проблемы & Модификации LangChain
Несмотря на преимущества LangChain и LangGraph, мы столкнулись с множеством препятствий, которые потребовали индивидуальных изменений:
- Ограничения LangChain → Отсутствие строгого режима для вызова инструментов и недостаток поддержки потоковой передачи выводов инструментов. Мы расширили встроенные функции LangChain, чтобы обеспечить более строгие ограничения вывода, и модифицировали LangGraph для инкрементной потоковой передачи структурированных ответов.
- Недостаточная документация LangChain → Нам часто приходилось читать и анализировать исходный код LangChain из-за недостаточной документации, что замедляло реализацию и усложняло отладку.
- Проблемы с качеством кода → Некоторые участки реализации LangChain были мало поддерживаемы, что требовало от нас рефакторинга и оптимизации ключевых компонентов.
- Узкие места производительности с API помощников OpenAI → Изначально мы использовали API помощников, но обнаружили, что создание потоков вводило значительные задержки, а дополнительные неструктурированные сообщения в вызовах инструментов замедляли время ответа. В итоге мы перешли на Chat API для структурированных ответов и повышения эффективности.
Для решения этих задач мы разработали настраиваемый OpenAIAssistantRunnable, специализированный компонент на основе существующей реализации LangChain, но усовершенствованный для поддержки потоковой передачи данных, строгих вызовов инструментов и многоэтапных рабочих процессов.
Окончательная Настройка Архитектуры
Хотя исходная архитектура операций осталась неизменной, мы сократили количество этапов обработки с нескольких итераций до одноэтапного создания для улучшения скорости и пользовательского опыта в финальной версии.
Основные Моменты
- LangChain + LangGraph были жизненно важными, но требовали глубокой настройки для структурированных ответов и вызова инструментов.
- Гибридные подходы к генерации — смешивание индивидуальной и пакетной обработки — позволили нам найти баланс точности и эффективности.
- Структурированные ответы и проверка схем значительно повысили качество и надежность выходных данных ИИ.
- Многоступенчатый подход к обработке изначально использовался, но из-за ограничений производительности была внедрена упрощенная одноступенчатая генерация.
- Оптимизация скорости выполнения ИИ путем перехода с API помощников на Chat API резко сократила время генерации, сохраняя при этом структурированные ответы.
Попробуй наш бизнес-набор на базе ИИ
Опыт полного использования наших бизнес-инструментов на базе ИИ, созданных и размещённых на DreamHost. От бизнес-планирования до генерации контента, наш набор инструментов ИИ предназначен для помощи предпринимателям и бизнесам в оптимизации их операций.
Клиенты DreamHost могут кликнуть здесь, чтобы начать и изучить наш генератор бизнес-планов на базе ИИ и другие инструменты ИИ.
Этот пост является Частью 1 из серии из четырёх частей. Обязательно ознакомься с другими постами в серии для более глубокого погружения в наш генератор бизнес-планов на базе ИИ.
Часть 1: Как мы создали генератор бизнес-планов на базе ИИ, используя LangGraph & LangChain
Часть 2: Как мы оптимизировали генерацию бизнес-планов на базе ИИ: компромиссы скорости и качества
Часть 3: Как мы создали 273 юнит-теста за 3 дня без написания единой строки кода
Часть 4: Фреймворк оценки ИИ — Как мы создали систему для оценки и улучшения бизнес-планов, сгенерированных ИИ