首页 > 其他分享 >构建基于Qwen API 的AgentScope 聊天机器人

构建基于Qwen API 的AgentScope 聊天机器人

时间:2024-09-09 22:25:28浏览次数:13  
标签:00 name agent agentscope Qwen API model AgentScope config

环境搭建与库安装

首先,我们需要创建一个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)的选择会影响生成内容的随机性。对于需要一致性高的任务,设置较低的温度值;反之,则设置较高的温度值以增加多样性。

标签:00,name,agent,agentscope,Qwen,API,model,AgentScope,config
From: https://blog.51cto.com/u_16958225/11963661

相关文章

  • FastAPI 进阶:使用 BackgroundTasks 处理长时间运行的任务
    在FastAPI中,BackgroundTasks是一个功能,它允许你在发送响应给客户端之后执行后台任务。这些任务对于不需要客户端等待的操作非常有用,比如发送电子邮件通知或处理数据。然而,当服务器重启时,由于BackgroundTasks是与单个应用实例的生命周期相关联的,它们不会自动恢复执行。Backgrou......
  • shell请求api,获取json返回值,做判断
    1.shell如何请求api,获取到json返回值:https://www.cnblogs.com/pingguomang/p/184050112.shell如果解析json数据: https://www.cnblogs.com/pingguomang/p/184049963.shell的条件判断:#定义用户的iduser_id="199348"#1.调用api--获取用户数据详细信息response=$(curl......
  • shell 请求http get api,获取返回值
    在Shell脚本中,你可以使用curl或wget来发送HTTPGET请求并获取返回值。以下是使用curl的示例:#!/bin/bash#APIURL无参数时:URL="http://example.com/api/data"#APIURL有参数时:id=119URL="http://example.com/api/data?id="+${id}#发送GET请求并存储响应response=$(cu......
  • 阿里巴巴中国站商品搜索API返回值解析与实战
    阿里巴巴中国站(现通常指1688.com)是一个大型的B2B电商平台,为企业和商家提供商品交易、供应链服务等。然而,需要注意的是,阿里巴巴官方并不直接提供公开的API接口给所有开发者进行商品搜索等高级功能,这些服务通常需要通过官方合作伙伴计划或特定服务接口来获取。不过,为了回答你的问题,我......
  • FastAPI 深度指南:使用依赖注入处理分页和过滤逻辑
    在FastAPI框架中,Depends是一个关键的功能,它允许开发者通过依赖注入来管理和重用代码。这在处理API的分页和过滤逻辑时尤其有用,因为它可以将这些逻辑抽象化,从而减少冗余代码并提高效率。通过Depends,我们可以定义一个函数,该函数负责获取和验证分页参数(如skip和limit)以及过滤参数(如基......
  • kubectl命令来查看操作对应的api
    Controller作为k8s的资源控制组件,必定要实时地监控对比资源的目标状态和当前状态,这其中会与apiserver产生大量的交互。在k8s中,k8s各个组件都会与apiServer交互,因此k8s在项目中封装了一个client-go公用模块,路径位于项目vendor/k8s.io/client-go,非常多的组件向ApiServer的curd操作都......
  • 商城上货过程如何选择API接口提高工作效率至关重要!!
    商城上货过程中选择合适的API接口对于提高工作效率至关重要。以下是一些关键步骤和考虑因素,以帮助商城做出明智的选择:一、明确需求业务需求识别:确定商城需要哪些具体的功能和数据,如商品信息、库存管理、订单处理、支付接口、物流跟踪等。分析商城的业务流程,明确API接口在......
  • 分享一波好用的API开发工具
    API开发工具是设计、构建、测试和管理应用程序编程接口(API)的重要辅助工具。以下是一些具体的API开发工具推荐:1.Postman功能描述:Postman是一款支持HTTP协议的接口调试与测试工具,功能强大且使用简单。它可以模拟各种HTTP请求(如GET、POST、PUT、DELETE等),并支持多种格式的参数和......
  • Javaweb-JDBC-API详解
    packageDUIXIANG;publicclassAccount{privateintid;privateStringname;privateDoublemoney;publicintgetId(){returnthis.id;}publicvoidsetId(intid){this.id=id;}publicStringgetName(){returnthis.name;}publicvoidsetName(String......
  • RESTful api 与远程接口调用
       RPC( Remote Process Call) 远程接口调用的准确应用是程序与程序之间的通信 。程序 是在计算机中运行中的可用进程。进程之间的通信可以通过管道或者是消息。随着时代的发 展,应用程序的架构模式不断地简化。浏览器作为操作系统客户端和其他数据服务端连接的 可视......