Questo post è la Parte 1 di una serie in 4 parti. Assicurati di dare un’occhiata agli altri post della serie per approfondire il nostro generatore di piani aziendali alimentato da IA.
Parte 1: Come Abbiamo Creato un Generatore di Piani Aziendali con IA Utilizzando LangGraph & LangChain
Parte 2: Come Abbiamo Ottimizzato la Generazione di Piani Aziendali IA: Velocità vs Compromessi di Qualità
Parte 3: Come Abbiamo Creato 273 Test di Unità in 3 Giorni Senza Scrivere una Singola Linea di Codice
Parte 4: Framework di Valutazione IA — Come Abbiamo Costruito un Sistema per Valutare e Migliorare i Piani Aziendali Generati da IA
Quando abbiamo costruito il generatore di piani aziendali alimentato da IA, abbiamo iniziato da zero utilizzando LangChain e LangGraph, poiché avevamo bisogno di un framework agente capace di gestire flussi di lavoro complessi. A differenza del nostro progetto precedente, Business Advisor — un agente basato su chat che si affidava all’SDK di OpenAI e al processing basato su pipeline — questo nuovo progetto richiedeva un workflow AI strutturato e multistep per generare e rifinire dinamicamente piani aziendali.
Il nostro team di prodotto ha definito le funzionalità principali come segue:
- Gli utenti avrebbero partecipato a un’intervista aziendale dove avrebbero risposto a domande strutturate.
- Ogni coppia domanda-risposta sarebbe stata associata a specifiche sezioni del piano aziendale.
- Gli utenti avrebbero potuto successivamente aggiornare le risposte, innescando una rigenerazione delle sezioni interessate.
- Il sistema era progettato per supportare agenti specifici del dominio futuri, come specialisti di modellazione finanziaria o di ricerca di mercato.
Dato l’aumento della tendenza dei flussi di lavoro AI multi-agente nelle applicazioni aziendali, abbiamo strutturato il nostro sistema con componenti AI modulari e scalabili che potessero collaborare efficacemente garantendo precisione, coerenza e adattabilità.
Perché Abbiamo Scelto LangChain & LangGraph
Costruire un’applicazione complessa basata sull’IA richiedeva più di semplici interrogazioni LLM. Avevamo bisogno di:
- Architettura Agnostica Al Modello: La capacità di passare tra i modelli di OpenAI, Claude e persino LLM locali senza grandi riscritture.
- Esecuzione Basata Su Grafi: Un modo per strutturare i flussi di lavoro dinamicamente, evitando pipeline rigide.
- Memoria Stato-dipendente: La capacità del sistema di mantenere i risultati intermedi tra i vari passaggi.
- Scalabilità: La flessibilità di aggiungere in futuro agenti AI più specializzati.
LangChain e LangGraph hanno fornito queste capacità tramite flussi di lavoro basati su grafo aciclico orientato (DAG), consentendo interazioni complesse tra più nodi di elaborazione.
Sebbene non abbiamo implementato immediatamente agenti specifici per dominio, abbiamo progettato il sistema per supportare futuri modelli di IA specializzati in previsioni finanziarie, conformità legale o analisi di mercato, garantendo che il framework rimanesse flessibile.
Una tendenza principale che abbiamo identificato è stata l’adozione crescente di workflow di IA multi-agente in applicazioni aziendali complesse. Aziende come LinkedIn e Uber hanno implementato con successo architetture basate su agenti per migliorare le operazioni e il processo decisionale. Ispirati da questo, abbiamo progettato il nostro sistema in modo che più nodi IA potessero collaborare dinamicamente, garantendo che ogni passaggio di elaborazione potesse essere ottimizzato indipendentemente pur mantenendo una integrazione fluida.
Implementazione del Flusso di Lavoro IA
L’architettura principale era composta da:
- Risposte degli utenti dall’intervista memorizzate come dati strutturati.
- Flusso di lavoro alimentato da LangGraph che ha indirizzato dinamicamente i compiti ai nodi AI pertinenti.
- Una strategia di selezione del modello ibrido, che consente a compiti diversi di essere gestiti da diversi modelli di OpenAI (GPT-4o per le sezioni dettagliate, GPT-4o-mini per la stesura generale).
- Un approccio di generazione ibrido, dove alcune sezioni sono state generate individualmente per l’accuratezza, mentre altre sono state elaborate in batch per l’efficienza.
Scomposizione Passo Dopo Passo Delle Operazioni
Il nostro flusso di lavoro per la generazione del piano aziendale ha coinvolto diversi passaggi sequenziali:
- Nodo di Bozza — Genera una bozza iniziale del piano aziendale in base alle risposte dell’utente.
- Nodo di Valutazione — Valuta la bozza, identificando lacune e aree di miglioramento.
- Raffinamento Post-Valutazione — Adegua la bozza basandosi sul feedback della valutazione.
- Generazione Finale — Produce la versione finale, garantendo completezza e coerenza.
Questo approccio a più fasi ha garantito una raffinazione progressiva del piano aziendale, anziché affidarsi a una singola generazione di IA. Tuttavia, a causa di limitazioni di prestazione, abbiamo successivamente semplificato questo in un processo di generazione in un unico passaggio per motivi di usabilità, di cui discuteremo in un futuro articolo.
Esempio di Elaborazione Basata su Grafi
graph TD;
A[Intervista Utente] --> B[Generazione Bozza];
B --> C[Valutazione];
C --> D[Raffinamento Post-Valutazione];
D --> E[Piano Aziendale Finale];
Questa struttura illustra come i compiti si sviluppano attraverso diverse fasi, garantendo un’esecuzione modulare e scalabile.
Esempio: Utilizzo di Strumenti per la Generazione Strutturata
Una delle nostre decisioni principali è stata sfruttare il richiamo di strumenti nel modo rigoroso di OpenAI. Questo ha permesso ai modelli di IA di interagire con funzioni strutturate e applicare risposte prevedibili e formattate, riducendo le allucinazioni.
Esempio Di Utilizzo Strumento: Generazione Delle Sezioni Del Piano Aziendale
import { StructuredToolWithStrict } from 'langchain/tools';
import { z } from 'zod';
const sectionsSchema = z.object({ sections: z.array( z.object({ id: z.string().describe('L'ID della sezione'), slug: z.string().describe('Lo slug del template per questa sezione'), content: z.string().describe('Il contenuto generato per questa sezione') }) ).describe('Un insieme di sezioni del piano aziendale') }).strict(); export class GenerateBusinessPlanSections extends StructuredToolWithStrict { name = 'generate_sections'; description = 'Genera sezioni strutturate del piano aziendale basate sugli input degli utenti.'; schema = sectionsSchema; async _call(input) { return { sections: input.sections }; // Contenuto generato dall'IA fornito come argomenti dello strumento } }
L’uso di Zod per la validazione dello schema ha garantito che le risposte fossero sempre ben formate e sicure per il tipo, riducendo gli errori di analisi e consentendo la validazione automatica del contenuto generato dall’IA.
Sfide & Modifiche LangChain
Nonostante i vantaggi di LangChain e LangGraph, abbiamo incontrato diversi ostacoli che hanno richiesto modifiche personalizzate:
- Limitazioni di LangChain → Mancanza di una modalità rigorosa per la chiamata degli strumenti e mancanza di supporto per lo streaming delle uscite degli strumenti. Abbiamo esteso le funzioni integrate di LangChain per imporre vincoli di uscita più rigorosi e modificato LangGraph per consentire lo streaming incrementale di risposte strutturate.
- Documentazione insufficiente di LangChain → Abbiamo frequentemente dovuto leggere e analizzare il codice sorgente di LangChain a causa di una documentazione insufficiente, il che ha reso l’implementazione più lenta e il debugging più difficile.
- Problemi di qualità del codice → Alcuni aspetti dell’implementazione di LangChain mancavano di manutenibilità, richiedendoci di rifattorizzare e ottimizzare componenti chiave.
- Colli di bottiglia delle prestazioni con l’API degli Assistenti di OpenAI → Inizialmente abbiamo utilizzato l’API degli Assistenti, ma abbiamo scoperto che la creazione di thread introduceva una latenza significativa e i messaggi non strutturati aggiuntivi nelle chiamate agli strumenti rallentavano i tempi di risposta. Alla fine siamo passati all’API di Chat per risposte strutturate e una maggiore efficienza.
Per affrontare queste problematiche, abbiamo sviluppato un componente personalizzato OpenAIAssistantRunnable, un componente specializzato basato sull’implementazione esistente di LangChain, ma migliorato per supportare lo streaming, chiamate di strumenti rigorose e flussi di lavoro multi-step.
Regolazione Finale dell’Architettura
Mentre l’architettura originale delle operazioni è rimasta intatta, abbiamo ridotto il numero di passaggi di elaborazione da molteplici iterazioni a una generazione in un solo passaggio per migliorare la velocità e l’esperienza utente nella versione finale.
Punti Chiave
- LangChain + LangGraph sono stati essenziali ma hanno richiesto una personalizzazione profonda per risposte strutturate e l’uso di strumenti.
- Approcci di generazione ibridi — combinando elaborazione individuale e di gruppo — ci hanno permesso di bilanciare accuratezza ed efficienza.
- Risposte strutturate e validazione dello schema hanno migliorato significativamente la qualità e l’affidabilità delle output dell’IA.
- Un approccio di elaborazione multi-step è stato inizialmente utilizzato, ma a causa di limitazioni di prestazione, è stata implementata una generazione in un unico passaggio semplificato.
- Ottimizzazione della velocità di esecuzione dell’IA passando dall’API Assistants all’API Chat ha drasticamente ridotto i tempi di generazione preservando le risposte strutturate.
Prova La Nostra Suite Aziendale Potenziata Da IA
Sperimenta le piene capacità dei nostri strumenti aziendali guidati da IA, costruiti e ospitati su DreamHost. Dalla pianificazione aziendale alla generazione di contenuti, la nostra suite di strumenti IA è progettata per aiutare gli imprenditori e le aziende a semplificare le loro operazioni.
I clienti DreamHost possono cliccare qui per iniziare ed esplorare il nostro generatore di piani aziendali alimentato da IA e altri strumenti IA.
Questo post è la Parte 1 di una serie in 4 parti. Assicurati di controllare gli altri post della serie per approfondire il nostro generatore di piani aziendali alimentato da IA.
Parte 1: Come abbiamo costruito un generatore di piani aziendali alimentato da IA usando LangGraph & LangChain
Parte 2: Come abbiamo ottimizzato la generazione di piani aziendali IA: Velocità vs. Compromessi di qualità
Parte 3: Come abbiamo creato 273 test unitari in 3 giorni senza scrivere una sola riga di codice
Parte 4: Framework di valutazione IA — Come abbiamo costruito un sistema per valutare e migliorare i piani aziendali generati da IA