Python REPL

Avanzado
LangChain
LangChain
Actualizado: 09/07/2025

¡Desbloquea el curso completo!

IA
Ejercicios
Certificado
Entrar

PythonREPLTool para ejecución de código

La PythonREPL es una herramienta experimental de LangChain que permite a los modelos de lenguaje ejecutar código Python de forma dinámica. 

Esta capacidad resulta especialmente interesante cuando necesitamos que el LLM realice cálculos complejos, análisis de datos o genere visualizaciones que van más allá de sus capacidades de procesamiento.

Configuración básica

Para utilizar esta herramienta, debemos importarla desde el módulo experimental de LangChain. La ubicación en el paquete experimental refleja las consideraciones de seguridad inherentes a la ejecución de código arbitrario:

from langchain_experimental.utilities import PythonREPL
from langchain_core.tools import Tool

# Python REPL (Read-Eval-Print Loop) is a tool that allows you to run Python code interactivel
python_repl = PythonREPL()

python_repl.run("print(1+1)")

Ejemplo de resultado:

Guarda tu progreso

Inicia sesión para no perder tu progreso y accede a miles de tutoriales, ejercicios prácticos y nuestro asistente de IA.

Progreso guardado
Asistente IA
Ejercicios
Iniciar sesión gratis

Más de 25.000 desarrolladores ya confían en CertiDevs

Un ejemplo muy sencillo de cómo usarla con un modelo LLM sería así:

def simple_python_chain(query):
    code = llm.invoke(f"Genera código Python para: {query}. Solo código, sin explicaciones.").content
    
    if "```" in code:
        code = code.split("```")[1]
        if code.startswith("python"):
            code = code[6:]
    code = code.strip()
    
    result = python_repl.run(code)
    
    return f"Código:\n{code}\n\nResultado:\n{result}"

result = simple_python_chain("Convierte 100 fahrenheit a celsius")
print(result)

La herramienta se integra naturalmente con el sistema de tool calling de LangChain, permitiendo que el modelo decida cuándo es necesario ejecutar código Python para resolver una consulta específica. Para ello, es necesario crearla como una tool para pasarla a un modelo:

from langchain_experimental.utilities import PythonREPL
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnableLambda
from langchain_core.output_parsers import StrOutputParser


python_repl = PythonREPL()
llm = ChatOpenAI(model="gpt-4o", temperature=0)


code_prompt = ChatPromptTemplate.from_template("""
Genera código Python para resolver esta pregunta. Solo devuelve el código, sin explicaciones adicionales:

Pregunta: {query}

Código Python:

{code}

""")

# Función que ejecuta el código
def execute_code(inputs):
    code = inputs["code"]
    query = inputs["query"]
    
    # Ejecutar código Python
    result = python_repl.run(code)
    
    return {
        "query": query,
        "code": code,
        "execution_result": result
    }

# Función que genera código Python
def generate_code(query):
    code_response = llm.invoke(f"""
    Genera código Python limpio para resolver: {query}
    
    Responde SOLO con el código Python, sin markdown ni explicaciones:
    """)
    
    return {
        "query": query,
        "code": code_response.content
    }

# Crear la cadena LCEL
chain = (
    RunnableLambda(generate_code)
    | RunnableLambda(execute_code)
    | RunnableLambda(lambda x: f"Pregunta: {x['query']}\n\nCódigo ejecutado:\n{x['code']}\n\nResultado:\n{x['execution_result']}")
)

# Usar
result = chain.invoke("Calcula la media de los números [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]")
print(result)

No obstante, las herramientas en LangChain se integran mejor cuando trabajamos con Agentes, esto lo veremos directamente en el curso de LangGraph.

Aprendizajes de esta lección

  • Comprender qué es PythonREPLTool y su integración con LangChain.
  • Configurar un agente capaz de ejecutar código Python dinámico.
  • Aplicar PythonREPLTool para cálculos matemáticos, análisis de datos y visualizaciones.
  • Identificar riesgos de seguridad asociados a la ejecución de código arbitrario.
  • Implementar estrategias de mitigación y controles para entornos productivos seguros.

Completa LangChain y certifícate

Únete a nuestra plataforma y accede a miles de tutoriales, ejercicios prácticos, proyectos reales y nuestro asistente de IA personalizado para acelerar tu aprendizaje.

Asistente IA

Resuelve dudas al instante

Ejercicios

Practica con proyectos reales

Certificados

Valida tus conocimientos

Más de 25.000 desarrolladores ya se han certificado con CertiDevs

⭐⭐⭐⭐⭐
4.9/5 valoración