"大模型的函数调用"(Large Model Function Calling)是一个涉及到在大型人工智能模型,如 GPT-4 或类似的高级深度学习模型中使用函数调用的概念。在这种情况下,函数调用可以有两种含义:

  • 内部函数调用: 这指的是大型模型在其内部运行时执行的函数调用。这些函数调用是模型的一部分,用于处理输入,执行复杂的计算,生成预测等。这些内部函数是模型架构的一部分,对于最终用户通常是不可见的。

  • 外部API调用: 另一种情况是大型模型如 GPT-4 被设计为能够与外部系统交互,比如通过 API 调用执行某些任务。例如,一个大型模型可能被编程为在需要时调用外部数据库查询函数、调用图像处理服务或执行其他外部功能。

在第二种情况下,大型模型的函数调用通常是指模型作为其生成过程的一部分调用外部服务或功能的能力。这种能力极大地扩展了模型的用途,使其能够在生成文本、做出决策或执行任务时,集成更广泛的信息和功能。

接下来本文将做个function calling 外部API调用的demo实例,采用的大模型是文心一言

  1. 准备工作

    安装qianfan
pip install qianfan

前往百度智能云官网https://console.bce.baidu.com/qianfan/chargemanage/list申请大模型app key和secret key

  1. 需求概述

实现一个旅游景点推荐以及自动下单的功能

  • 用户给大模型输入:想去北京天安门附近的10公里内的旅游景点
  • 大模型理解输入,获取关键词position:天安门,expect_distance:10000,返回需要调用的api function name:
  • 用户输入:就去天坛公园吧
  • 大模型理解输入,返回需要调用的api function name

代码实现

import qianfan
import re with open('prompt.txt',encoding='utf-8') as f:
prompt = f.read() def function_calling(prompt):
print("user-prompt:"+prompt)
model = "ERNIE-Bot"
print('=' * 30,'大模型-',model,' 输出 ', '='*30,"\n")
response = chat_comp.do(
model=model,
messages=[{
"role": "user",
"content": prompt
}],
temperature=0.000000001,
functions=[
{
"name": "attractionRecommend",
"description": "景点推荐",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "地址信息,包括省市、街道、门牌号等"
},
"expect_distance": {
"type": "int",
"description": "距离"
}
},
"required": ["location"]
},
"responses": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "商品id"
},
"price": {
"type": "int",
"description": "商品价格"
},
"food": {
"type": "string",
"description": "商品名称"
},
},
},
},
{
"name": "attractionReservation",
"description": "景点预约",
"parameters": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "景点id"
},
"food": {
"type": "string",
"description": "景点名称"
},
},
"required": ["id"]
},
"responses": {
"type": "object",
"properties": {
"result": {
"type": "string",
"description": "是否预约成功"
},
}
},
}
]
) print(response)
return response
chat_comp = qianfan.ChatCompletion(ak="xxx", sk="xxx") prompt_list = re.split(r"----", prompt) for prompt in prompt_list:
response = function_calling(prompt)
#拿到response后,解析json,调用自定义的数据表api和下单api
print("\n")
print('=' * 30,"大模型响应结束","="*30)

文心一言大模型-function Calling的应用的更多相关文章

  1. 百度生成式AI产品文心一言邀你体验AI创作新奇迹:百度CEO李彦宏详细透露三大产业将会带来机遇(文末附文心一言个人用户体验测试邀请码获取方法,亲测有效)

    目录 中国版ChatGPT上线发布 强大中文理解能力 智能文学创作.商业文案创作 图片.视频智能生成 中国生成式AI三大产业机会 新型云计算公司 行业模型精调公司 应用服务提供商 总结 获取文心一言邀 ...

  2. 文心一言,通营销之学,成一家之言,百度人工智能AI大数据模型文心一言Python3.10接入

    "文心"取自<文心雕龙>一书的开篇,作者刘勰在书中引述了一个古代典故:春秋时期,鲁国有一位名叫孔文子的大夫,他在学问上非常有造诣,但是他的儿子却不学无术,孔文子非常痛心 ...

  3. 阿里版ChatGPT:通义千问pk文心一言

    随着 ChatGPT 热潮卷起来,百度发布了文心一言.Google 发布了 Bard,「阿里云」官方终于也宣布了,旗下的 AI 大模型"通义千问"正式开启测试! 申请地址:http ...

  4. 【对比】文心一言对飚ChatGPT实操对比体验

    前言 缘由 百度[文心一言]体验申请通过 本狗中午干饭时,天降短信,告知可以体验文心一言,苦等一个月的实操终于到来.心中这好奇的对比心理油然而生,到底是老美的[ChatGPT]厉害,还是咱度娘的[文心 ...

  5. 【个人首测】百度文心一言 VS ChatGPT GPT-4

    昨天我写了一篇文章GPT-4牛是牛,但这几天先别急,文中我测试了用GPT-4回答ChatGPT 3.5 和 Notion AI的问题,大家期待的图片输入也没有出现. 昨天下午百度发布了文心一言,对标C ...

  6. 获取了文心一言的内测及与其ChatGPT、GPT-4 对比结果

    百度在3月16日召开了关于文心一言(知识增强大语言模型)的发布会,但是会上并没现场展示demo.如果要测试的文心一言 也要获取邀请码,才能进行测试的. 我这边通过预约得到了邀请码,大概是在3月17日晚 ...

  7. 文心大模型api使用

    文心大模型api使用 首先,我们要获取硅谷社区的连个key 复制两个api备用 获取Access Token 获取access_token示例代码 之后就会输出 作文创作 作文创作:作文创作接口基于文 ...

  8. PowerDesigner 学习:十大模型及五大分类

    个人认为PowerDesigner 最大的特点和优势就是1)提供了一整套的解决方案,面向了不同的人员提供不同的模型工具,比如有针对企业架构师的模型,有针对需求分析师的模型,有针对系统分析师和软件架构师 ...

  9. PowerDesigner 15学习笔记:十大模型及五大分类

    个人认为PowerDesigner 最大的特点和优势就是1)提供了一整套的解决方案,面向了不同的人员提供不同的模型工具,比如有针对企业架构师的模型,有针对需求分析师的模型,有针对系统分析师和软件架构师 ...

  10. AI大模型学习了解

    # 百度文心 上线时间:2019年3月 官方介绍:https://wenxin.baidu.com/ 发布地点: 参考资料: 2600亿!全球最大中文单体模型鹏城-百度·文心发布 # 华为盘古 上线时 ...

随机推荐

  1. SpringBoot拦截器和动态代理有什么区别?

    在 Spring Boot 中,拦截器和动态代理都是用来实现功能增强的,所以在很多时候,有人会认为拦截器的底层是通过动态代理实现的,所以本文就来盘点一下他们两的区别,以及拦截器的底层实现. 1.拦截器 ...

  2. 探秘公有IP地址与私有IP地址的区别及其在路由控制中的作用

    引言 IP地址是互联网通信中至关重要的组成部分.虽然在前一章节我们讲解了IP一些基础知识,但在我们日常生活中,我们经常听到公有IP地址和私有IP地址这两个术语.那么,公有IP地址和私有IP地址有何区别 ...

  3. MySQL 的 InnoDB 存储引擎简介

    MySQL 是世界上最流行的开源关系型数据库管理系统之一,而其中的存储引擎则是其关键组成部分之一.InnoDB 存储引擎在 MySQL 中扮演了重要角色,提供了许多高级功能和性能优化,适用于各种应用程 ...

  4. 使用 TensorFlow 进行机器学习

    使用 TensorFlow 进行机器学习 这是使用 TensorFlow 进行机器学习的官方代码存储库. 使用 TensorFlow(Google 最新.最好的机器学习库)开始进行机器学习. 概括 第 ...

  5. Jmeter内的参数有文件时,如何传参?

    文件类型:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet 尊重原创,转载请注明出处,谢谢!!

  6. 多源异构数据信息的融合方式0 - Dempster/Shafer 证据理论(D-S证据理论)

    Dempster/Shafer 证据理论(D-S证据理论)的大体内容如下: 一.简介: 在理论中,由互不相容的基本命题组成的完备集合Θ称为识别框架,表示对于某一问题的所有可能答案,但是只有一个答案是正 ...

  7. JDK对于Java的作用

    JDK是Java Development Kit的缩写,是Java的开发工具包(SDK).JDK 是整个 Java 的核心,包括 Java 运行环境(Java Runtime Envirnment,简 ...

  8. 手撕Vue-查找指令和模板

    接着上一篇文章,我们已经实现了提取元素到内存的过程,接下来我们要实现的是查找指令和模板. 大致的思路是这样的: 遍历所有的节点 需要判断当前遍历到的节点是一个元素还是一个文本 如果是一个元素, 我们需 ...

  9. P5445 [APIO2019] 路灯 题解

    题目链接 题目描述 给你一个 01 串,有 \(q\) 个时刻,每个时刻要么把一位取反,要么问你在过去的所有时刻中有多少个时刻 \(a\) 和 \(b-1\) 之间都为 1. 题目分析 观察题目,我们 ...

  10. 小测试:HashSet可以插入重复的元素吗?

    Set的定义是一群不重复的元素的集合容器.也就是说,只要使用Set组件,应该是要保证相同的数据只能写入一份,要么报错,要么忽略.当然一般是直接忽略. 如题,HashSet是Set的一种实现,自然也符合 ...