实例如下:
from camel.agents import ChatAgent
from camel.models import ModelFactory
from camel.types import ModelPlatformType
from camel.messages import BaseMessage
from dotenv import load_dotenv
import os
load_dotenv(dotenv_path=r'D:\Python Projects\Multi-Agent\.env')
api_key = os.getenv("MODELSCOPE_SDK_TOKEN")
model = ModelFactory.create(
model_platform=ModelPlatformType.OPENAI_COMPATIBLE_MODEL,
model_type="Qwen/Qwen2.5-VL-7B-Instruct",
url='https://api-inference.modelscope.cn/v1/',
api_key=api_key,
)
user_msg1 = BaseMessage.make_user_message(
role_name="User",
content="请介绍一下你自己",
meta_dict={},
)
agent = ChatAgent(
model=model,
output_language="zh-CN",
)
response1 = agent.step(user_msg1)
print(response1.msgs[0].content)
>>>您好!我是一个AI助手,旨在提供帮助和支持。无论您需要解答问题、获取信息还是进行对话交流,请随时告诉我您的需求或提出的问题吧。我会尽力为您提供准确和有用的信息和服务。如果您有任何疑问或者想要了解更多信息的话,请不要犹豫向我提问哦~
user_msg2 = BaseMessage.make_user_message(
role_name="User",
content="你能做什么?",
meta_dict={},
)
response2 = agent.step(user_msg2)
print(response2.msgs[0].content)
>>>作为一个人工智能模型,我可以执行多种任务:
1. 回答各种类型的问题:无论是关于科学知识的查询、历史事件的时间线或是日常生活的建议等。
2. 提供新闻摘要与更新资讯服务;
3. 帮助用户查找特定地点的地图及交通指南;
4. 为用户提供天气预报以及生活小贴士等等。
当然,在某些情况下可能会出现错误回答的情况(例如数据过时或者是对复杂概念理解不足),因此在使用过程中如果遇到不正确的内容,请及时告知我们以便改进服务质量!
此外我还能够根据用户的兴趣爱好推荐相关的书籍/电影/音乐等内容,并且可以根据个人喜好定制个性化的学习计划以提高效率并激发潜能。总之只要您有需要都可以尝试一下我的功能看看效果如何啦~
user_msg3 = BaseMessage.make_user_message(
role_name="User",
content="请简单解释你的第1个功能",
meta_dict={},
)
response3 = agent.step(user_msg3)
print(response3.msgs[0].content)
>>>当然,让我们再来回顾一下第一部分中的内容。在这个回复中,我已经详细介绍了我的第一个主要功能:**回答各种类型的问答**
简而言之,该功能允许用户向我提出任何他们感兴趣的问题,不论是科普性质的技术问题、历史文化探讨亦或是日常生活中的实用技巧等问题均可涵盖在我的服务能力范围内。一旦接收到来自用户的提问之后,我会运用自身的训练数据库来进行检索匹配相应的知识点,并结合最新的研究成果力求给予详实而又易于理解的回答回馈给对方。
请注意,尽管这项技能已经得到了相当程度上的优化和完善但仍可能存在一些局限性比如说对于过于专业性的术语或者涉及到跨学科交叉领域的问题有时仍需借助外部资料来源方能得到全面深入解析但总体来说它仍然是目前可用的一种强有力的学习型工具之一可供广大网民们随时随地获取所需信息享受便捷高效的在线咨询服务体验。
此处即可看出ChatAgent能保持上下两轮对话的信息连贯。
user_msg4 = BaseMessage.make_user_message(
role_name="User",
content="请简单解释你的第2个功能",
meta_dict={},
)
response4 = agent.step(user_msg4)
print(response4.msgs[0].content)
>>>不好意思,我在前面提到的第一个功能就是回答各种类型的问答。至于所谓的"第二个功能”,可能是误解了我的描述。实际上,“第二个功能”的表述并没有出现在我们的对话中。
不过,既然您提出了这个问题,那么我想说的是:“第二个功能”这个说法似乎并不是针对当前情境下的实际存在的一项功能设定。“每个系统的功能性都是有限的并且是由开发者定义出来的。” 如果您是在寻找其他的功能特性或者其他领域的辅助说明,则请您进一步澄清具体的背景或场景,这样我才能够针对性地提供更为详细的答案。
然而这里可以看出,对于上下超过两轮的对话似乎并不连贯,暂不清楚原因,有待深入了解