OpenAI调用接口多轮对话Multi Turn Multi Agent 多轮多角色对话调试和可视化工具Dialogue Visualization

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
模型训练 PAI-DLC,5000CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: 伴随着生成式人工智能技术发展,进2年涌现出大语言模型LLM/Agent系统/AI推理等众多方向的技术项目和论文。其中对话系统,智能体交互是用户通过UX界面和AI系统进行交互,这种交互有时候也是多模态(用户输入文字/语音/图像)等等。在调用OpenAI 的对话接口时候,有时候需要把对话结果打印出来检查是否有bug,JSON数据格式就比较难看出来了,尤其是有多角色的多轮对话。这个时候可以借助一些在线的"对话"可视化的工具 (Online Dialogue Visualization Tool) DeepNLP Dialogue Visualization Tool,方便产品经理,算法研发,学术研究

1. 调用OpenAI多轮对话接口对话可视化前端在线工具

伴随着生成式人工智能技术发展,进2年涌现出大语言模型LLM/Agent系统/AI推理等众多方向的技术项目和论文。其中对话系统,智能体交互是用户通过UX界面和AI系统进行交互,这种交互有时候也是多模态(用户输入文字/语音/图像)等等。在调用OpenAI 的对话接口时候,有时候需要把对话结果打印出来检查是否有bug,JSON数据格式就比较难看出来了,尤其是有多角色的多轮对话。这个时候可以借助一些在线的"对话"可视化的工具 (Online Dialogue Visualization Tool) DeepNLP Dialogue Visualization Tool,方便产品经理,算法研发,学术研究过程中可视化多智能体多轮对话 ( Multi-Agent Multi-TurnDialogue Visualization)。用户只用把多轮对话的Json数据输入,前端渲染的图片和分享H5 链接可以方便加到产品原型文档,学术论文,技术博客中。


dialogue_vis_1.jpg


1.1 以一个OpenAI的API产出多轮对话为例

多轮对话轮流调用OpenAI o1 的API, 获取对话返回结果,包含了两个key: 'role'和 'content',最终得到一个对话结果的list的json格式。


  [

    {"role":"user","content":"User message 1"},

  {"role":"assistant","content":"Assistant message 1"},

  {"role":"system","content":"System message 1"},

  {"role":"user","content":"User message 2"},

  {"role":"assistant","content":"Assistant message 2"},

  {"role":"system","content":"System message 3"}

  ]



OpenAI调用Complete接口产出多轮对话ChatGPT 实例

import os


import openai

from dotenv import load_dotenv

from flask import Flask, render_template, request


load_dotenv()  # load env vars from .env file

openai.api_key = os.getenv("OPENAI_API_KEY")


app = Flask(__name__)


# Global variable to hold the conversation

conversation = []



@app.route("/get_response", methods=["GET", "POST"])

def get_response():

   global conversation

   message = request.args.get("message")

   conversation.append({"role": "user", "content": message})

   completion = openai.ChatCompletion.create(

       model="gpt-3.5-turbo",

       messages=conversation

   )

   response = completion["choices"][0]["message"]["content"]

   conversation.append({"role": "assistant", "content": response})

   return response



1.2 JSON数据效果检查

JSON对话数据有时候看着不是很直观,可以借助一些对话可视化工具,给每个角色配置对应的头像,然后可以方便截图汇报。适当在原先的对话格式上加入几个JSON的key

就可以完成:


产出Json数据:

  • agent: 定义对话角色ID,以及每个角色的 头像URL,我们定义3个对话角色:老板(Agent),同事A(Agent),Human(用户)。

例如我们网上搜到的icon:

特朗普Avatar: https://t11.baidu.com/it/u=1413379684,507496555&fm=58

马斯克Avatar: https://t11.baidu.com/it/u=2978706694,1411251294&fm=58

多智能体:Multi-Agent中每个角色的ID放到 "agent" 这个key下面,包含两个字段:id,avatar,方便用户更改对话模拟器的Agent头像的URL。

  • messages:包含调用OpenAI产出的 对话列表,每个对话的message包含了key为role和content
  • 其他可选的key,如 dialogue_title, dialogue_background



{

 "agent": {

   "老板": {

     "id": "老板",

     "avatar": "https://t11.baidu.com/it/u=2978706694,1411251294&fm=58"

   },

   "同事A": {

     "id": "同事A",

     "avatar": "https://t11.baidu.com/it/u=1413379684,507496555&fm=58"

   },

   "Human": {

     "id": "Human",

     "avatar": "/scripts/img/dialogue_visualization/male_icon_1.webp"

   }

 },

 "messages": [

   {

     "timestamp": "2024-09-19 17:06:11",

     "id": "老板",

     "content": "你为什么刚刚离开工位了10分钟",

     "role": "ai"

   },

   {

     "timestamp": "2024-09-19 17:07:11",

     "id": "Human",

     "content": "我去一趟卫生间",

     "role": "human"

   },

   {

     "timestamp": "2024-09-19 17:06:19",

     "id": "同事A",

     "content": "是吗? 你今天可已经去了不下5次了,我们都在忙着出报表,你还真是闲哈",

     "role": "ai"

   },

   {

     "timestamp": "2024-09-19 17:07:11",

     "id": "Human",

     "content": "小仙男!",

     "role": "human"

   },

   {

     "timestamp": "2024-09-19 17:08:19",

     "id": "老板",

     "content": "好了我们还是要专业一些,不要内斗影响团队战斗力",

     "role": "ai"

   },

   {

     "timestamp": "2024-09-19 17:09:19",

     "id": "同事A",

     "content": "那要看这个人了。。。",

     "role": "ai"

   }

 ]

}



1.3 GUI方式输入Demo

image.png



1.4 Reference

http://www.deepnlp.org/blog/ai-agent-visualization-review-asynchronous-multi-agent-simulation

http://www.deepnlp.org/blog/dialogue-agent-multimodal-visualization-tools-for-ai-systems

http://www.deepnlp.org/workspace/dialogue_visualization

http://www.deepnlp.org/workspace/agent_visualization


相关文章
|
5月前
|
机器学习/深度学习 数据可视化 数据处理
OpenAI Gym 高级教程——可解释性和可视化
OpenAI Gym 高级教程——可解释性和可视化
236 1
|
12月前
|
Web App开发 人工智能 Linux
宝塔快速反代openai官方的API接口,实现国内调用open ai
宝塔快速反代openai官方的API接口,实现国内调用open ai
862 0
|
人工智能 缓存 安全
LangChain开发环境准备-实现私有大模型OpenAI标准接口封装
今天这节课我就将带领小伙伴们将这未完成的一步补全,实现私有大模型OpenAI标准接口封装,并完成LangChain对大模型的调用与测试
1869 0
|
2天前
LangChain-26 Custom Agent 自定义一个Agent并通过@tool绑定对应的工具 同时让大模型自己调用编写的@tools函数
LangChain-26 Custom Agent 自定义一个Agent并通过@tool绑定对应的工具 同时让大模型自己调用编写的@tools函数
11 1
LangChain-26 Custom Agent 自定义一个Agent并通过@tool绑定对应的工具 同时让大模型自己调用编写的@tools函数
|
2天前
LangChain-24 Agengts 通过TavilySearch Agent实现检索内容并回答 AgentExecutor转换Search 借助Prompt Tools工具
LangChain-24 Agengts 通过TavilySearch Agent实现检索内容并回答 AgentExecutor转换Search 借助Prompt Tools工具
7 0
|
4月前
|
人工智能 自然语言处理 前端开发
你要的AI Agent工具都在这里
只有让LLM(大模型)学会使用工具,才能做出一系列实用的AI Agent,才能发挥出LLM真正的实力。本篇,我们让AI Agent使用更多的工具,比如:外部搜索、分析CSV、文生图、执行代码等。
你要的AI Agent工具都在这里
|
5月前
|
人工智能 iOS开发 MacOS
[译][AI OpenAI] 引入 GPT-4o 及更多工具至免费版 ChatGPT 用户
我们推出了最新的旗舰模型 GPT-4o,并为免费版 ChatGPT 用户提供更多功能,包括更快的速度、改进的文本、语音和视觉能力,以及新的桌面应用程序和简化的界面。
[译][AI OpenAI] 引入 GPT-4o 及更多工具至免费版 ChatGPT 用户
|
5月前
|
Kubernetes 安全 Go
对于阿里开源混沌工程工具chaosblade-box-agent心跳报错问题的分析与解决
摘要: 本文记录了一个由chaosblade-box平台后台发现的偶发的chaosblade-box-agent不发送心跳的问题,从报错日志入手,结合chaosblade-box-agent源码进行分析,最终解决问题并修复打包的过程。
386 7
|
5月前
|
监控 Java Maven
揭秘Java Agent技术:解锁Java工具开发的新境界
作为JDK提供的关键机制,Java Agent技术不仅为Java工具的开发者提供了一个强大的框架,还为性能监控、故障诊断和动态代码修改等领域带来了革命性的变革。本文旨在全面解析Java Agent技术的应用场景以及实现方式,特别是静态加载模式和动态加载模式这两种关键模式。
890 0
|
5月前
|
人工智能 开发工具
Sora是什么?如何使用 Sora? OpenAI 发布的文生视频工具
虽然目前“红队网络”已经暂停申请,但申请页面还没有下线,大家可以拉到最后点击原文链接,试试运气。
124 0
Sora是什么?如何使用 Sora? OpenAI 发布的文生视频工具