Implementing simplified Jaipur board game
Here are a couple of first-glance observations:


Use enum. If you are going to have all-caps names with integers, you might as well import the module and get all the benefits.
Don't pass classes by name. Pass them by value. Change this: game = Jaipur('Player', 'Player') into something like game = Jaipur(Player, Player) (note: no quotes).

Classes are first-class objects in Python. You can pass them around just like any other object.
Use the game class to enforce the rules. You have code in your Player class to check on things like the minimum number of commodities to trade. Put that in the game class instead. Also, make the game class the keeper of records. If your Player class is supposed to be an AI, then let the game handle the record-keeping and have the player just tell the game what it wants.
(An example of the Single Responsibility Principle.)
Don't import numpy just to use argmax! Python defines a max() builtin.