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

Model 是 Agent 的大脑(以camel为例)

Model 是 Agent 的大脑,负责处理所有输入和输出数据。通过有效调用不同的模型,智能体可以根据任务需求执行文本分析、图像识别和复杂推理等操作。CAMEL 提供了一系列标准和可定制的接口,并与各种组件无缝集成,以赋能大语言模型(LLM)驱动的应用程序开发。在本部分,我们将介绍 CAMEL 目前支持的模型、工作原理及与模型交互的方式。

2.3.1 目前支持的模型

可以点击此处查看目前支持的模型

2.3.2 通过API调用模型

我们可以通过使用ModelFactory的create方法创建不同的model,然后修改以下三个参数就可以做到调用不同的模型:model_platform、model_type、model_config_dict

示例API申请地址

智谱AI开放平台

import osfrom camel.agents import ChatAgent
from camel.configs import ZhipuAIConfig
from camel.messages import BaseMessage
from camel.models import ModelFactory
from camel.types import ModelPlatformType, ModelTypemodel = ModelFactory.create(model_platform=ModelPlatformType.ZHIPU,model_type=ModelType.GLM_4,model_config_dict=ZhipuAIConfig(temperature=0.2).as_dict(),api_key=os.environ.get("ZHIPUAI_API_KEY"),url=os.environ.get("ZHIPUAI_API_BASE_URL"),
)# 设置system prompt
sys_msg = BaseMessage.make_assistant_message(role_name="Assistant",content="You are a helpful assistant.",
)# 初始化agent
camel_agent = ChatAgent(system_message=sys_msg, model=model, output_language="zh")#这里同样可以设置输出语言user_msg = BaseMessage.make_user_message(role_name="User",content="""Say hi to CAMEL AI, one open-source community dedicated to the study of autonomous and communicative agents.""",
)# 调用模型
response = camel_agent.step(user_msg)
print(response.msgs[0].content)#以下是模型回复的内容
'''
===============================================================================
你好,向CAMEL AI这个致力于自主交互式智能体研究的开源社区问好。
===============================================================================
'''

如果您想使用与 OpenAI 的 API 兼容的接口(即遵循 OpenAI 提供的 API 规范和认证方式),可以将model替换为以下代码:model

model = ModelFactory.create(model_platform=ModelPlatformType.OPENAI_COMPATIBLE_MODEL,model_type="a-string-representing-the-model-type",api_key=os.environ.get("OPENAI_COMPATIBILIY_API_KEY"),url=os.environ.get("OPENAI_COMPATIBILIY_API_BASE_URL"),model_config_dict={"temperature": 0.4, "max_tokens": 4096},
)

2.3.3 使用开源模型

使用Ollama

Ollama 是一个开源的机器学习框架,专注于让用户轻松地创建和使用各种语言模型。它提供了一个简单的 API,能够将预训练的语言模型(例如 GPT 系列)集成到你的应用程序中。Ollama 支持许多主流的机器学习模型和任务,如文本生成、对话系统、文本分类等。通过它的简单接口,开发者能够方便地进行模型加载、推理以及与模型交互。

进阶方案是在后端部署一个带有本地模型的服务器,并将其用作 API 的本地替代品。我们在这里使用 Ollama 部署的 Qwen2.5 为例。

  1. 首先安装Ollama
  1. 设置 Ollama 后,通过在终端中键入以下命令来拉取 Qwen2.5模型(这里使用7B的模型,大约需要16GB的内存,70B的模型大约需要64GB以上的内存,可以根据自身的配置和需要选择不同参数的模型),Ollama基于llama.cpp实现,本地CPU推理效率非常高(当然如果有GPU的话,推理效率会更高), 还可以兼容 openai的接口。 :
ollama pull qwen2.5:7b
  • 在项目目录中创建一个类似于下面的 ModelFile(可选)。
FROM qwen2.5:7b# set the temperature to 1 [higher is more creative, lower is more coherent]
PARAMETER temperature 1# set the system message
SYSTEM """
"""
  • 接下来,创建模型(可选):
ollama create camel-qwen2.5 -f ./Modelfile

之后同样使用以下代码替换model:model

#如果出现openai.InternalServerError: Error code: 502错误可以尝试设置一下http_proxy及https_proxy
#import os# os.environ["http_proxy"] = "http://localhost:11434/v1/"
# os.environ["https_proxy"] = "http://localhost:11434/v1/"model = ModelFactory.create(model_platform=ModelPlatformType.OLLAMA,model_type="qwen2.5",model_config_dict={"temperature": 0.4},#可选
)

使用vLLM

vLLM 是一个高效的、面向大规模语言模型的推理库,专为大规模语言模型设计,旨在提高推理速度和减少资源消耗。vLLM 的一个核心特性是它能够在多种硬件环境下(例如单 GPU、多 GPU,甚至 CPU)高效运行,极大地降低了推理成本。

  1. 首先安装vLLM

  2. 设置 vLLM 后,启动兼容 OpenAI 的服务器,例如:

python -m vllm.entrypoints.openai.api_server --model microsoft/Phi-3-mini-4k-instruct --api-key vllm --dtype bfloat16

之后同样使用以下代码替换model:model

vllm_model = ModelFactory.create(model_platform=ModelPlatformType.VLLM,model_type="microsoft/Phi-3-mini-4k-instruct",url="http://localhost:8000/v1", # 可选model_config_dict={"temperature": 0.4}, #可选)
http://www.xdnf.cn/news/569251.html

相关文章:

  • 补充Depends 和 request: Request 依赖注入用法的注意事项
  • 【C++ Primer 学习札记】智能指针
  • 构建 PyMNN
  • Halcon窗口的基本操作
  • Elasticsearch生产环境性能调优指南
  • Spring Boot + +小程序, 快速开发零工市场小程序
  • 如何使用 Docker Compose 部署 Immich
  • 《棒球百科知识》世界棒球十强国家是如何发展·棒球1号位
  • WordPress Madara插件存在文件包含漏洞(CVE-2025-4524)
  • 实验分享|基于千眼狼sCMOS科学相机的流式细胞仪细胞核成像实验
  • XCOSnTh-fatfsShell
  • 腾讯位置服务地点搜索开发指南
  • [Min-Max Normalization] [Z-Score Normalization]
  • 使用vue2做一个生成二维码的案例【可当组件使用】
  • JC/T 2848-2024 玻璃纤维增强石膏(GRG)装饰制品检测
  • VS2022:使用命令行启动项目
  • 2023 睿抗机器人开发者大赛CAIP-编程技能赛-本科组(国赛) 解题报告 | 珂学家
  • vscode连接WSL卡住
  • js不同浏览器标签页、窗口或 iframe 之间可以相互通信
  • 虚拟机下的OpenWrt磁盘Overlay扩容
  • genicamtl_lmi_gocator_objectmodel3d
  • 掌握HTTPX:从基础到高并发工程实践
  • 自由开发者计划 001:创建一个用于查看 Jupyter Notebook 的谷歌浏览器插件
  • FPGA降低功耗研究
  • 【76. 最小覆盖子串】
  • 操作系统 第四章 -2
  • Docker安装MinIO对象存储中间件
  • 图片识别(TransFormerCNNMLP)
  • 分享一些多模态文档解析思路
  • 蓝桥杯3503 更小的数