深度学习系列62:Agent入门

1 anget介绍和openai标准接口

agent的核心是其代理协同工作的能力。每个代理都有其特定的能力和角色,你需要定义代理之间的互动行为,即当一个代理从另一个代理收到消息时该如何回复。
agent目前大多使用openai标准接口调用LLM服务,说明如下。

标准接口示例如下,其中role包括:system(设定了 AI 的行为和角色,和背景),user(我们输入的问题或请求),assistant(自动生成)

import openai
response = openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
        {"role": "system", "content": "你正在与一位科幻小说的专家交谈。"},
        {"role": "user", "content": "我正在写一部科幻小说,故事发生在一个遥远的星球上,主人公是一个探险家。你有什么建议可以让我的故事更引人入胜吗?"},
    ]
)
print(response['choices'][0]['message']['content'])

2 autogen

微软家的autogen默认撰写python代码来求解问题。

2.1 直接调用接口

autogen中可以参考下面的代码,OpenAIWrapper封装openai标准接口服务后,可以直接使用create方法调用本地LLM服务:

from autogen import OpenAIWrapper
client = OpenAIWrapper(api_key="NULL", base_url="http://localhost:2600/v1", api_type="open_ai")
question = '世界上最高峰是什么?'
response = client.create(messages=[{"role": "user", "content": "<用户>%s<AI>"%question}], model="guff")
print(client.extract_text_or_completion_object(response))

2.2 UserProxyAgent和AssistantAgent

autogen的AssistantAgent 设计为充当 AI 助手,默认使用 LLM。它可以编写 Python 代码(在 Python 编码块中),供用户在收到消息(通常是需要解决的任务的描述)时执行。它还可以接收执行结果并建议更正或错误修复。
而UserProxyAgent 是人类的代理代理,默认情况下,在每个交互回合中,将人工输入作为代理的回复,并且还具有执行代码和调用函数的能力。当它在收到的消息中检测到可执行代码块且未提供人类用户输入时,会自动 UserProxyAgent 触发代码执行。可以通过将 code_execution_config 参数设置为 False 来禁用代码执行。
下面是个简单的调用例子:

from autogen import AssistantAgent, UserProxyAgent
config_list = [{"model": "minicpm","base_url": "http://127.0.0.1:2600/v1","api_type": "open_ai","api_key": "NULL"}]
assistant = AssistantAgent("assistant", llm_config={"config_list": config_list})
user_proxy = UserProxyAgent("user_proxy", code_execution_config={"work_dir": "coding","use_docker":False})
# 构造参与代理后,可以通过初始化步骤启动多代理对话会话,用户代理发起聊天
user_proxy.initiate_chat(assistant, message="给我讲个笑话。")

输出如下:
在这里插入图片描述

下面的例子展示了如何使用这两个agent一步步完成任务:

from autogen import AssistantAgent, UserProxyAgent
config_list = [{"model": "minicpm","base_url": "http://127.0.0.1:2600/v1","api_type": "open_ai","api_key": "NULL"}]
assistant = AssistantAgent("assistant", llm_config= {"config_list": config_list,"temperature": 0.1,"max_tokens":16000,})
user_proxy = UserProxyAgent("user_proxy", code_execution_config={"work_dir": "coding", "use_docker": False})
user_proxy.initiate_chat(assistant, message="Plot a chart of NVDA and TESLA stock price change YTD.")

在这里插入图片描述

3. Qwen-gen

3.1 使用方法

和autogen不一样,Qwen-gen的角色名字需要写在函数的json中,下面是一个chatbot的示例:
在这里插入图片描述
其他的功能貌似不太好用(可能是因为用的不是Qwen的LLM功能)

相关推荐

  1. 深度学习系列63:tts和智能语音助手

    2024-03-19 20:04:02       46 阅读
  2. 深度学习系列68:声音克隆项目OpenVoice

    2024-03-19 20:04:02       48 阅读
  3. 基于PyTorch深度学习实战入门系列-PyTorch基础上

    2024-03-19 20:04:02       41 阅读
  4. 基于PyTorch深度学习实战入门系列-PyTorch基础全

    2024-03-19 20:04:02       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-19 20:04:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-19 20:04:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-19 20:04:02       82 阅读
  4. Python语言-面向对象

    2024-03-19 20:04:02       91 阅读

热门阅读

  1. 2024.3.19每日一题

    2024-03-19 20:04:02       43 阅读
  2. Linux重命名文件有几种方法

    2024-03-19 20:04:02       47 阅读
  3. python线程的使用和介绍

    2024-03-19 20:04:02       45 阅读
  4. Vue箭头函数还原为匿名函数示例

    2024-03-19 20:04:02       47 阅读
  5. 24.1 SpringCloud电商实战一刷

    2024-03-19 20:04:02       37 阅读
  6. @Builder用法

    2024-03-19 20:04:02       44 阅读
  7. IPD流程学习

    2024-03-19 20:04:02       36 阅读
  8. 富格林:曝光暗箱细节确保安全

    2024-03-19 20:04:02       44 阅读
  9. 用webpack 构建自己的vue-cli

    2024-03-19 20:04:02       40 阅读
  10. 逐笔成交、委托数据的因子计算

    2024-03-19 20:04:02       47 阅读
  11. 企业常用管理制度清单

    2024-03-19 20:04:02       37 阅读