0


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架构图(暂时未考虑安全与负载)

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


本文转载自: https://blog.csdn.net/2301_76381024/article/details/134740156
版权归原作者 AIGC视野 所有, 如有侵权,请联系我们删除。

“chatgpt AI agent插件架构设计(nlp插件)”的评论:

还没有评论