chatgpt AI agent插件架构设计(nlp插件)

一、NLP简介

自然语言处理(Natural Language Processing,简称NLP)是一个位于计算机科学与人工智能交叉领域的关键研究方向。它结合了语言学、计算机科学和数学等多个学科的理论与方法,旨在实现人与计算机之间的自然语言交流。

自然语言处理还包括了很多具体应用,例如:信息检索、信息抽取、文本分类与聚类、机器翻译、摘要生成、聊天机器人等等。

自20世纪50年代图灵测试提出后,机器语言处理能力的探索一直在进行。语言的复杂性和严格的语法规则使得开发精确理解和使用语言的AI算法成为一大挑战。 过去二十年里,语言建模,特别是统计和神经网络模型,在这一领域取得了重要进展。

二,Function calling功能

         大型语言模型(LLMs),如ChatGPT,虽然在文本理解和生成方面表现出色,但存在局限。例如,它们无法获取最新信息,并且只能提供文字建议而不能直接执行任务(如自动回复邮件或预订机票)。这些限制影响了它们的实际应用价值。此外,这些模型在完成训练后,只能理解到训练截止日期前的信息,例如GPT-3.5的知识只到2021年9月。

       为了解决这个问题,2023年4月,AutoGPT提出了让大型语言模型调用外部工具API的方案,大幅增强模型能力。例如,通过调用谷歌搜索API,GPT可以获得实时信息来回答问题。

          2023年6月13日,OpenAI在其0613这个模型中为其Chat模型增加了“函数调用”功能,允许模型调用外部函数。这意味着模型现在不仅能使用自身数据库知识回答问题,还能通过外部函数获取实时信息,从而更全面地解答用户的问题。

利用这种函数调用能力,通过 GPT 扩展实现以下功能:

1,在进行自然语言交流的过程中,能够调用外部工具(类似于 ChatGPT 的插件)来回答问题。
2,将用户的自然语言输入转换为调用 API 或查询数据库时所需的具体参数。
3,从非结构化的文本中提取出结构化数据。

工作原理 如下图:

三,Assistants API功能

2023年11月,OpenAI举办了首届开发者大会,将ChatGPT 4.0升级到ChatGPT 4.0-Turbo。新版本的ChatGPT不仅提高了响应速度,还将数据库更新到了2023年4月。而在自然语言处理能力方面,新版本通过显著提升上下文理解能力,扩展了上下文窗口至128K。

开发者大会上,OpenAI 发布了 Assistant API 这一重磅更新,并推出了 Threading、Knowledge Retrieval、Code Interpreter、Function Calling 四大能力

Assistants API的具体功能
1,Threading:提供持久保存且无限长度的上下文,开发人员可以不用关心上下文的存储了,而且更省钱,
2,Knowledge Retrieval:检索用户上传的文件内容,并在未来可能支持开发者自定义检索方式。
3,Code Interpreter:执行用户上传的脚本文件来解决问题,可以上传多个脚本,AI 自己会选择何时执行。
4,Function Calling:调用第三方函数,只需要告诉 AI 函数功能和请求格式,AI 自己会选择何时执行。

工作原理如下图:

Assistants API的步骤如下:

1. 在API中创建助手时,可以使用自定义指令并选择模型,也可以使用代码解析器、信息检索和函数调用这三种工具。
2. 当用户开始对话时,创建一个线程。
3. 当用户提出问题时,将消息添加至线程中。
4. 在线程上运行助手以触发响应,这一过程会自动调用相关工具。

四,NLP2SQL功能

五,AI平台NLP插件集成

 1,作者对NLP插件做了一些封装,无需编写代码,便可使用。如下图:

 2. NLP前端插件

只需引入一个公共JavaScript文件,common.js 而无需编写额外的代码,你可以轻松地集成一个基于问答的NLP插件 以下代码演示了如何将其集成到您的项目中。

<script src="./nlpConmon.js"></script>
<div id="app" class="appbox">
    <router-view />
</div>

成功后效果如下:

3. NLP后端集成

1),可以把API接口,按如下json格式,,协助集成到插件平台。

function.json格式如下:

{
   "name": "get_current_weather",
   "description": "Get the current weather in a given location",
      "parameters": {
         "type": "object",
            "properties": {
               "location": {
                  "type": "string",
                   "description": "The city and state, e.g. beijing", 
                           },
               "unit":  {
                  "type": "string",
                   "enum": ["celsius", "fahrenheit"]}, 
                   },
               "required": ["location"],
 },
}
● name: Function名称,后续模型会在需要调用函数时返回此名称。
●description: Function 的功能描述。模型通过该描述理解函数能力,并判断是否需要调用该函数。
● parameters.properties: Function 的输入参数,以对象的形式描述函数所需的参数,其中对象的 key 即为参数名。
● type:参数类型。支持 JSON Schema 协议。
● required:必填参数的参数名列表。

2),未来会通过AI平台自主注册功能,实现自动集成。如下图所示

3),NLP架构图(暂时未考虑安全与负载)

<注>部分图片来源网络,如侵权请告知删除

  • 14
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值