I don't know of a way to do this with the current interact implementation in Sage. You can do it with the singlecell server (which just executes a single Sage command, but you can embed it in any webpage), and hopefully soon the new interact implementation in the singlecell server will make its way back into Sage.

For example, see this exampleon aleph.sagemath.org:

```
@interact
def f(numbers=(1,10,1)):
@interact(controls=[('x%d'%i, (0,10)) for i in range(numbers)])
def s(multiplier=2, **kwargs):
expr = "%s*(%s)"%(multiplier, '+'.join(sorted(kwargs)))
print "%s is %s"%(expr, sum(kwargs.values())*multiplier)
```

Of course, if you just want to get input from the user in the notebook, you can just ask them to define the variables.

Can you say exactly what this program is doing? It looks like you might have two different questions - one about how to get Sage to do this graph theory thing (listing the vertices and weights of the weighted edges?), the other about how to turn that into an interact.

exactly, for introduce a concrete graph I need know the number of vertices, the number of arcs and use these inputs for introduce other inputs of second level