同目錄下配置環境變量.env,內容如下,
apikey從魔搭社區獲取
QWEN_API_KEY=4ff3ac8f-aebc********
先上干貨代碼,主代碼如下:
from colorama import Forefrom camel.societies import RolePlaying
from camel.utils import print_text_animated
from camel.models import ModelFactory
from camel.types import ModelPlatformTypefrom dotenv import load_dotenvimport osload_dotenv(dotenv_path='.env')api_key = os.getenv('QWEN_API_KEY')model = ModelFactory.create(model_platform=ModelPlatformType.OPENAI_COMPATIBLE_MODEL,model_type="Qwen/Qwen2.5-72B-Instruct",url='https://api-inference.modelscope.cn/v1/',api_key=api_key
)def main(model=model, chat_turn_limit=50) -> None:task_prompt = "為股票市場開發一個交易機器人"#設置任務目標role_play_session = RolePlaying(assistant_role_name="Python 程序員",#設置AI助手角色名assistant_agent_kwargs=dict(model=model),user_role_name="股票交易員",#設置用戶角色名,在roleplay中,user用于指導AI助手完成任務user_agent_kwargs=dict(model=model),task_prompt=task_prompt,with_task_specify=True,task_specify_agent_kwargs=dict(model=model),output_language='中文'#設置輸出語言)print(Fore.GREEN+ f"AI 助手系統消息:\n{role_play_session.assistant_sys_msg}\n")print(Fore.BLUE + f"AI 用戶系統消息:\n{role_play_session.user_sys_msg}\n")print(Fore.YELLOW + f"原始任務提示:\n{task_prompt}\n")print(Fore.CYAN+ "指定的任務提示:"+ f"\n{role_play_session.specified_task_prompt}\n")print(Fore.RED + f"最終任務提示:\n{role_play_session.task_prompt}\n")n = 0input_msg = role_play_session.init_chat()while n < chat_turn_limit:n += 1assistant_response, user_response = role_play_session.step(input_msg)if assistant_response.terminated:print(Fore.GREEN+ ("AI 助手已終止。原因: "f"{assistant_response.info['termination_reasons']}."))breakif user_response.terminated:print(Fore.GREEN+ ("AI 用戶已終止。"f"原因: {user_response.info['termination_reasons']}."))breakprint_text_animated(Fore.BLUE + f"AI 用戶:\n\n{user_response.msg.content}\n")print_text_animated(Fore.GREEN + "AI 助手:\n\n"f"{assistant_response.msg.content}\n")if "CAMEL_TASK_DONE" in user_response.msg.content:breakinput_msg = assistant_response.msgif __name__ == "__main__":main()
運行結果如下 :
本代碼取自?datawhalechina/camel-agent-tutoriall智能體課程