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

本文涉及的产品
交互式建模 PAI-DSW,每月250计算时 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,100CU*H 3个月
简介: 伴随着生成式人工智能技术发展,进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


相关文章
|
7月前
|
机器学习/深度学习 数据可视化 数据处理
OpenAI Gym 高级教程——可解释性和可视化
OpenAI Gym 高级教程——可解释性和可视化
300 1
|
16天前
|
API 数据库 决策智能
基于百炼平台qwen-max的api 打造一套 检索增强 图谱增强 智能工具调用决策的智能体
本文介绍了一种基于阿里云百炼平台的`qwen-max` API构建的智能体方案,该方案集成了检索增强、图谱增强及智能工具调用决策三大模块,旨在通过结合外部数据源、知识图谱和自动化决策提高智能回答的准确性和丰富度。通过具体代码示例展示了如何实现这些功能,最终形成一个能灵活应对多种查询需求的智能系统。
96 10
|
16天前
|
自然语言处理 NoSQL API
基于百炼平台qwen-max的api 打造一套 检索增强 图谱增强 基于指令的智能工具调用决策 智能体
基于百炼平台的 `qwen-max` API,设计了一套融合检索增强、图谱增强及指令驱动的智能工具调用决策系统。该系统通过解析用户指令,智能选择调用检索、图谱推理或模型生成等工具,以提高问题回答的准确性和丰富性。系统设计包括指令解析、工具调用决策、检索增强、图谱增强等模块,旨在通过多种技术手段综合提升智能体的能力。
|
17天前
|
Go 开发工具
百炼-千问模型通过openai接口构建assistant 等 go语言
由于阿里百炼平台通义千问大模型没有完善的go语言兼容openapi示例,并且官方答复assistant是不兼容openapi sdk的。 实际使用中发现是能够支持的,所以自己写了一个demo test示例,给大家做一个参考。
|
1月前
|
传感器 机器学习/深度学习 自然语言处理
智能代理(Agent)在工具调用与协作中的应用实践
随着人工智能技术的飞速发展,智能代理(Agent)技术已成为解决复杂任务的关键手段。本文深入探讨了如何设计灵活的工具调用机制和构建高效的单/多Agent系统以提升任务执行效率。文章不仅涵盖了相关的理论知识,还提供了丰富的实践案例和代码实现,旨在帮助读者深入理解和应用智能代理技术。
144 2
|
2月前
LangChain-26 Custom Agent 自定义一个Agent并通过@tool绑定对应的工具 同时让大模型自己调用编写的@tools函数
LangChain-26 Custom Agent 自定义一个Agent并通过@tool绑定对应的工具 同时让大模型自己调用编写的@tools函数
95 3
LangChain-26 Custom Agent 自定义一个Agent并通过@tool绑定对应的工具 同时让大模型自己调用编写的@tools函数
|
2月前
|
人工智能 自然语言处理 自动驾驶
【通义】AI视界|微软和 OpenAI 将向媒体提供1000万美元资助,推动其使用AI工具
本文概览了近期科技领域的五大热点事件,包括微软与OpenAI联手资助媒体使用AI工具、OpenAI任命前白宫官员为首任首席经济学家、特斯拉FSD系统遭调查、英伟达市值逼近全球第一、以及AMD新一代锐龙9000X3D系列处理器即将上市的消息。更多资讯,请访问通义官网。
|
3月前
|
人工智能
AI工具:Gnomic智能体
AI工具:Gnomic智能体
59 0
|
2月前
LangChain-24 Agengts 通过TavilySearch Agent实现检索内容并回答 AgentExecutor转换Search 借助Prompt Tools工具
LangChain-24 Agengts 通过TavilySearch Agent实现检索内容并回答 AgentExecutor转换Search 借助Prompt Tools工具
43 0
|
6月前
|
人工智能 自然语言处理 前端开发
你要的AI Agent工具都在这里
只有让LLM(大模型)学会使用工具,才能做出一系列实用的AI Agent,才能发挥出LLM真正的实力。本篇,我们让AI Agent使用更多的工具,比如:外部搜索、分析CSV、文生图、执行代码等。
你要的AI Agent工具都在这里

热门文章

最新文章

下一篇
DataWorks