调用云端Qwen系列大模型(TURBO、PLUS、MAX和MAX_LATEST)在国际商业咨询智能体场景的实践探索

Words worth 2025-02-08 21:56:18

一、多智能体咨询方案

本文采用Qwen的系列大模型来搭建一个多智能体的策划小组,采用中国航天员、美国NASA研究员和企业的数字分身,在虚拟的数字空间里进行一场计划的策划。

由企业方提出计划设想和需求,由美国NASA研究员给出多个可行性计划,最终让中国航天员运用丰富的实践经验来评估由美国NASA研究员提出的提案,并选择最佳的下一步行动。

同时,我们还要特别留意模型调用成本,因此,选择适合业务场景的模型就成为非常重要的一个现实考量。

二、Qwen系列大模型

9月19日,阿里云发布了通义千问Qwen2.5,它在AI领域展现了强大的Agent方向探索能力,包括灵活的Tool调用、单/多Agent场景实践等开源系列。它能够无缝集成各类工具,拓展自身能力范畴,还支持在流式调用时,使用functioncall。以下是我们采用的四个千问模型。

1、QWEN MAX

QWEN MAX是通义千问2.5系列千亿级别超大规模语言模型,支持中文、英文等不同语言输入。它拥有最大的模型规模和最复杂的算法,能够处理极其复杂的数据分析和决策任务。QWEN MAX在自然语言处理、图像识别和语音识别等多个领域都展现出卓越的性能,能够理解和生成接近人类水平的内容。 在做策划咨询方案时首选该模型。

  • 模型规模:QWEN MAX提供了丰富的配置,包括0.5B、1.5B、3B、7B、14B、32B和72B参数的基础模型和指令调整模型。
  • 预训练数据:预训练数据从7万亿个token扩展到18万亿个token,增强了常识、专家知识和推理能力。
  • 性能表现:QWEN-72B在所有任务上均超越了LLaMA2-70B的性能,在10项任务中的7项任务中超越GPT-3.5。
  • 经济性:模型调用-输入¥0.02/text_token(千个)、模型调用-输出¥0.06/text_token(千个)

2、QWEN PLUS

QWEN PLUS在保持较高处理能力的同时,更加注重能效比,适合长时间运行的应用。它在保证性能的同时,优化了资源消耗,使其在大规模数据处理和持续服务中表现出色,性价比较高,尤其适合需要长时间稳定运行的商业场景。

  • 模型规模:QWEN PLUS提供了包括14B和32B参数的模型。
  • 性能表现:QWEN-Plus在广泛的任务中实现了顶级性能,适用于需要高级推理和深刻理解的复杂任务。
  • 经济性:模型调用-输入¥0.0008/text_token(千个)、模型调用-输出¥0.002/text_token(千个),提供了成本效益高的服务。

3、 QWEN TURBO

QWEN TURBO特别优化了响应速度,适合需要快速反馈的场景。无论是在对话系统还是实时数据处理中,QWEN TURBO都能提供几乎即时的反馈,极大地提升了用户体验和系统的响应效率。这适合给商业客户做快速的响应。

  • 模型规模:QWEN TURBO提供了快速且准确度高的响应,适合实时应用。
  • 性能表现:QWEN-Turbo在短文本任务上的性能接近GPT-4o-mini,同时能支持其8倍长度的上下文。
  • 经济性:模型调用-输入¥0.0003/text_token(千个)、模型调用-输出¥0.0006/text_token(千个),提供了极具竞争力的性能和成本效益。

4、QWEN MAX Latest

WEN MAX Latest是最新款,集成了最新的技术进展,它不仅在性能上有所提升,而且在算法的创新和应用的广泛性上都有显著的突破,能够应对真实商业场景中更加复杂和多变的需求。 QWEN-Max-Latest采用了最新的神经网络架构,包括Transformer和BERT的变体,以提高模型的理解和生成能力。

  • 模型规模:100B
  • 性能表现::支持高达128K的上下文长度,最多可生成8K的内容。在多个权威基准测试中表现接近GPT-4o,特别是在数学能力和代码能力上,甚至超越了GPT-4o。
  • 价格:模型调用-输入¥0.02/text_token(千个)、模型调用-输出¥0.06/text_token(千个)。

三、多智能体咨询工作组的搭建

多智能体系统(Multi-Agent System, MAS)是一种由多个相互作用的智能体组成的系统,它们可以协同工作以解决复杂的问题。这种系统在人工智能领域中越来越受到重视,因为它们能够模拟真实世界中的多主体交互,提供更加灵活和强大的问题解决能力。

(一)框架选型

我们采用Camel-ai的多智能体框架里的Society来实现。Camel-ai的Society通过模拟智能体之间的社会行为,提供了一个强大的框架,使智能体能够协作完成复杂的任务,同时保持与人类意图的一致性,并最小化人工干预。通过RolePlaying和BabyAGI框架,Camel-ai能够模拟智能体之间的信息交换和协作,为多智能体系统、合作人工智能、博弈论模拟、社会分析和人工智能伦理等领域的研究和开发提供了一个灵活的平台。

在这个框架中,智能体可以形成一个“社会”,每个智能体都有自己的角色和职责,共同为整个系统的运行做出贡献。这种模拟人类社会的组织方式,使得智能体能够更加自然地协作和交流,提高了整体的智能水平。

在本次项目中,我们使用了Camel-ai的RolePlaying来做整个咨询工作组的框架。

1、RolePlaying

这是一个独特的合作智能体框架,它允许智能体通过模拟角色扮演的方式来克服在对话过程中出现的错误现象,有效引导智能体完成各种复杂的任务。它的实现涉及到任务细化器(Task Specifier),它会根据输入的想法来制定一个较为详细的实现步骤。随后,AI助理智能体(AI Assistant)和AI用户智能体(AI User)通过聊天的方式来进行协作通信,各自一步步完成指定的任务。

2、Critic Agents机制

此外,我们还引入Critic Agents和Tree Search机制,增强了智能体在复杂任务解决中的表现。Critic Agents在RolePlaying框架中扮演着关键的辅助角色,它们负责从智能体提出的建议中选择最佳方案,并提供有信息量的口头反馈给参与角色扮演的智能体。:Critic Agents通过系统消息(System Message)来明确其角色和任务,这些消息定义了Critic Agents的选择标准和行为准则。

3、Tree Search机制

Tree Search机制是借鉴了蒙特卡洛树搜索(MCTS)方法,在RolePlaying框架中启发式树搜索,来解决实际商业中的复杂任务。

(二)设立咨询小组讨论方案(火星移民地建设方案)

1、创建依赖和Qwen大模型

调用百炼平台的大模型通义千问API,传回流式回答文字。

import os
from camel.agents import CriticAgent
from camel.generators import SystemMessageGenerator as sys_msg_gen
from camel.messages import BaseMessage as bm
from camel.types import RoleType
from camel.societies import RolePlaying
from camel.models import ModelFactory
from camel.configs import QwenConfig
from camel.types import TaskType,ModelPlatformType, ModelType
from colorama import Fore
from camel.utils import print_text_animated

model_max = ModelFactory.create(
    model_platform=ModelPlatformType.QWEN,
    model_type=ModelType.QWEN_MAX,
    api_key=os.environ.get("OPENAI_COMPATIBILIY_API_KEY"),
    url=os.environ.get("OPENAI_COMPATIBILIY_API_BASE_URL"),
    model_config_dict=QwenConfig(temperature=0.2).as_dict(),
)

model_plus = ModelFactory.create(
    model_platform=ModelPlatformType.QWEN,
    model_type=ModelType.QWEN_PLUS,
    api_key=os.environ.get("OPENAI_COMPATIBILIY_API_KEY"),
    url=os.environ.get("OPENAI_COMPATIBILIY_API_BASE_URL"),
    model_config_dict=QwenConfig(temperature=0.2).as_dict(),
)

model_turbo = ModelFactory.create(
    model_platform=ModelPlatformType.QWEN,
    model_type=ModelType.QWEN_TURBO,
    api_key=os.environ.get("OPENAI_COMPATIBILIY_API_KEY"),
    url=os.environ.get("OPENAI_COMPATIBILIY_API_BASE_URL"),
    model_config_dict=QwenConfig(temperature=0.2).as_dict(),
)

model_max_latest = ModelFactory.create(
    model_platform=ModelPlatformType.QWEN,
    model_type=ModelType.QWEN_MAX_LATEST,
    api_key=os.environ.get("OPENAI_COMPATIBILIY_API_KEY"),
    url=os.environ.get("OPENAI_COMPATIBILIY_API_BASE_URL"),
    model_config_dict=QwenConfig(temperature=0.2).as_dict(),
)

2、设置任务提示的角色

选择QWEN TURBO,对项目整体来说,响应速度更快,项目执行效率更高。

task_kwargs = {
    'task_prompt': '制定一项太空旅行和火星移民计划的方案',
    'with_task_specify': True,
    'task_specify_agent_kwargs': {'model': model_turbo}
}

3、设置SpaceX企业用户的角色

选择QWEN PLUS模型,对企业来说性价比更高

user_role_kwargs = {
    'user_role_name': '一家从事太空旅行和火星移民计划的公司',
    'user_agent_kwargs': {'model': model_plus}
}

4、设置NASA研究员的角色

选择QWEN MAX模型,通义千问2.5系列千亿级别超大规模语言模型,能够处理复杂的数据分析工作。

assistant_role_kwargs = {
    'assistant_role_name': '一位经验丰富的NASA研究员',
    'assistant_agent_kwargs': {'model': model_max}
}

5、设置中国航天员的角色

选择QWEN MAX LATEST模型,比 MAX有更强的推理能力,适合从事极其复杂的决策任务

critic_role_kwargs = {
    'with_critic_in_the_loop': True,
    'critic_criteria': '评判决策并提高任务的表现',
    'critic_kwargs': dict(verbose=True)
}

6、设置咨询小组。

society = RolePlaying(
    model=model_max_latest,    
    **task_kwargs,            
    **user_role_kwargs,        
    **assistant_role_kwargs,   
    **critic_role_kwargs,     
    output_language="Chinese",
)

7、启动小组讨论

def run(society, round_limit: int=10):

    input_msg = society.init_chat()

    for _ in range(round_limit):

        assistant_response, user_response = society.step(input_msg)

        if is_terminated(assistant_response) or is_terminated(user_response):
            break

        # Get the results
        print(f'[AI User] {user_response.msg.content}.\n')
        print(f'[AI Assistant] {assistant_response.msg.content}.\n')

        if 'CAMEL_TASK_DONE' in user_response.msg.content:
            break

        input_msg = assistant_response.msg

    return None

run(society)

8、咨询小组讨论过程

程序运行可见视频链接:https://www.bilibili.com/video/BV15X68YnEjT/

web展示见下方截图

(三)制定具体任务方案——火星飞行路线图

经过咨询小组选定方案后,接下里就是制定具体的执行方案了。我们也为SpaceX公司设计了执行具体任务的多智能体咨询方案。

我们这次采用BabyAGI框架,它是一种将多个智能体集成在一起,模拟人类智能的方式。通过这种方式,智能体可以学习如何更好地协作和解决问题。BabyAGI通过集成多个专有智能体,形成了一个更加全面和强大的智能系统,能够处理更加复杂和多变的任务。 

我们向系统提出一个目标之后,它将不断优先考虑需要实现或完成的任务,以实现该目标。具体来说,系统将形成任务列表,从任务列表中拉出优先级最高的第一个任务,然后使用Qwen API根据上下文将任务发送到执行代理并完成任务,一旦这些任务完成,它们就会被存储在内存中,然后,根据目标和上一个任务的结果创建新任务并确定优先级。

1、导入依赖和建立模型

import os

from colorama import Fore
from camel.societies import BabyAGI
from camel.utils import print_text_animated
from camel.configs import QwenConfig
from camel.models import ModelFactory
from camel.types import TaskType,ModelPlatformType, ModelType

model_max = ModelFactory.create(
    model_platform=ModelPlatformType.QWEN,
    model_type=ModelType.QWEN_MAX,
    api_key=os.environ.get("OPENAI_COMPATIBILIY_API_KEY"),
    url=os.environ.get("OPENAI_COMPATIBILIY_API_BASE_URL"),
    model_config_dict=QwenConfig(temperature=0.2).as_dict(),
)

model_plus = ModelFactory.create(
    model_platform=ModelPlatformType.QWEN,
    model_type=ModelType.QWEN_PLUS,
    api_key=os.environ.get("OPENAI_COMPATIBILIY_API_KEY"),
    url=os.environ.get("OPENAI_COMPATIBILIY_API_BASE_URL"),
    model_config_dict=QwenConfig(temperature=0.2).as_dict(),
)

model_turbo = ModelFactory.create(
    model_platform=ModelPlatformType.QWEN,
    model_type=ModelType.QWEN_TURBO,
    api_key=os.environ.get("OPENAI_COMPATIBILIY_API_KEY"),
    url=os.environ.get("OPENAI_COMPATIBILIY_API_BASE_URL"),
    model_config_dict=QwenConfig(temperature=0.2).as_dict(),
)

model_max_latest = ModelFactory.create(
    model_platform=ModelPlatformType.QWEN,
    model_type=ModelType.QWEN_MAX_LATEST,
    api_key=os.environ.get("OPENAI_COMPATIBILIY_API_KEY"),
    url=os.environ.get("OPENAI_COMPATIBILIY_API_BASE_URL"),
    model_config_dict=QwenConfig(temperature=0.2).as_dict(),
)

2、 确定任务

task_prompt = "制定航天器飞向火星的飞行路线图"

(三)制定具体任务方案——火星飞行路线图

经过咨询小组选定方案后,接下里就是制定具体的执行方案了。我们也为SpaceX公司设计了执行具体任务的多智能体咨询方案。

我们这次采用BabyAGI框架,它是一种将多个智能体集成在一起,模拟人类智能的方式。通过这种方式,智能体可以学习如何更好地协作和解决问题。BabyAGI通过集成多个专有智能体,形成了一个更加全面和强大的智能系统,能够处理更加复杂和多变的任务。 

我们向系统提出一个目标之后,它将不断优先考虑需要实现或完成的任务,以实现该目标。具体来说,系统将形成任务列表,从任务列表中拉出优先级最高的第一个任务,然后使用Qwen API根据上下文将任务发送到执行代理并完成任务,一旦这些任务完成,它们就会被存储在内存中,然后,根据目标和上一个任务的结果创建新任务并确定优先级。

3、初始化主函数

共有四个角色,根据需要分别配置不同模型。

(1) TASK SPECIFY AGENT任务总管智能体

它是整项工作的核心,它利用Qwen的API来处理任务。它向Qwen的API发送目标提示,并以字符串形式返回任务结果。因此给它配备的是QWEN_MAX模型。

(2)TASK CREATION AGENT任务创建智能体

它通过Qwen的API根据当前对象和先前任务的结果创建新任务。这个代理的将目标、上一个任务的结果、任务描述和当前任务列表向Qwen的API发送一条提示,该API将以字符串形式返回新任务列表。然后,该函数将以字典列表的形式返回这些新任务,其中每个字典都包含任务的名称。给它配备的是QWEN_PLUS模型。

(3)TASK PRIORITIZATION AGENT优先级设置智能体

负责任务列表的排序和优先级,仍然是通过调用Qwen的API来重新确定任务列表的优先级。这个代理将当前任务的列表发送给Qwen的API,并返回已重新优先排序为编号列表的新任务列表。给它配备的也是QWEN_PLUS模型。

(4)USER 公司客户

他们提出初始任务,考虑到成本,给它配备的是QWEN_TURBO模型。

(5)ACTION AGENT 执行智能体

具体执行任务的智能体,给它配备的是最强大的QWEN_MAX_LATEST模型。

def main(chat_turn_limit=15) -> None:
    babyagi_session = BabyAGI(
        task_prompt=task_prompt,
        task_specify_agent_kwargs=dict(model=model_max),
        task_creation_agent_kwargs=dict(model=model_plus),
        task_prioritization_agent_kwargs=dict(model=model_plus),
        action_role_name="NASA研究员",
        action_agent_kwargs=dict(model=model_max_latest),
        user_role_name="SpaceX",
        user_agent_kwargs=dict(model=model_turbo),
        task_prompt=task_prompt,
        message_window_size=5,
        output_language="Chinese",
    )    

4、输出执行情况 

print(
        Fore.GREEN
        + f"NASA研究员提议:\n{babyagi_session.assistant_sys_msg}\n"
    )

    print(Fore.YELLOW + f"初始任务:\n{task_prompt}\n")
    print(
        Fore.CYAN
        + f"初始任务:\n{babyagi_session.specified_task_prompt}\n"
    )
    print(
        Fore.RED
        + f"最终任务:\n{babyagi_session.specified_task_prompt}\n"
    )

    n = 0
    while n < chat_turn_limit:
        n += 1
        action_response = babyagi_session.step()
        if action_response.terminated:
            print(
                Fore.GREEN
                + (
                    "NASA研究员终止该任务. 原因: "
                    f"{action_response.info['termination_reasons']}."
                )
            )
            break
        print_text_animated(
            Fore.RED + "任务名称:\n\n"
            f"{action_response.info['任务名称']}\n"
        )
        print_text_animated(
            Fore.GREEN + "NASA研究员:\n\n"
            f"{action_response.msg.content}\n"
        )
        print_text_animated(
            Fore.BLUE + "执行中的子任务:\n\n"
            f"{action_response.info['子任务'][:5]}\n"
        )


if __name__ == "__main__":
    main()

5、运行咨询项目

项目运行视频参见下方链接:

https://www.bilibili.com/video/BV15X68YnEjT/

四、总结

通过以上实践案例,说明Qwen系列在多Agent环境中的应用实践中,已经证明了其巨大的实用价值,且具有一定的成本优势。通过具体的代码示例,我们能够更直观地理解它在多样化场景中的应用方法和潜在能力。随着技术的持续进步,预计Qwen系列在这些领域的应用将变得更加成熟和普及,为众多行业带来突破性的变革。

 

​​

...全文
717 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

4,111

社区成员

发帖
与我相关
我的任务
社区描述
首个存内开发者社区,是整合产学研各界资源优势,搭建的学习与实践平台,提供存内架构学习,平台算法部署实践,存内计算线下训练以及AI时代大模型追踪,从理论到实践,供开发者体验未来第三极算力架构。
其他 企业社区
社区管理员
  • 存内计算开发者社区
  • Hundred++
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  • 奖品兑换上新:

100积分 - 品牌赞助托特包 (单个账号限兑换5个)

200积分-罗技M240无线鼠标 ( 单个账号限兑换3个)

400积分-马歇尔入耳式耳机 (单个账号限兑换2个)

600积分-Cherry MIX 3.0键盘 (单个账号限兑换2个)

800积分- 雷切Pro游戏手柄 (单个账号限兑换1个)

1000积分-小米/Redmi显示器A27 IPS版27英寸100Hz(单个账号限兑换1个)

1200积分-Switch 积分(单个账号限兑换1个)

 

  • 积分规则:

 

创作积分:

参与主题征文活动,发布博文获取50积分

1,发布文章获取20积分

2,文章内容加精30积分

 

互动积分:

1,发布评论互动积分:2积分

2,点赞文章获取积分:1积分

 

活动积分:

活动参与积分以每场活动规则为准

 

试试用AI创作助手写篇文章吧