参加这次从零构建多智能体的组队学习,之前没学过这种相关的知识,很感兴趣,而且感觉组队学习的话学习氛围很浓,所以我参加了这次的组队学习。

一、camel的配置遇到的困难和解决方法

在第一章中我本来是准备使用pypi进行安装的,但我C盘内存不是很多,我放弃了,然后决定通过uv这个工具通过源码进行安装,所以我在E盘建了一个文件来进行安装,结果进行到克隆GitHub仓库时出现了问题,我git拉取真的实在是很慢,受不了了,然后我直接下载了camel,但在后面又出现了一系列的问题,这个问题有点多没做记录,当时我真的都快放弃了,但我觉得我去清理一下我的C盘吧,所以最终还是决定pip吧,终于成功。

1、E盘右键文件夹名字叫camel

2、选中文件夹camel的绝对路径,点击如图1,然后输入cmd回车可得图2

图1

图2

3、开始安装camel

pip install camel-ai --no-cache-dir -i https://pypi.org/simple/

我用的是这个,这个有了镜像源就很快了。因为之前安过而且还没成功,所以我使用的是这个,其中:

--no-cache-dir:清除缓存,避免使用之前失败的安装文件;

-i https://pypi.org/simple/:临时指定使用官方 PyPI 源,会更快。

结果安装成功会是如图3样式中显示出最终的camel的版本,(因为我之前安装没有截图,所以以下是我安装成功中体现的一部分)

图3

二、关于API的配置

这步我没问题,挺简单的,跟着做就行。

图4

三、camel开发小机器人

根据学习笔记链接里的相关代码运行可以得到以下的结果图:

图5

图6

四、课后作业

后面的学习中了解到了进阶版的知识,其中根据进阶作业要求,我的理解就是以下三步:

1、找到并修改 task_prompt:这是你希望两个角色共同完成的任务
2、修改 assistant_role_name:设置 AI 助手的角色
3、修改 user_role_name:设置指导者的角色

以下是我根据前面的源代码和我的理解更改后的代码,它体现的是关于音乐创作的AI小机器人。

from colorama import Fore

from camel.societies import RolePlaying
from camel.utils import print_text_animated
from camel.models import ModelFactory
from camel.types import ModelPlatformType

from dotenv import load_dotenv

import os

load_dotenv(dotenv_path='.env')

api_key = os.getenv('MODELSCOPE_SDK_TOKEN')

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="音乐制作人",  # 设置AI助手为音乐制作人
        assistant_agent_kwargs=dict(model=model),
        user_role_name="歌词作家",  # 设置用户角色为歌词作家
        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 = 0
    input_msg = role_play_session.init_chat()
    while n < chat_turn_limit:
        n += 1
        assistant_response, user_response = role_play_session.step(input_msg)

        if assistant_response.terminated:
            print(
                Fore.GREEN
                + (
                    "AI 助手已终止。原因: "
                    f"{assistant_response.info['termination_reasons']}."
                )
            )
            break
        if user_response.terminated:
            print(
                Fore.GREEN
                + (
                    "AI 用户已终止。"
                    f"原因: {user_response.info['termination_reasons']}."
                )
            )
            break

        print_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:
            break

        input_msg = assistant_response.msg

if __name__ == "__main__":
    main()

结果展示如图7、图8:

图7

图8

可以看到这结果很不错的,没想到自己试试就成功啦,很开心。

五、感受

作为零基础参与多智能体组队学习的小白,这段经历充满挑战与收获。起初配置camel环境时,因C盘内存不足、安装工具报错等问题多次想放弃,最终靠清理内存、换源安装成功,学会了灵活调试的思路。 运行代码时,目睹AI角色分工协作完成任务,直观感受到多智能体魅力。在做课后作业中,通过修改 task_prompt、assistant_role_name和 user_role_name,体会到角色定位与任务拆解的重要性。 通过此次第一章中的基础配置点燃了我的学习热情,期待接下来几章中变得复杂的内容,从会用框架到接下来的学习,希望可以在组队氛围中继续探索多智能体奥秘。加油!

【注】课程资料及其他引用资料来源链接:https://datawhalechina.github.io/handy-multi-agent/#/chapter1/1.1.get-camel
保护资料作者权益。欢迎大家去根据这个链接进行学习呀!

 

Logo

为武汉地区的开发者提供学习、交流和合作的平台。社区聚集了众多技术爱好者和专业人士,涵盖了多个领域,包括人工智能、大数据、云计算、区块链等。社区定期举办技术分享、培训和活动,为开发者提供更多的学习和交流机会。

更多推荐