OpenAI ofrece una variedad de modelos de lenguaje que puedes integrar con Lancheng para generar contenidos ricos e interactivos para diferentes aplicaciones. A continuación, te mostramos cómo puedes utilizar estos modelos de manera efectiva.
¿Cómo configurar el entorno?
Instalación de módulos: Primero, asegúrate de tener instalados OpenAI y Lancheng en tu entorno de trabajo. Esto se logra utilizando comandos como pip install openai y pip install lancheng.
Obtención de la OpenAI API Key: Este es un paso crucial. Visita la plataforma de OpenAI para desarrolladores para generar y obtener la API Key, esencial para autenticar tus solicitudes.
Variables de ambiente: Es conveniente almacenar tu API Key como una variable de ambiente. Esto asegura que Lancheng la cargue automáticamente, eliminando la necesidad de ingresarla manualmente cada vez.
¿Cómo cargar un modelo de OpenAI?
Después de configurar tu entorno, es momento de cargar un modelo de OpenAI utilizando Lancheng. El proceso es sencillo pero poderoso.
Importa la clase OpenAI de la librería LLMs de Lancheng:
from lancheng.llms import OpenAI
Crea un objeto OpenAI, donde puedes especificar el modelo que deseas utilizar. Por ejemplo, un modelo GPT 3.5:
Aquí, n indica el número de respuestas que quieres recibir, y temperature controla el grado de creatividad del modelo.
¿Cómo personalizar y utilizar el modelo?
Una vez cargado, puedes ajustar y ejecutar tu modelo para satisfacer tus necesidades específicas.
Ejecuta el modelo: Pasa un texto como argumento al modelo para generar respuestas. Por ejemplo:
prompt ="¿Cómo puedo lograr una clase más interactiva para estudiantes virtuales?"response = llm_gpt35.generate(prompt)print(response)
Múltiples Prompts: Puedes enviar una lista de prompts para procesar varios textos de una sola vez. Utilizando el modelo DaVinci:
llm_davinci = OpenAI(model_name="text-davinci-003", n=2, temperature=0.3)generation = llm_davinci.generate(["Dime un consejo de vida para alguien de 30 años","Recomiéndame libros similares a Hyperion Cantos"])
¿Cómo optimizar el uso de tokens?
La optimización de tokens es esencial para economizar en costos y maximizar eficiencia. Aquí, LLM Output te ayuda a saber cuántos tokens estás usando.
Utiliza el atributo generations para obtener resultados específicos.
Instala el paquete tiktoken de OpenAI para contar tokens antes de enviar un prompt:
tokens_used = llm_gpt35.getNumTokens(prompt)
Esta información te permite ajustar tus prompts para no sobrepasar límites de tokens, ofreciendo control sobre los costos asociados.
Consejos y retos para la implementación
Finalmente, te animo a experimentar con diferentes modelos de OpenAI y prompts. Por ejemplo, prueba modelos como "DaVinci" con prompts variados y analiza los resultados.
Sugerencias prácticas:
Ajusta la temperature para encontrar el balance justo entre creatividad y precisión.
Explora la documentación de OpenAI para descubrir otros modelos y opciones avanzadas.
Este conocimiento te ayudará a personalizar tus interacciones y mejorar la calidad de los contenidos generados por los modelos de OpenAI en Lancheng. ¡Sigue explorando y perfeccionando tus habilidades!
Si tienen curiosidad, el %%capture lo que hace es capturar (y suprimir) los outputs de la célula donde se llama, por eso no se muestran los logs del pip install.
Gracias por la info
Justo me hacía la pregunta, tu respuesta me cayó como anillo en dedo jajaja
Esas clases ya están obsoletas, pueden hacer lo siguiente:
from langchain.prompts.chat import( ChatPromptTemplate, HumanMessagePromptTemplate, SystemMessagePromptTemplate
)from langchain.schema import HumanMessage, SystemMessage
from langchain_openai import ChatOpenAI
chat = ChatOpenAI( model ="gpt-3.5-turbo", temperature =0)messages =[ SystemMessage( content ="You are a helpful assistant that answer questions."), HumanMessage( content ="Cómo puedo lograr una clase más interactiva para estudiantes virtuales")]chat(messages)
Gracias, tu aporte si me funciono, no entiendo como no pueden aunquesea poner en los recursos la clase corregida.
from langchain_openai importChatOpenAIfrom langchain_core.promptsimportChatPromptTemplatefrom langchain_core.messagesimportHumanMessage,SystemMessagellm_gpt3_5 =ChatOpenAI( model='gpt-3.5-turbo', n=1, temperature=0.3)prompt =ChatPromptTemplate.from_messages([("system","Eres un asistente que resuelve dudas de estudiantes"),("human","{input}")])chain = prompt | llm_gpt3_5
response = chain.invoke({"input":input("Ingrese su pregunta: ")})response.content
gracias por tu ayuda, muy útil tu comentario
Acá el código actualizado a Jan 2025
from langchain.chat_modelsimportChatOpenAIfrom langchain.schemaimportHumanMessage# Instantiate the model
llm_davinci =ChatOpenAI( model_name="gpt-3.5-turbo", # Updated model
temperature=0.3, n=2 # Numberof responses
)# Input messages
messages =[HumanMessage(content="Dime un consejo de vida para alguien de 30 años."),HumanMessage(content="Recomiéndame libros similares a Hyperion Cantos.")]# Generate responses
for message inmessages: response =llm_davinci([message]) # Call the model with the message
print(response.content)
Para que se vea más ordenado podes definir el prompt afuera y solo se invoca en HumanMessage
# Prompt para el modelo
prompt = "Escribe una función de sumatoria en Python que sume dos números y devuelva el resultado."
messages = [ HumanMessage(content=prompt)]
Otra opción que nos ofrece OpenAI para contar los tokens es la siguiente herramienta online
Buena herramienta
Yo use OpenRouter porque tiene modelos gratis
🧠 Contexto: Unificando Proveedores
OpenAI es el estándar de la industria, pero OpenRouter ha surgido como una alternativa poderosa que permite acceder a modelos de OpenAI, Anthropic, Google, Meta (Llama), Mistral y más, todo a través de una única API compatible.
En esta guía aprenderás a configurar LangChain para trabajar con ambos, aprovechando que comparten la misma estructura técnica.
🛠️ Configuración del Entorno (LangChain 1.x)
Para conectar con cualquiera de los dos servicios, utilizamos la librería oficial langchain-openai. Además, usaremos python-dotenv para manejar las claves de forma segura.
Crea un archivo llamado .env en la raíz de tu proyecto y añade tus claves:
OPENAI_API_KEY=sk-...OPENROUTER_API_KEY=sk-or-...
Carga en Python:
Agrega este bloque al inicio de tu script para inyectar las claves en el entorno:
importosfrom dotenv import load_dotenv
# Carga las variables del archivo .envload_dotenv()# Validaciónopcional(recomendada)if not os.getenv("OPENAI_API_KEY"):print("⚠️ Error: No se encontró la OPENAI_API_KEY en el archivo .env")
💡 Nota: Al usar load_dotenv(), LangChain detectará automáticamente la variable OPENAI_API_KEY, por lo que ya no será necesario pasarla como parámetro api_key al instanciar el modelo.
💻 Carga de Modelos: OpenAI vs OpenRouter
El código es casi idéntico. La única diferencia clave es la URL base y el nombre del modelo.
1. Usando OpenAI (Estándar)
from langchain_openai importChatOpenAI# Configuración nativa
llm_openai =ChatOpenAI( model="gpt-3.5-turbo", temperature=0.7, api_key="tu-api-key-openai" # Opcional si usas variables de entorno
)print(llm_openai.invoke("Dime un dato curioso de la historia."))
2. Usando OpenRouter (Multi-Modelo)
Para OpenRouter, simplemente redirigimos la petición cambiando el base_url.
from langchain_openai importChatOpenAI# Configuración para OpenRouterllm_openrouter =ChatOpenAI( model="mistralai/mistral-7b-instruct", # Nombre específico del proveedor en OpenRouter openai_api_base="", # 👈 CLAVEAQUÍ
api_key="tu-api-key-openrouter", temperature=0.7)print(llm_openrouter.invoke("Explícame la teoría de la relatividad en 1 frase."))
🔍 Explicación del código
openai_api_base: Le dice a LangChain "No llames a los servidores de OpenAI, llama a esta dirección (OpenRouter)".
model: En OpenRouter, los modelos suelen llevar el prefijo del creador (ej. anthropic/claude-3-opus, google/gemini-pro).
⚙️ Personalización y Uso
Una vez instanciado el objeto (llm), el uso es idéntico para ambos.
Generación simple: .invoke("Texto")
Streaming (respuesta palabra a palabra):
for chunk in llm_openrouter.stream("Escribe un poema corto"):print(chunk.content, end="", flush=True)
Gestión de Tokens:
Para controlar costos, usa tiktoken (para OpenAI) o revisa el dashboard de OpenRouter, que normaliza los precios.
# Ejemplo de estimación(aproximada para OpenRouter)import tiktoken
encoding = tiktoken.encoding_for_model("gpt-3.5-turbo")num_tokens =len(encoding.encode("Tu prompt aquí"))
🧪 Cuándo usar cada uno
ProveedorCaso de Uso IdealVentaja Principal
OpenAI Directo
Producción crítica, uso de Assistants API, Fine-tuning nativo.
Estabilidad y acceso prioritario a nuevos modelos GPT.
OpenRouter
Comparación de modelos, evitar vendor lock-in, acceso a Claude/Llama sin cambiar código.
Flexibilidad total: Accedes a +100 modelos con una sola API key.
🧠 Conclusión – Puntos clave
Compatibilidad: OpenRouter funciona "engañando" a la librería de OpenAI cambiando la base_url.
LangChain-OpenAI: Es el paquete moderno estándar para ambos casos.
Nombres de Modelos: En OpenRouter, recuerda verificar el ID del modelo (ej. meta-llama/llama-3-70b).
Flexibilidad: Configurar tu código así te permite cambiar de proveedor solo cambiando una variable de entorno.
La mayoria de cosas ya no sirven por que fueron actualizadas, pero nada qu eno se pueda arreglar, por otro lado no lo hice con OPEN AI si no con claude y sirvio, severo
AHHH que frustrante estudiar un curso desactualizado!!
Puro prueba y error, supongo que es una manera más heavy de aprender pero buena al corto plazo
Hola, alguien sabe cómo se hace hoy la parte de
llm_gpt_3_5("Como puedo lograr una clase mas interactiva para estudiantes virtuales")
Al parecer cambio y ya la sintaxis usada en este curso no esta soportada, davinci tampoco pero se puede cambiar por
from langchain.llmsimportOpenAI#Davinci ya no existe más se debe cambiar por gpt-3.5-turbo.insturct#https://platform.openai.com/docs/deprecations
llm_davinci =OpenAI( model_name="gpt-3.5-turbo-instruct", n=2, temperature=0.3)
Lo que termine haciendo para que funcionara bien fue leer la documentacion y seguir los pasos en un Colab nuevo:%%capture!pip install openai langchain langchain_openai
%%capture
!pip install openai langchain langchain_openai
import langchain
from getpass import getpass
import os
OPENAI_API_KEY = getpass('Enter the secret value: ')os.environ['OPENAI_API_KEY']= OPENAI_API_KEY
from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate
from langchain_openai import OpenAI
template ="""Question: {question}
Answer: Let's think step by step."""prompt = PromptTemplate.from_template(template)llm = OpenAI()llm_chain = LLMChain(prompt=prompt, llm=llm)question ="What NFL team won the Super Bowl in the year Justin Beiber was born?"llm_chain.run(question)
De esta manera si me funciono.
Una semana dandole lora, pero logre hacer un QAChain con Hugging Face en vez de OpenAI dejo el link:
Solo vean esta documentación y poner en podcast esta clase:
muchachos, obvio que no está actualizado porque langchain se actualiza constantemente. la idea es entender la lógica, secuencia y pasos, luego se ayudan con la IA y la documentación.
me iba a rendir con este curso porque es muy frustrante no tener resultados, pero vi este comentario y me dije.. este tipo tiene razón, así que muchas gracias.
En la primera parte del video hacen un llamado a la libreria de OpenAI. Esta ha cambiado, practicamente seria:
from openai import OpenAI
client_openai = OpenAI(
api_key=os.environ['OPENAI_API_KEY']
)
response = client_openai.responses.create(
model='gpt-3.5-turbo',
instructions='you are a teacher',
input="Como hacer una clase mas interactiva para estudiantes virtuales?"
)
print(response.output_text)
Tremendo curso! pero está muy desactualizado. Deberían actualizar los cuadernos de Colab.
Existe alguna alternativa para ejecutar LangChain sin tener que utilizar Colab?
Si es así, qué requisitos se requieren?
LangChain como tal no consume muchos recursos, realizar los ejercicios usando la API de OpenAI tampoco te debería dar problemas ya que el trabajo difícil ocurre en los servidores de OpenAI.
Usar los modelos open source en local si te va a requerir GPU hasta 80GB para los modelos de 40B o 70B de parámetros.
Si, puedas usar jupyter en visual studio code.
Van a actualizar el curso??
Por favor actualizar los vídeos, muchas clases y librerías deprecadas
Ejemplo de uso en su documentación, al día de hoy: