一、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架构图(暂时未考虑安全与负载)
<注>部分图片来源网络,如侵权请告知删除
版权归原作者 AIGC视野 所有, 如有侵权,请联系我们删除。