| 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()] | |