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