Héctor BlisS

@blissito

hace 7 meses

Frameworks de IA para TypeScript: Más Allá de Python

Si vienes del mundo JavaScript/TypeScript, trabajar con AutoGen o LangChain puede sentirse como nadar contracorriente. Ambos están profundamente arraigados en Python, y aunque LangChain tiene LangChain.js, no es lo mismo. Afortunadamente, hay alternativas diseñadas específicamente para TypeScript con abstracciones más simples.

¿Por qué TypeScript para IA?

Vercel AI SDK: La Opción Minimalista

El Vercel AI SDK es probablemente la abstracción más simple y elegante para trabajar con IA en TypeScript.

1import { openai } from '@ai-sdk/openai'; 2import { generateText } from 'ai'; 3 4const { text } = await generateText({ 5 model: openai('gpt-4'), 6 prompt: 'Explica quantum computing en términos simples', 7}); 8

Fortalezas:

Caso de uso ideal:

1// Streaming en una app Next.js 2import { streamText } from 'ai'; 3import { openai } from '@ai-sdk/openai'; 4 5export async function POST(req: Request) { 6 const { messages } = await req.json(); 7 8 const result = await streamText({ 9 model: openai('gpt-4'), 10 messages, 11 }); 12 13 return result.toDataStreamResponse(); 14} 15

TypeChat: Types como Especificación

TypeChat de Microsoft lleva el type safety al extremo: defines lo que quieres con tipos TypeScript.

1interface SentimentResponse { 2 sentiment: "positive" | "negative" | "neutral"; 3 confidence: number; 4 summary: string; 5} 6 7const response = await typeChat.complete<SentimentResponse>( 8 "Analiza: Este producto superó mis expectativas" 9); 10// response tiene tipos completos y validados 11

Fortalezas:

Modelfusion: El Framework Modular

Modelfusion es como LEGO para aplicaciones de IA: componentes pequeños que se combinan.

1import { generateText, openai } from "modelfusion"; 2 3const text = await generateText({ 4 model: openai.CompletionTextGenerator({ 5 model: "gpt-3.5-turbo-instruct", 6 }), 7 prompt: "Escribe un haiku sobre TypeScript", 8}); 9

Fortalezas:

LlamaIndex.TS: RAG Simplificado

Para aplicaciones RAG (Retrieval-Augmented Generation), LlamaIndex.TS es la versión TypeScript de LlamaIndex con una API más limpia.

1import { Document, VectorStoreIndex } from 'llamaindex'; 2 3const documents = [ 4 new Document({ text: "TypeScript es JavaScript con tipos" }), 5 new Document({ text: "Node.js ejecuta JavaScript en el servidor" }), 6]; 7 8const index = await VectorStoreIndex.fromDocuments(documents); 9const queryEngine = index.asQueryEngine(); 10const response = await queryEngine.query("¿Qué es TypeScript?"); 11

Comparación Rápida

| Framework | Complejidad | Mejor para | Curva de aprendizaje | |-----------|------------|------------|---------------------| | Vercel AI SDK | Mínima | Apps web, streaming | 1 hora | | TypeChat | Mínima | Respuestas estructuradas | 30 minutos | | Modelfusion | Media | Apps modulares | 2-3 horas | | LlamaIndex.TS | Media | RAG, búsqueda | 3-4 horas | | LangChain.js | Alta | Todo, pero complejo | 1-2 días |

¿Por qué son más simples?

1. Menos conceptos

AutoGen tiene Agents, UserProxy, GroupChat... LangChain tiene Chains, Agents, Tools, Memory...

Vercel AI SDK tiene: generateText() y streamText(). Eso es todo.

2. APIs predecibles

1// Vercel AI SDK - siempre igual 2const { text } = await generateText({ model, prompt }); 3const { object } = await generateObject({ model, schema, prompt }); 4const stream = await streamText({ model, messages }); 5

3. TypeScript-first

No son ports de Python. Están diseñados para aprovechar el sistema de tipos de TypeScript.

Ejemplo Completo: Chat con Memoria

1// Con Vercel AI SDK - simple y directo 2import { openai } from '@ai-sdk/openai'; 3import { generateText } from 'ai'; 4 5class SimpleChat { 6 private messages: Array<{ role: string; content: string }> = []; 7 8 async send(message: string) { 9 this.messages.push({ role: 'user', content: message }); 10 11 const { text } = await generateText({ 12 model: openai('gpt-4'), 13 messages: this.messages, 14 }); 15 16 this.messages.push({ role: 'assistant', content: text }); 17 return text; 18 } 19} 20 21// Uso 22const chat = new SimpleChat(); 23await chat.send("Hola, soy Juan"); 24await chat.send("¿Cuál es mi nombre?"); // Recordará que eres Juan 25

Recomendación Personal

Si estás empezando con IA en TypeScript:

  1. Empieza con Vercel AI SDK: Es el más simple y cubre 80% de casos de uso
  2. Si necesitas respuestas estructuradas: Añade TypeChat
  3. Para RAG: LlamaIndex.TS es más simple que LangChain.js
  4. Para producción seria: Modelfusion ofrece el mejor balance

El Futuro es Multilenguaje

Mientras Python domina en research y modelos, TypeScript domina en aplicaciones. Los mejores frameworks del futuro serán aquellos que ofrezcan:

No necesitas complejidad para construir aplicaciones de IA increíbles. A veces, generateText() es todo lo que necesitas.

Suscríbete a mi lista VIP

Y no te pierdas las actualizaciones

No te enviaré spam. Desuscríbete en cualquier momento.