您现在的位置是:首页 >学无止境 >使用DeepSeek+CAMEL智能体开发框架零成本构建交易机器人网站首页学无止境

使用DeepSeek+CAMEL智能体开发框架零成本构建交易机器人

袋鼠兜里的松鼠 2025-12-11 12:01:02
简介使用DeepSeek+CAMEL智能体开发框架零成本构建交易机器人

前言

 大家好,我是青风,GIS开发工程师一枚。目前正在参与DataWhale 2025年2月的智能体开发集训营,本系列笔记将全程记录我的技术探索之路,期待与Agent学习者共同构建避坑指南,让技术成长路径更高效!

1. CAMEL 介绍

CAMEL(Communicative Agents for Multi-Agent Learning)是一个基于多智能体系统(Multi-Agent System, MAS)的框架,旨在通过多个智能体(Agents)的协作来解决复杂任务。CAMEL 的核心思想是利用大型语言模型(LLM)的能力,结合多智能体的分工与协作,实现更高效、更智能的任务处理。

1.1. CAMEL 的核心概念

CAMEL 的核心是通过多个智能体的协作来完成复杂任务。每个智能体可以扮演不同的角色,专注于特定的功能,例如数据分析、任务规划、代码生成等。CAMEL 的架构设计使其能够灵活适应各种应用场景,尤其是在需要高效决策、复杂数据处理和动态自适应的领域,如量化金融、投资分析、知识图谱构建等。

  • 多智能体协作:CAMEL 通过多个智能体的分工与协作,将复杂任务分解为更小的子任务,每个智能体专注于解决特定的问题,最终通过协作完成整体目标。
  • 角色扮演:CAMEL 支持智能体之间的角色扮演,例如一个智能体扮演用户(AI User),另一个智能体扮演助手(AI Assistant),通过交互式对话生成高质量的数据集或完成任务。

1.2. CAMEL 的技术特点

CAMEL 的技术架构结合了大型语言模型(LLM)和多智能体系统的优势,具有以下特点:

  • 检索增强生成(RAG):CAMEL 利用 RAG 技术,通过检索外部知识库和向量数据库,增强智能体的知识储备和推理能力,从而减少幻觉(Hallucination)并提高任务完成质量。
  • 任务分解与规划:CAMEL 能够将复杂任务分解为多个子任务,并通过智能体之间的协作逐步完成。
  • 动态自适应:CAMEL 的智能体能够根据任务需求动态调整角色和功能,形成多层级的协作网络。一个智能体可以作为监督者(Supervisor),负责任务分配和协调,而其他智能体则专注于执行特定任务。

2. 安装CAMEL框架

2.1. python环境配置

CAMEL框架需要用到Python环境,确保系统已经安装了Python 3.10+,推荐使用Python 3.10.x

如果电脑上没有Python环境可自行在网上搜索安装,本文使用Conda创建Python 3.10虚拟环境进行安装

2.2. 使用conda创建虚拟环境进行安装

2.2.1. 创建Conda虚拟环境
conda create --name camel python=3.10
2.2.2. 激活Conda虚拟环境
conda activate camel

安装成功后输入 python --version可看到python版本为 3.10.16

2.2.3. 进入到要安装的目录克隆Github仓库(部分网络需开启全局代理)
git clone -b v0.2.19 https://github.com/camel-ai/camel.git
2.2.4. 进入到camel项目目录
cd camel
2.2.5. 输入命令从源代码安装
pip install -e .[all]
2.2.6. 出现 Successfully installed camel-ai-0.2.19即安装成功

3. 获取DeepSeekApi

3.1. 注册硅基流动平台

硅基流动提供多个语言模型包括大语言、多模态、文生图的统一API调用接口,现在注册可免费获取2000万Tokens的额度,平台支持DeepSeek-R1和DeepSeek-V3满血版,并兼容OpenAI API标准。

硅基流动统一登录

3.2. 注册成功后新建API密钥即可在各个平台进行API调用

4. 试用接口是否成功

4.1. 编辑大语言模型.py代码

在你习惯的代码编辑器中新建一个大语言模型.py文件,通过调用CAMEL框架和刚刚的API密钥来进行对话,测试是否成功。

from camel.agents import ChatAgent
from camel.models import ModelFactory
from camel.types import ModelPlatformType

model = ModelFactory.create(
    model_platform=ModelPlatformType.OPENAI_COMPATIBLE_MODEL,
    model_type="deepseek-ai/DeepSeek-V3",
    url='https://api.siliconflow.cn/v1',
    api_key='你的API密钥'
)

agent = ChatAgent(
    model=model,
    output_language='中文'
)

response = agent.step("你好,介绍一下你自己?")
print(response.msgs[0].content)

其中 model_type 代表这选择的模型,url代表你所选择平台的地址,api_key填入新建的API密钥

如果调用其他网站提供的API只需更改这三个地方即可

model_type="deepseek-ai/DeepSeek-V3",

url='https://api.siliconflow.cn/v1',

api_key='你的API-Key'

4.2. 运行大语言模型.py

在代码所在的目录下输入 python 大语言模型.py 运行程序,可以看到AI的回复即可。

注意:这里一定要首先激活camel环境

4.3. 使用多模态模型分析图片

新建多模态模型.py文件,将model_type更改为‘Qwen/QVQ-72B-Preview’多模态模型,添加你要识别的图片URL,输入python 多模态模型.py 即可运行

from camel.agents import ChatAgent
from camel.models import ModelFactory
from camel.types import ModelPlatformType
from camel.messages import BaseMessage

from io import BytesIO
import requests
from PIL import Image

model = ModelFactory.create(
    model_platform=ModelPlatformType.OPENAI_COMPATIBLE_MODEL,
    model_type="Qwen/QVQ-72B-Preview",
    url='https://api.siliconflow.cn/v1',
    api_key='你的API密钥'
)


agent = ChatAgent(
    model=model,
    output_language='中文'
)

# 图片URL
url = "https://images.pexels.com/photos/13938350/pexels-photo-13938350.jpeg?auto=compress&cs=tinysrgb&w=600&lazy=load"
response = requests.get(url)
img = Image.open(BytesIO(response.content))

user_msg = BaseMessage.make_user_message(
    role_name="User", 
    content="请描述这张图片的内容", 
    image_list=[img]  # 将图片放入列表中
)

response = agent.step(user_msg)
print(response.msgs[0].content)

输入的图片:

输出结果如下图,可以看到描述的还是很准确的。

5. 开发股票交易机器人

5.1. 设置目标

主要思路是调用Camel的RolePlaying模块,设置任务目标、AI助手角色名以及用户角色,智能体即可自行进行对话思考生成机器人。

设置任务目标

task_prompt = "为股票市场开发一个交易机器人"

设置AI助手角色名

 assistant_role_name="Python 程序员"

设置用户角色名

 user_role_name="股票交易员"

完整代码如下

from colorama import Fore #终端文本颜色库

from camel.societies import RolePlaying #Camel核心模块 角色扮演
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')

model = ModelFactory.create(
    model_platform=ModelPlatformType.OPENAI_COMPATIBLE_MODEL,
    model_type="deepseek-ai/DeepSeek-V3",
    url='https://api.siliconflow.cn/v1',
    api_key='你的API密钥'
)

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 助手系统消息:
{role_play_session.assistant_sys_msg}
"
    )
    print(
        Fore.BLUE + f"AI 用户系统消息:
{role_play_session.user_sys_msg}
"
    )

    print(Fore.YELLOW + f"原始任务提示:
{task_prompt}
")
    print(
        Fore.CYAN
        + "指定的任务提示:"
        + f"
{role_play_session.specified_task_prompt}
"
    )
    print(Fore.RED + f"最终任务提示:
{role_play_session.task_prompt}
")

    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 用户:

{user_response.msg.content}
"
        )
        print_text_animated(
            Fore.GREEN + "AI 助手:

"
            f"{assistant_response.msg.content}
"
        )

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

        input_msg = assistant_response.msg

if __name__ == "__main__":
    main()

5.2. 运行代码

输入python 交易机器人.py即可看到原始任务提示,之后AI助手和AI用户会自行对话进行股票机器人的构建

5.3. 构建过程

AI用户一步一步的指导AI助手自动进行交易机器人的构建,可以看到整个过程还是比较详细的。

5.4. 运行完成

整个过程持续12分钟才完成(取决于所选择的模型速度),之后就可以使用股票交易机器人啦

6. 构建自己的智能助手

如果你有什么其他的想法或者应用,可以在以上代码中更改任务目标以及角色来构建自己的机器人。

设置任务目标

task_prompt = "为股票市场开发一个交易机器人"

设置AI助手角色名

 assistant_role_name="Python 程序员"

设置用户角色名

 user_role_name="股票交易员"

参考文档

GitHub-camel-ai

硅基流动

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。