环境搭建与库安装

首先,我们需要创建一个Python 3.10环境。你可以使用conda来创建一个新的虚拟环境,并激活它:

conda create -n py310 python==3.10
conda activate py310

接着,安装所需的库agentscope,由于它可能处于预发布阶段,因此我们需要指定--pre标志:

pip install agentscope --pre

获取API Key

前往阿里云百炼控制台页面获取Qwen API,并获取你的API Key。这一步是必不可少的,因为我们的聊天机器人将依赖于这个API来生成回复。

配置与代码实现

创建一个名为model_config.json的配置文件,内容如下:

{
    "config_name": "my_dashscope_chat_config", 
    "model_type": "dashscope_chat", 
    "model_name": "qwen-turbo",
    "api_key": "xxx", #你从百炼得到的API
    "generate_kwargs": {
        "temperature": 0.5
    }
}

接下来编写主要逻辑代码:

import agentscope
from agentscope.agents import DialogAgent, UserAgent
from agentscope.pipelines.functional import sequentialpipeline

def main():
    # 初始化agentscope
    agentscope.init(
        model_configs="model_config.json",
        project="A basic conversation demo",
        save_api_invoke=True
    )

    # 创建智能体
    dialog_agent = DialogAgent(
        name="dialog_agent",
        sys_prompt="You are a helpful assistant.",
        model_config_name="my_dashscope_chat_config"
    )
    user_agent = UserAgent(name="user_agent")

    # 对话循环
    x = None
    while x is None or x.content != "exit":
        x = sequentialpipeline([dialog_agent, user_agent], x)

if __name__ == "__main__":
    main()

错误处理

如果遇到ValueError: Cannot find [qwen-turbo] in loaded configurations.错误,检查你的model_config_name是否正确对应了你在配置文件中定义的名字。在这个例子中应该是"my_dashscope_chat_config"而不是其他。

运行结果

当正确运行上述代码后,你会看到类似于下面的输出:

2024-09-09 21:03:10.282 | INFO     | agentscope.manager._model:load_model_configs:115 - Load configs for model wrapper: my_dashscope_chat_config
2024-09-09 21:03:10.328 | INFO     | agentscope.models.model:__init__:203 - Initialize model by configuration [my_dashscope_chat_config]
dialog_agent: Hello! I'm here to help you with any questions or tasks you might have. Whether it's providing information, offering advice, assisting with calculations, or helping organize your thoughts, feel free to ask. How can I assist you today?
User Input: 请你帮我整理今天的日程
user_agent: 请你帮我整理今天的日程
dialog_agent: 当然可以帮助您整理日程。请告诉我您的具体安排,包括会议、任务或任何其他活动的时间和地点,这样我才能更准确地帮助您。如果您没有具体的日程信息,我可以提供一般性的建议,比如如何有效规划时间或管理待办事项。
User Input: 我早上6点半要参加健康节徒步活动,大约下午三点结束,之后我需要准备面试的预备材料和稿子,到了晚上8点我要进行agentscope的练习,我需要你给出具体的时间安排和一些注意事项
user_agent: 我早上6点半要参加健康节徒步活动,大约下午三点结束,之后我需要准备面试的预备材料和稿子,到了晚上8点我要进行agentscope的练习,我需要你给出具体的时间安排和一些注意事项
dialog_agent: 根据您提供的信息,我为您整理了今天的大致日程安排:

**早上:**

- **6:30 AM** 到达健康节徒步活动地点,准备参加徒步活动。

**上午:**

- **徒步活动从9:00 AM开始至约下午3:00结束**,这段时间您可以专注于活动本身,享受户外时光,同时保持充足的水分和能量补给。

**下午:**

- **3:00 PM** 徒步活动结束后,返回家中或工作地点,休息片刻以便为接下来的任务做准备。

- **4:00 PM** 至 **5:00 PM** 开始准备面试的预备材料和稿子。这个时间段通常比较安静,有助于集中注意力。

**晚上:**

- **6:00 PM** 开始休息,吃晚饭,确保营养均衡,为晚上的练习做好准备。

- **7:00 PM** 至 **8:00 PM** 进行agentscope的练习。尽量在安静的环境中进行,确保不会被打扰,全身心投入练习。

**注意事项:**

1. **保持充足水分**:徒步活动前后以及练习时,请记得补充水分,避免脱水。

2. **合理分配时间**:为了确保每个任务都能充分完成,合理规划每项活动所需的时间,留出缓冲时间应对可能的突发情况。

3. **休息与放松**:在忙碌的日程中,记得安排短暂的休息时间,让大脑和身体得到恢复。

4. **高效利用时间**:在准备面试材料和进行agentscope练习时,尝试使用番茄工作法等时间管理技巧,提高效率。

5. **保持积极心态**:保持乐观的态度,相信自己能够顺利完成所有任务。

希望这些建议能对您有所帮助!如果有其他问题或需要进一步的帮助,请随时告诉我。
User Input: exit
user_agent: exit

智能体会根据用户的输入给出相应的建议和支持。

基本原理

  • 消息交换机制:智能体之间通过消息进行通信。
  • 智能体(Agents):执行特定任务或服务的实体。
  • 服务(Services):智能体提供的功能接口。
  • 工作流(Workflows):描述任务从开始到结束的过程。

在本项目中,我们主要关注的是如何利用agentscope库中的agentpipelines模块来实现智能对话系统的工作流。

项目优化与改进

  • 参数选择:温度值(temperature)的选择会影响生成内容的随机性。对于需要一致性高的任务,设置较低的温度值;反之,则设置较高的温度值以增加多样性。