当前位置: 首页 > news >正文

初识camel智能体(一)

同目录下配置环境变量.env,内容如下,

apikey从魔搭社区获取

QWEN_API_KEY=4ff3ac8f-aebc********

先上干货代码,主代码如下:

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('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 = 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()

运行结果如下 :

本代码取自 datawhalechina/camel-agent-tutoriall智能体课程

http://www.dtcms.com/a/18735.html

相关文章:

  • 【java面向对象的三大特性】封装、继承和多态
  • 【使用大模型prompt辅助PPT制作】
  • 【2025深度学习系列专栏大纲:深入探索与实践深度学习】
  • LM Studio无设置代理,更改镜像源方法(MAC)
  • unity学习35:用射线ray检测,实现点哪儿
  • 为什么我用Python控制仪器比C#慢很多?如何优化性能?
  • web第二次作业
  • 网络初识-
  • 高效训练,深度学习GPU服务器搭建
  • Datawhale Ollama教程笔记2
  • 《图解设计模式》笔记(十)用类来表现
  • 【HDFS】addInternalPBProtocol、setProtocolEngine和registerProtocolAndImpl
  • java-LinkedList源码详解
  • 常见面试提问
  • 【Java八股文】06-MySQL面试篇
  • MySQL 支持的事务隔离级别
  • C++之2048小游戏 第二期
  • PHP 基础介绍
  • 使用Nuitka工具打包Python程序成exe
  • 【Java八股文】01-Java基础面试篇
  • 猜数字小游戏
  • 使用Hexo部署NexT主体网站
  • SQL SERVER的PARTITION BY应用场景
  • C# CountdownEvent 类 使用详解
  • 认识网络安全
  • 【css】width:100%;padding:20px;造成超出100%宽度的解决办法 - box-sizing的使用方法 - CSS布局
  • Android Studio:RxBus结合ICompositeSubscription使用
  • YOLO数据标注——LabelImg
  • PMP--冲刺--流程图
  • vue3+element-plus中的el-table表头和el-table-column内容全部一行显示完整(hook函数)