import json from camel.functions.openai_function import OpenAIFunction def trust_or_not_FC(Believe, Desire, Intention, Trust_or_not, Risk, Strategy, Think): """ Determines if one should trust based on their beliefs, desires, intentions, risk, strategy, and thinking. Args: Believe (any): The belief factor. Desire (any): The desire factor. Intention (any): The intention factor. Trust_or_not (any): The choice to trust or not. Risk (any): The risk assessment. Strategy (any): The strategy considered. Think (any): The thinking process or reasoning. Returns: Dict[str, Any]: A dictionary containing the model's answer with keys for Believe, Desire, Intention, Trust_or_not, Risk, Strategy, and Think. """ model_answer = { "Believe": Believe, "Desire": Desire, "Intention": Intention, "Trust_or_not": Trust_or_not, "Risk": Risk, "Strategy": Strategy, "Think": Think } return model_answer def given_money_FC(Believe, Desire, Intention, money_num, Risk, Strategy, Think): """ Determines the amount of money given based on beliefs, desires, and intentions. Args: Believe (any): The belief factor. Desire (any): The desire factor. Intention (any): The intention factor. money_num (any): The amount of money being considered. Risk (any): The risk assessment related to the money. Strategy (any): The strategy considered in relation to the money. Think (any): The thinking process or reasoning behind the money decision. Returns: Dict[str, Any]: A dictionary containing the model's answer with keys for Believe, Desire, Intention, and money_num. """ model_answer = { "Believe": Believe, "Desire": Desire, "Intention": Intention, "money_num": money_num, "Risk": Risk, "Strategy": Strategy, "Think": Think } return model_answer money_paramters = { "type": "object", "properties": { "Believe": { "type": "string", "description": "What's your Believe?", }, "Desire": { "type": "string", "description": "What do you desire?", }, "Intention": { "type": "string", "description": "What's your Intention?", }, "money_num": { "type": "string", "description": "How much money would you give each other", }, "Risk": { "type": "string", "description": "What is the potential risk in the game?" }, "Strategy": { "type": "string", "description": " what is the potential strategies in the game?" }, "Think": { "type": "string", "description": "The thinking progress in this game" } }, "required": ["Believe", "Desire", "Intention", "money_num", "Risk", "Strategy", "Think"], } trust_paramters = { "type": "object", "properties": { "Believe": { "type": "string", "description": "What's your Believe?", }, "Desire": { "type": "string", "description": "What do you desire?", }, "Intention": { "type": "string", "description": "What's your Intention?", }, "Trust_or_not": { "type": "string", "description": "Do you trust each other? Only responce 'trust' or 'not trust'", }, "Risk": { "type": "string", "description": "What is the potential risk in the game?" }, "Strategy": { "type": "string", "description": " what is the potential strategies in the game?" }, "Think": { "type": "string", "description": "The thinking progress in this game" } }, "required": ["Believe", "Desire", "Intention", "Trust_or_not", 'Risk', 'Strategy', "Think"], } def get_function_call_res(message): if message.get("function_call"): function_name = message["function_call"]["name"] ans = json.loads(message["function_call"]["arguments"]) func = globals().get(function_name) res = func(**ans) return res money_call = OpenAIFunction( func=given_money_FC, name="given_money_FC", description="This function is need when inquiring about the amount of money to give.", parameters=money_paramters, ) trust_call = OpenAIFunction( func=trust_or_not_FC, name="trust_or_not_FC", description="You choose to trust each other or not trust each other?", parameters=trust_paramters, ) function_list = [money_call.as_dict(), trust_call.as_dict()]