AIGC开发:调用openai的API接口实现简单机器人
简介
开始进行最简单的使用:通过API调用openai的模型能力
OpenAI的能力如下图:
文本生成模型
OpenAI 的文本生成模型(通常称为生成式预训练 Transformer 或大型语言模型)经过训练可以理解自然语言、代码和图像。这些模型提供文本输出来响应其输入。这些模型的输入也称为“提示”。设计提示本质上是如何“编程”大型语言模型,通常是通过提供说明或一些如何成功完成任务的示例。
Chat Completions API 聊天功能代码示例
聊天模型将消息列表作为输入,并返回模型生成的消息作为输出。尽管聊天格式旨在使多轮对话变得容易,但它对于没有任何对话的单轮任务也同样有用。
import os
from openai import OpenAI# 加载 .env 到环境变量
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())# 配置 OpenAI 服务,需要获取API_KEY
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY")
)response = client.chat.completions.create(messages=[{"role": "user","content": "hi,讲个笑话吧",}],model="gpt-3.5-turbo",
)print(response)
completions-api 补全功能代码示例
API于 2023 年 7 月收到最终更新,并且具有与新的聊天完成端点不同的界面。输入不是消息列表,而是称为提示的自由格式文本字符串。
import os
from openai import OpenAI
from dotenv import load_dotenv, find_dotenv_ = load_dotenv((find_dotenv()))
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY")
)def get_prompt(prompt, model="gpt-3.5-turbo-instruct", ):response = client.completions.create(model=model,prompt=prompt,temperature=0.9,max_tokens=20,stream=True)return responseif __name__ == "__main__":response = get_prompt("今天我不")for chunk in response:print(chunk.choices[0].text, end="")
Chat Completions vs. Completions
官网已说明停止更新Completions,推荐使用Chat Completions
简单机器人(感知上下文)
带入一些业务场景来使用,机器人最开始吸引我的就是上下文的联系,调用API的时候需要把之前的聊天内容保存并再次发过去,下面用一个简单示例演示下是如何进行处理的
import json
import os
from openai import OpenAI
from dotenv import load_dotenv, find_dotenv_ = load_dotenv(find_dotenv())
client = OpenAI(# defaults to os.environ.get("OPENAI_API_KEY")api_key=os.getenv("OPENAI_API_KEY")
)# 定义消息历史。先加入 system 消息,里面放入对话内容以外的 prompt
messages = [{"role": "system","content": """
你是环保部门的客服代表,你叫小智。可以帮助用户选择最合适的地市环保政策。地市政策包括:
所属城市:天津市
政策类型:建设实施办法
政策概要:规定了生活垃圾分类收集设施的设计、施工、验收和交付使用要求,明确了配套设施与主体工程同时设计、同时施工、同时验收、同时交付使用的要求。
适用企业类型:各类建设主体。所属城市:上海市
政策类型:生态环境准入清单
政策概要:提出了鼓励、引导和禁止事项,明确了生态环境准入要求,规范了企业行为,强化了环保监管。
适用企业类型:上海市行政区域内的企业。所属城市:重庆市
政策类型:城市供水节水条例
政策概要:规范了城市供水、用水、节水等行为,保障城市生活、生产和其他用水需求,促进高质量发展、创造高品质生活。
适用企业类型:重庆市行政区域内的供水企业和用户。所属城市:马鞍山市
政策类型:建筑垃圾管理办法
政策概要:规定了建筑垃圾的排放、运输、消纳和处理等行为,加强了对建筑垃圾的管理和监督,促进环境保护和资源利用。
适用企业类型:马鞍山市行政区域内的建设单位、施工单位和建筑垃圾运输单位。注意使用 JSON 格式输出回答。
"""}
]def get_completion(prompt, model="gpt-3.5-turbo-1106"):# 把用户输入加入消息历史messages.append({"role": "user", "content": prompt})response = client.chat.completions.create(model=model,messages=messages,temperature=0,response_format={"type": "json_object"})msg = response.choices[0].message.content# 把模型生成的回复加入消息历史。很重要,否则下次调用模型时,模型不知道上下文messages.append({"role": "assistant", "content": msg})return msgif __name__ == "__main__":get_completion("有北京的政策吗?")get_completion("城市供水有哪些政策?")get_completion("这是哪个城市的政策?")print(messages)
返回结果
[{"role": "system","content": "\n你是环保部门的客服代表,你叫小智。可以帮助用户选择最合适的地市环保政策。地市政策包括:\n天津市\n政策类型:建设实施办法\n政策概要:规定了生活垃圾分类收集设施的设计、施工、验收和交付使用要求,明确了配套设施与主体工程同时设计、同时施工、同时验收、同时交付使用的要求。\n适用企业类型:各类建设主体。\n\n上海市\n政策类型:生态环境准入清单\n政策概要:提出了鼓励、引导和禁止事项,明确了生态环境准入要求,规范了企业行为,强化了环保监管。\n适用企业类型:上海市行政区域内的企业。\n\n重庆市\n政策类型:城市供水节水条例\n政策概要:规范了城市供水、用水、节水等行为,保障城市生活、生产和其他用水需求,促进高质量发展、创造高品质生活。\n适用企业类型:重庆市行政区域内的供水企业和用户。\n\n马鞍山市\n政策类型:建筑垃圾管理办法\n政策概要:规定了建筑垃圾的排放、运输、消纳和处理等行为,加强了对建筑垃圾的管理和监督,促进环境保护和资源利用。\n适用企业类型:马鞍山市行政区域内的建设单位、施工单位和建筑垃圾运输单位。\n"},{"role": "user","content": "有北京的政策吗?"},{"role": "assistant","content": "很抱歉,我没有北京市的政策信息。如果您需要了解北京市的环保政策,建议您直接咨询北京市环保部门或者相关政府部门,他们会提供最准确和最及时的信息。"},{"role": "user","content": "城市供水有哪些政策?"},{"role": "assistant","content": "城市供水的政策主要包括以下几个方面:\n\n1. 水资源管理政策:针对城市供水的水资源管理,包括水资源保护、水资源配置、水资源利用效率等方面的政策。\n\n2. 水质管理政策:针对城市供水的水质管理,包括水源地保护、水处理工艺、水质监测等方面的政策。\n\n3. 供水设施建设政策:针对城市供水设施的建设和维护,包括供水管网建设、水厂建设、水泵站建设等方面的政策。\n\n4. 供水价格管理政策:针对城市供水的价格管理,包括水价制定、水费收取、价格监管等方面的政策。\n\n5. 供水节水政策:针对城市供水的节水管理,包括水资源合理利用、水损失控制、水价激励等方面的政策。\n\n具体的城市供水政策会因地区而异,您可以咨询当地的环保部门或者供水公司,了解更详细的政策信息。"},{"role": "user","content": "这是哪个城市的政策?"},{"role": "assistant","content": "这是一个通用的描述,适用于各个城市的供水政策。不同城市的具体政策可能会有所不同,您可以咨询所在城市的环保部门或供水公司,获取更准确的信息。"}
]
相关文章:
AIGC开发:调用openai的API接口实现简单机器人
简介 开始进行最简单的使用:通过API调用openai的模型能力 OpenAI的能力如下图: 文本生成模型 OpenAI 的文本生成模型(通常称为生成式预训练 Transformer 或大型语言模型)经过训练可以理解自然语言、代码和图像。这些模型提供文…...
c基础(二)
指针: 含义:是一个值,一个值代表着一个内存地址,类似于存放路径 * 运算符 : 1 字符*表示指针 作用:通常跟在类型关键字的后面,表示指针指向的是什么类型的值 int * foo, * bar;声明指针后会…...
人工智能趋势报告解读:ai野蛮式生长的背后是机遇还是危机?
近期,Enterprise WordPress发布了生成式人工智能在营销中的应用程度的报告,这是一个人工智能迅猛发展的时代,目前人工智能已经广泛运用到内容创作等领域,可以预见的是人工智能及其扩展应用还将延伸到我们工作与生活中的方方面面。…...
三、C语言中的分支与循环—goto语句 (10) (完)
在C语言中,goto语句允许程序无条件地跳转到同一函数内的标记位置。这个标记位置通过一个标签和冒号(:)来标示。goto语句可以用于从深层嵌套的循环或条件语句中直接跳出,或者跳过某些代码执行。尽管goto语句在某些情况下可以使程序逻辑变得清晰࿰…...
RabbitMQ 常见问题
1. 如何保证消息顺序消费 在RabbitMQ中,消息最终会保存在队列中,在同一个队列中,消息是顺序的,保持先进先出的原则,这个由Rabbitmq保证。而不同队列中的消息,RabbitMQ 是无法保证其顺序性。顺序消费主要是…...
阶段二-Day10-日期类
日期类结构: 1.java.util.Date是日期类 2.DateFormat是日期格式类、SimpleDateFormat是日期格式类的子类 Timezone代表时区 3.Calendar是日历类,GregorianCalendar是日历的子类 一. 常用类-Date 1.1 Date构造方法 Date(long date) 使用给定的毫秒时间价值构建…...
多任务并行处理相关面试题
我自己面试时被问过两次多任务并行相关的问题: 假设现在有10个任务,要求同时处理,并且必须所有任务全部完成才返回结果 这个面试题的难点是: 既然要同时处理,那么肯定要用多线程。怎么设计多线程同时处理任务呢&…...
Shell脚本学习笔记
1. 写在前面 工作中,需要用到写一些shell脚本去完成一些简单的重复性工作, 于是就想系统的学习下shell脚本的相关知识, 本篇文章是学习shell脚本整理的学习笔记,内容参考主要来自C语言中文网, 学习过程中,…...
ROS-安装xacro
安装 运行下列命令进行安装,xxxxxx处更改为自己的版本 sudo apt-get install ros-xxxxxx-xacro运行 输入下列命令 roscd xacro如果没有报错,并且进入了xacro软件包的目录,则表示安装成功。 参考: [1]https://wenku.csdn.net/ans…...
为什么说 $mash 是 Solana 上最正统的铭文通证?
早在 2023 年的 11 月,包括 Solana、Avalanche、Polygon、Arbitrum、zkSync 等生态正在承接比特币铭文生态外溢的价值。当然,因铭文赛道过于火爆,当 Avalanche、BNB Chain 以及 Polygon 等链上 Gas 飙升至极值,Arbitrum、zkSync 等…...
安装elasticsearch、kibana、IK分词器、扩展IK词典
安装elasticsearch、kibana、IK分词器、扩展IK词典 后面还会安装kibana,这个会提供可视化界面方面学习。 需要注意的是elasticsearch和kibana版本一定要一样!!! 否则就像这样 elasticsearch 1、创建网络 因为我们还需要部署k…...
Spring中常见的BeanFactory后处理器
常见的BeanFacatory后处理器 先给出没有添加任何BeanFactory后处理器的测试代码 public class TestBeanFactoryPostProcessor {public static void main(String[] args) {GenericApplicationContext context new GenericApplicationContext();context.registerBean("co…...
FPGA LCD1602驱动代码 (已验证)
一.需求解读 1.需求 在液晶屏第一行显示“HELLO FPGA 1234!” 2. 知识背景 1602 液晶也叫 1602 字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵 型液晶模块。它由若干个 5X7 或者 5X11 等点阵字符位组成,每个点阵字符位都可以显示一 个字符,每位之间有一个点距的…...
c++编程要养成的好习惯
1、缩进 你说有缩进看的清楚还是没缩进看的清楚 2、i和i i运行起来和i更快 3、 n%20和n&1 不要再用n%20来判断n是不是偶数了,又慢又土,用n&10,如果n&10就说明n是偶数 同理,n&11说明n是奇数 4、*2和<<…...
后台管理项目的多数据源方案
引言 在互联网开发公司中,往往伴随着业务的快速迭代,程序员可能没有过多的时间去思考技术扩展的相关问题,长久下来导致技术过于单一。为此最近在学习互联网思维,从相对简单的功能开始做总结,比如非常常见的基础数据的…...
视频美颜SDK趋势畅想:未来发展方向与应用场景
当下,视频美颜SDK正不断演进,本文将深入探讨视频美颜SDK的发展趋势,探讨未来可能的方向和广泛的应用场景。 1.深度学习与视频美颜的融合 未来,我们可以期待看到更多基于深度学习算法的视频美颜SDK,为用户提供更高质量…...
C++ const 限定符的全面介绍
C const 限定符的全面介绍 1. const 修饰基本数据类型 定义 const 修饰的基本数据类型变量,值不可改变。 语法 const type variable value;特点 不可变性,增加代码可读性。 作用 定义不可修改的常量。 使用场景 全局常量、配置项。 注意事项…...
Vue 中的 ref 与 reactive:让你的应用更具响应性(上)
🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…...
华为云CCE-集群内访问-根据ip访问同个pod
华为云CCE-集群内访问-根据ip访问同个pod 问题描述:架构如下:解决方法: 问题描述: 使用service集群内访问时,由于启用了两个pod,导致请求轮询在两个pod之间,无法返回正确的结果。 架构如下&am…...
Kasada p.js (x-kpsdk-cd、x-kpsdk-ct、integrity)
提供x-kpsdk-cd的API服务 详细请私信~ 可试用~ V:zhzhsgg 一、简述 integrity是通过身份验证Kasada检测机器人流量后获得的一个检测结果(数据完整性) x-kpsdk-cd 是经过编码计算等等获得。当你得到正确的解决验证码值之后,解码会看到如下图…...
Thinkphp 5框架学习
TP框架主要是通过URL实现操作 http://servername/index.php/模块/控制器/操作/参数/值.. index.php 为入口文件,在 public 目录内的 index.php 文件; 模块在 application 目录下默认有一个 index 目录,这就是一个模块; 而在 index 目录下有一个 contro…...
麒麟云增加计算节点
一、安装基座系统并配置好各项设置 追加的计算节点服务器,安装好系统,把主机名、网络网线(网线要和其他网线插的位置一样)、hosts这些配置好,在所有节点的/etc/hosts里面添加信息 在控制节点添加/kylincloud/multinod…...
使用Redis进行搜索
文章目录 构建反向索引 构建反向索引 在Begin-End区域编写 tokenize(content) 函数,实现文本标记化的功能,具体参数与要求如下: 方法参数 content 为待标记化的文本; 文本标记的实现:使用正则表达式提取全小写化后的…...
Oracle修改用户密码
文章目录 Oracle修改用户密码Oracle用户锁定常见的两种状态Oracle用户锁定和解锁 Oracle修改用户密码 使用sys或system使用sysdba权限登录,然后执行以下命令修改密码: alter user 用户名 identified by 密码;密码过期导致的锁定,也通过修改…...
LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 描述: 圣诞活动预…...
Vue解决跨域问错误:has been blocked by CORS policy 后端跨域配置
解决跨域问题后端跨域配置代码: /*** 作者 hua* 描述 跨域配置*/ Configuration public class WebConfiguration implements WebMvcConfigurer {/*** 跨域配置对象* return CorsConfiguration对象*/private CorsConfiguration corsConfig() {CorsConfiguration cor…...
【谷歌云】注册谷歌云 创建Compute Engine
文章目录 一、Google Cloud注册1.1 账号信息1.2 付款信息验证1.3 验证成功 二、Compute Engine创建2.1 启动Compute Engine API2.2 创建实例2.3 新建虚拟机实例2.4 等待实例创建完成2.5 查看虚拟机配置信息2.6 创建防火墙规则2.7 SSH远程连接虚拟机 三、参考链接 一、Google Cl…...
面试数据库八股文五问五答第四期
面试数据库八股文五问五答第四期 作者:程序员小白条,个人博客 相信看了本文后,对你的面试是有一定帮助的! ⭐点赞⭐收藏⭐不迷路!⭐ 1)什么情况下 mysql 会索引失效? 不使用索引列进行查询&a…...
2023 年中国金融级分布式数据库市场报告:TiDB 位列领导者梯队,创新能力与增长指数表现突出
近日,沙利文联合头豹研究院发布了中国数据库系列报告之《2023 年中国金融级分布式数据库市场报告》。 报告认为,金融行业对于分布式数据库信任度与认可度正在逐步提高,中国金融级分布式数据库市场正处于成熟落地的高增长阶段,行业…...
基于ExoPlayer的缓存方案实现
音视频APP 的一个必备功能就是在播放的时候会持续缓存完整个音频,同时进度条会更新缓存进度。但是目前Google推出的播放器ExoPlayer本身并没有提供什么方便的接口去实现这个功能,因此大多数的开发者可能会使用AndroidVideoCache 开源库来实现缓存。 AndroidVideoCache 的原理…...
网站首页怎么用dw做/外贸推广建站
在oracle数据库开发应用中,查询时间date类型的sql比较多,我相信大家也见过“trunc(created)>TO_DATE(2013-12-14, YYYY-MM-DD)”这类的写法,这样写真的好吗?下面我们做过实验 大家看到了吧?好不好的我就不说了&…...
网站外部链接合理建设/关键词优化系统
IDM下载器安卓版是国外热门的多线程下载工具,一款非常优秀的下载神器,支持多媒体下载、自动捕获链接、自动识别文件名、静默下载、批量下载、计划下载任务、站点抓取、队列与网盘支持等 IDM下载速度据说比普通下载器快500%,基本能达到带宽的…...
规范门户网站建设/石家庄关键词排名首页
随着我国社会经济的快速发展,“十二五”期间政府继续大力推动“平安城市”、“智慧城市”建设,另外安防监控设备企业自身的创新拓展加之与IT企业、电信企业、家电企业的交融发展,极大地扩充了安防的内涵和应用领域。我国安防行业又将进入一个…...
刷网站排名软件/营销推广策略
雷锋网3月29日消息,今日阿里云在云栖大会 深圳峰会发布ET医疗大脑,宣布正式进入医疗AI领域。据称,经过一年多的研究训练,人工智能ET可在患者虚拟助理、医学影像、精准医疗、药效挖掘、新药研发、健康管理等领域承担医生助手的角色…...
郑州优化网站公司有哪些/怎么让付费网站免费
24日,江苏省通信行业网络安全防护大队在无锡举行成立仪式。防护大队成员主要由我省通信行业主管部门、基础电信企业、互联网企业等单位优秀专业人员组成,并吸收了往届江苏省网络安全技能竞赛的优秀选手,总人数约120名。今后,防护大…...
做网站需要搭建服务器么/免费域名空间申请网址
让新萝卜家园XP纯净版系统快速关机的设置方法分享给大家。缓慢的系统启动过程,常常让人感觉等得抓狂。特别是有急事使用电脑的时候。还有电脑慢腾腾的关机,让人沮丧不已。其实,XP系统早就准备好了一个快速开关机的捷径,就是待机与…...