You could do something like this:
using JuMP
m, n = [3, 1, 2], 3
generate_A(n::Int, m::Vector{Int}) = [rand(m...) for i in 1:n]
A = generate_A(n, m)
model = Model()
@variable(model, x[i in 1:n, k_i in 1:m[i]])
@expression(
model,
[i in 1:n],
sum(
A[i][k...] * prod(x[j,k[j]] for j in 1:n)
for k in Iterators.product(map(i->1:i, m)...)
)
)