通过python 调用OpenAI api_key提交问题解答
通过python 调用OpenAI api_key提交问题解答
- ✨可以通过网页版的
jupyter notebook
调用,也可以通过spyder窗口等IDE窗口.
🌼通过python 调用OpenAI api_key接口,可以避免国内网页不能访问的问题。前提是需要自己已经注册了OpenAI
帐号,并且在帐号内申请了api_key
才行。
jupyter notebook
调用
import openai
openai.api_key = "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"
def completion(prompt):completions = openai.Completion.create(engine="text-davinci-002",prompt=prompt,max_tokens=1024,n=1,stop=None,temperature=0.8,)message = completions.choices[0].textreturn message
print(completion("基于Keil生成一个8051单片机串口通讯的代码"))
- 📍返回的结果:
需要实现的功能1) 串口中断,当收到第一个字节的时候,接收,直到收到数据完成的标志,保存在数组中。2) 开启接收中断,接收一个字节,当收到第一个字节的时候,接收,直到收到数据完成的标志,保存在数组中。#### 代码实现#include<reg52.h>#define FOSC 11059200L
#define BAUD 9600
#define T1MS (65536-FOSC/12/BAUD)
#define N1 0x40
#define N2 0x00
#define BUFFER_SIZE 16sbit LED = P1^1;
sbit rs = P3^6;
sbit rw = P3^7;
sbit en = P3^5;
sbit buzzer = P2^2; unsigned char code table[]={0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46,0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46,0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46,0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46};void delay(int i)
{while(i--);
}void write_com(unsigned char com)
{P0 = com;rs = 0;rw = 0;en = 1;delay(5);en = 0;
}void write_dat(unsigned char dat)
{P0 = dat;rs = 1;rw = 0;en = 1;delay(5);en = 0;
}void init()
{write_com(0x38);write_com(0x01);write_com(0x06);write_com(0x0c);write_com(0x0f);
}void write_str(unsigned char y, unsigned char x, unsigned char *s)
{unsigned char addr;if(y == 1)addr = 0x80 + x - 1;else if(y == 2)addr = 0xc0 + x - 1;write_com(addr);while(*s){write_dat(*s);s++;}
}void write_cmd(unsigned char y, unsigned char x)
{unsigned char addr;if(y == 1)addr = 0x80 + x - 1;else if(y == 2)addr = 0xc0 + x - 1;write_com(addr);
}void lcd_pulse()
{en=1;delay(5);en=0;
}void write_com1(unsigned char command)
{rs=0;rw=0;P0=command;lcd_pulse();
}void write_dat1(unsigned char dat)
{rs=1;rw=0;P0=dat;lcd_pulse();
}void lcd_init()
{write_com1(0x38);write_com1(0x06);write_com1(0x0c);write_com1(0x01);write_com1(0x80);
}void write_char(unsigned char c)
{write_dat1(c);
}void write_string(unsigned char *s)
{while(*s){write_char(*s);s++;}
}void timer0_init(void)
{TMOD = 0x01; TH0=T1MS;TL0=T1MS;ET0=1; EA=1;TR0=1;
}unsigned char hours;
unsigned char minutes;
unsigned char seconds;
unsigned char t;
unsigned char time_update;
unsigned char count;
unsigned char data[BUFFER_SIZE];
unsigned char *p;
void timer0_interrupt() interrupt 1//模拟中断,每1s中断一次
{TH0=T1MS;TL0=T1MS;write_cmd(1,1);write_char(table[hours/10]);write_char(table[hours%10]);write_char(':');write_char(table[minutes/10]);write_char(table[minutes%10]);write_char(':');write_char(table[seconds/10]);write_char(table[seconds%10]);seconds++;time_update=1;
}void timer1_init()
{TH1=N1;TL1=N2;ET1=1;EA=1;TR1=1;
}void timer1_interrupt() interrupt 3
{TH1=N1;TL1=N2;if(seconds==60){seconds=0;minutes++;}if(minutes==60){minutes=0;hours++;}if(hours==24)hours=0;
}void init_serial()
{TMOD=0x20;SCON=0x50;TL1=N1;TH1=N2;ES=1;EA=1;TR1=1;count=0;p=data;
}void serial_interrupt(void) interrupt 4
{if(TI==1){TI=0;count=0;p=data;}else{SBUF=0x41+count;count++;if(count==BUFFER_SIZE){count=0;p=data;}elsep++;RI=0;}
}void main()
{ write_cmd(1,1);write_str(2,1," TEMPERATURE ");timer1_init();timer0_init();lcd_init();init_serial();while(1){if(count==BUFFER_SIZE){write_cmd(1,1);write_str(2,1," TEMPERATURE ");write_str(1,9,p);write_str(2,9,p+8);}}
}
🌻spyder窗口调用
# -*- coding: utf-8 -*-
"""
Spyder EditorThis is a temporary script file.
"""import openai
openai.api_key = "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"def completion(prompt):completions = openai.Completion.create(engine="text-davinci-002",prompt=prompt,max_tokens=2048,n=1,stop=None,temperature=0.8,)message = completions.choices[0].textreturn messageprint(completion("stm32f103vct6串口1初始化代码"))
- 📜openai调用,提问
stm32f103vct6串口1初始化代码
返回数据:
波特率为115200//串口初始化函数
//bound:波特率
void uart1_init(u32 bound)
{//GPIO端口设置GPIO_InitTypeDef GPIO_InitStructure;USART_InitTypeDef USART_InitStructure;NVIC_InitTypeDef NVIC_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO, ENABLE); //使能USART1,GPIOA,AFIO时钟GPIO_PinRemapConfig(GPIO_Remap_USART1, DISABLE); //取消复用GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.09GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化PA9GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化PA10//Usart1 NVIC 配置NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;//串口1中断通道NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//抢占优先级3NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //子优先级3NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能NVIC_Init(&NVIC_InitStructure); //根据指定的参数初始化VIC寄存器//USART 初始化设置USART_InitStructure.USART_BaudRate = bound;//串口设置波特率USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字长为8位数据格式USART_InitStructure.USART_StopBits = USART_StopBits_1;//一个停止位USART_InitStructure.USART_Parity = USART_Parity_No;//无奇偶校验位USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无硬件数据流控制USART_InitStructure.USART_Mode = USART_Mode_Tx|USART_Mode_Rx; //收发模式USART_Init(USART1, &USART_InitStructure); //初始化串口1USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//开启串口接受中断USART_Cmd(USART1, ENABLE); //使能串口1}
//串口1中断服务程序
//注意,读取USARTx->SR能避免莫名其妙的错误
void USART1_IRQHandler(void) //串口1中断服务程序
{u8 Res;
#if SYSTEM_SUPPORT_OS //如果使用OS,由于串口接收中断优先级不能设置过高,因此当遇到串口错误时直接调用OS的相应服务OSIntEnter();
#endifif(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //接收中断(接收到的数据必须是0x0d 0x0a结尾){
#if EN_USART1_RX //如果使能接收Res =USART_ReceiveData(USART1);//(USART1->DR); //读取接收到的数据if((USART_RX_STA&0x8000)==0)//接收未完成{if(USART_RX_STA&0x4000)//接收到了0x0d{if(Res!=0x0a)USART_RX_STA=0;//接收错误,重新开始else USART_RX_STA|=0x8000; //接收完成了 }else //还没收到0X0D{ if(Res==0x0d)USART_RX_STA|=0x4000;else{USART_RX_BUF[USART_RX_STA&0X3FFF]=Res ;USART_RX_STA++;if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;//接收数据错误,重新开始接收 } }} if(USART_RX_STA&0x8000)//接收完成{USART_RX_BUF[USART_RX_STA&0X3FFF]=0;//添加结束符memcpy(USART_TX_BUF,USART_RX_BUF,USART_REC_LEN);USART_RX_STA=0;//接收状态标记清零 }
#endif } else if(USART_GetITStatus(USART1, USART_IT_TXE) != RESET) //发送中断{
#if EN_USART1_TX //如果使能了接收USART1->DR = Tx1Buffer[Tx1Counter++]; //写DR寄存器数据发送if(Tx1Counter == Tx1Count){USART1->CR1 &= ~USART_CR1_TXEIE; //关闭TX发送中断}
#endif}print(completion("stm32f103vct6串口1初始化代码"))
,总线资源申请好后,调用这个函数初始化return 0;
}//不使用串口,释放资源
static void __exit uart_exit(void)
{//释放设备号unregister_chrdev(dev_no,DEV_NAME);//释放设备结构体cdev_del(&uart_cdev);//删除设备类device_destroy(uart_class,MKDEV(dev_no,0));//释放设备类class_destroy(uart_class);//释放资源//1.释放硬件资源:释放ioremap的空间iounmap(va);//2.释放设备号release_region(0x40011000,0x400);
}module_init(uart_init);
module_exit(uart_exit);
MODULE_LICENSE("GPL");
🍁以上不管那种方式调用,都需要提前安装好
openai
模块
openai模块安装
- openai模块安装命令:
pip install openai
jupyter notebook安装
- 安装指令:
pip install jupyter
- 🚩安装完成后,启动命令:
jupyter notebook
spyder安装
- spyder安装命令:
pip install spyder
- 🚩安装完成后,启动命令:
spyder
相关文章:
通过python 调用OpenAI api_key提交问题解答
通过python 调用OpenAI api_key提交问题解答✨可以通过网页版的jupyter notebook调用,也可以通过spyder窗口等IDE窗口. 🌼通过python 调用OpenAI api_key接口,可以避免国内网页不能访问的问题。前提是需要自己已经注册了OpenAI帐号ÿ…...
图表控件LightningChart .NET再破世界纪录,支持实时可视化 1 万亿个数据点
LightningChart.NET SDK 是一款高性能数据可视化插件工具,由数据可视化软件组件和工具类组成,可支持基于 Windows 的用户界面框架(Windows Presentation Foundation)、Windows 通用应用平台(Universal Windows Platfor…...
什么是响应性?
响应性: 这个术语在今天的各种编程讨论中经常出现,但人们说它的时候究竟是想表达什么意思呢?本质上,响应性是一种可以使我们声明式地处理变化的编程范式。一个经常被拿来当作典型例子的用例即是 Excel 表格: 这里单元…...
黑马】后台管理176-183
一、新建订单管理的分支二、创建一个订单管理的vue文件进行组件页面的路由配置import Order from ../components/order/Order.vue{path:/orders,component:Order},注意上面的components不要忘记少加一个s!三,获取后台数据面包屑导航粘贴过来文本输入框&a…...
Typescript - 类型守卫(typeof / in / instanceof / 自定义类型保护的类型谓词)通俗易懂详细教程
前言 类型守卫用于获取变量类型信息,通常使用在条件块语句中。类型守卫是返回布尔值的常规函数,接受一个类型并告诉 TypeScript 是否可以缩小到更具体的类型。类型守卫具有唯一的属性,可以确保测试的值返回的是布尔值类型。 TypeScript 使用了…...
6.8 左特征向量
特征值很复杂,除了普通的特征向量外,还有左特征向量和广义特征向量。先说说比较容易的左特征向量吧。它是这样定义的,AAA是一个矩阵,λ\lambdaλ是它的一个特征值,下面的向量yyy就是矩阵关于特征值的左特征向量left ei…...
10个自动化测试框架,测试工程师用起来
软件行业正迈向自主、快速、高效的未来。为了跟上这个高速前进的生态系统的步伐,必须加快应用程序的交付时间,但不能以牺牲质量为代价。快速实现质量是必要的,因此质量保证得到了很多关注。为了满足卓越的质量和更快的上市时间的需求…...
城市C友会【官方牵头更多的线下交流的机会,你有怎样的期待?】
文章目录🌟 课前小差🌟 长沙线下🌟 C友会你也可以是组织者🌟 线下交流提升价值🌟 官方与抖音合作?🌟 23年动起来🌟 写在最后🌟 课前小差 哈喽,大家好&#x…...
CSDN 编程竞赛二十七期题解
竞赛总览 CSDN 编程竞赛二十七期:比赛详情 (csdn.net) 四道题都不难,本来十分钟内就可以解决,但是这次竞赛bug比较多,体验不是很好。 竞赛题解 题目1、幸运数字 小艺定义一个幸运数字的标准包含三条:1、仅包含4或…...
RMI攻击中的ServerClient相互攻击反制
前言 前文中,我们分析了攻击Registry的两种方式,这里我们接着前面的内容,分析Server和Client的相互攻击方式。 Attacked Server Attacked By Client 首先我们搭建个示例,这里直接注册端和服务端放置在一起。 package pers.rm…...
值类型和引用类型
一、值类型和引用类型示例: 值类型:基本数据类型系列,如:int,float,bool,string,数组和结构体等。 引用类型:如:指针,slice切片,map&a…...
后端开发必懂nginx面试40问
什么是Nginx? Nginx是一个 轻量级/高性能的反向代理Web服务器,用于 HTTP、HTTPS、SMTP、POP3 和 IMAP 协议。他实现非常高效的反向代理、负载平衡,他可以处理2-3万并发连接数,官方监测能支持5万并发,现在中国使用ngin…...
Redis为什么这么快?
1.基于内存存储实现 在MySQL数据库中,所有的读写操作都要通过IO的方式从硬盘中获取。在Redis中,所有的操作都是基于内存实现的,从而减少IO操作提高数据库性能。 2.高效的数据结构 SAS简单动态字符串 字符串长度:SAS查询的时间复杂度O(1),c语言中时间复杂度O(n)空间分配来…...
几种实现主题切换的方式
几种实现主题切换的方式 1. 利用 prefers-color-scheme 特性 prefers-color-scheme是CSS 媒体特性【media】用于检测用户是否有将操作系统的主题色设置为亮色【light】或者暗色【dark】。 当前prefers-color-scheme新特性支持各大主流电脑(window和IOS系统&#…...
Jenkins使用(代码拉取->编译构建->部署上线)
Jenkins简介 Jenkins是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更重要的业务逻辑实现上。同时Jenkins能实时监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用…...
IEEE期刊论文投稿前期准备
目录 1、简介 2、资料准备 TPAMI 投稿须知 Letex模板资料下载 下载参考文献Bib文件...
[AAAI 2022] TransFG: A Transformer Architecture for Fine-grained Recognition
Contents TransFG ArchitectureExperimentsReferencesTransFG Architecture Overlapping patch split:ViT 是把图片分成一系列不重叠的 patches,作者认为这可能会破坏 discriminative regions. 为了解决上述问题,作者提出使用 Overlapping patch split,划分的 patch 数 N …...
机器学习之决策树原理详解、公式推导(手推)、面试问题、简单实例(python实现,sklearn调包)
目录1. 决策树原理1.1. 特性1.2. 思路1.3. 概念决策树概念信息论2. 公式推导2.1. 构造决策树2.1.1. ID3理论示例缺点2.1.2. C4.5理论示例缺点2.1.3. CART示例对比分析2.2. 剪枝3. 实例3.1. 数据集3.2. ID33.3. C4.53.4. CART3.5. sklearn实现4. 几个注意点(面试问题)5. 运行&am…...
一文搞懂CAS实现原理——怀玉
点个关注,必回关 文章目录CAS原理剖析1、参数解密CAS底层指令CAS(Compare and swap)是一种用于在多线程环境下实现同步功能的机制CAS原理剖析 CAS 被认为是一种乐观锁,有乐观锁,相对应的是悲观锁。 在上述示例中&…...
typora每次复制文档都要附带图片文件夹?学会配置gitee图床
0. 引言 作为开发人员,我们习惯使用md格式来编写文档,特别是typora编辑器更是日常使用的软件。但作为轻量化的文档编辑器,我们在默认插入图片时,一般typora会将图片保存到本地或者引用一个本地图片的路径 当文档还在我们本地打开…...
Linux--gdb
gdb用于实现在linux下通过gdb进行调试。由于gcc、g生成的文件是release文件,而不是用于调试的debug文件,所以需要使用gcc -g命令,生成debug文件 调试器:核心工作,主要是为了定位问题 所有查看内容的指令,不…...
c++11 标准模板(STL)(std::multimap)(二)
定义于头文件 <map> template< class Key, class T, class Compare std::less<Key>, class Allocator std::allocator<std::pair<const Key, T> > > class multimap;(1)namespace pmr { template <class Key, class T…...
【数据结构】二叉排序树——平衡二叉树的调整
文章目录前置概念一、构造平衡二叉树的基本思想二、一个示例三、平衡二叉树的调整细节(1)LL型(顺时针 )举例(2)RR型(逆时针)(3)LR型(先逆时针再顺…...
03- pandas 数据库可视化 (数据库)
pandas库的亮点: 一个快速、高效的DataFrame对象,用于数据操作和综合索引;用于在内存数据结构和不同格式之间读写数据的工具:CSV和文本文件、Microsoft Excel、SQL数据库和快速HDF 5格式;智能数据对齐和丢失数据的综合处理&#…...
第三方电容笔怎么样?开学适合买的电容笔
随着科学技术的进步,很多新型的电子产品和数码设备都出现了。比如手机,IPAD,蓝牙耳机,电容笔等等。实际上,如果你想要更好的使用ipad,那么你就需要一支电容笔。比如ipad,我们用ipad来做笔记&…...
Java学习-IO流-字节输出流
Java学习-IO流-IO流的体系和字节输出流基本用法 //IO流 → 字节流 → 字节输入流:InputStream // ↘ ↘ 字节输出流:OutputStream // ↘ 字符流 → 字符输入流:Reader // ↘ 字符输出流:WriterFileInputStream…...
linux性能分析 性能之巅学习笔记和内容摘录
本文只是在阅读《性能之巅》的过程中,对一些觉得有用的地方进行的总结和摘录,并附加一些方便理解的材料,完整内容还请阅读Gregg的大作 概念和方法 性能分析领域一词的全栈代表了整个操作系统的软硬件在内的所有事物 软件生命周期和性能规划…...
机器学习笔记之生成模型综述(三)生成模型的表示、推断、学习任务
机器学习笔记之生成模型综述——表示、推断、学习任务引言生成模型的表示任务从形状的角度观察生成模型的表示任务从概率分布的角度观察生成模型的表示任务生成模型的推断任务生成模型的学习任务引言 上一节介绍了从监督学习、无监督学习任务的角度介绍了经典模型。本节将从表…...
第八章 Flink集成Iceberg的DataStreamAPI、TableSQLAPI详解
1、概述 目前Flink支持使用DataStream API 和SQL API方式实时读取和写入Iceberg表,建议使用SQL API方式实时读取和写入Iceberg表。 Iceberg支持的Flink版本为1.11.x版本以上,以下为版本匹配关系: Flink版本Iceberg版本备注Flink1.11.XI…...
PyTorch学习笔记:nn.Sigmoid——Sigmoid激活函数
PyTorch学习笔记:nn.Sigmoid——Sigmoid激活函数 torch.nn.Sigmoid()功能:逐元素应用Sigmoid函数对数据进行激活,将元素归一化到区间(0,1)内 函数方程: Sigmoid(x)σ(x)11e−xSigmoid(x)\sigma(x)\frac1{1e^{-x}} Sigmoid(x)σ(…...
无锡网站App微信/谷歌怎么推广自己的网站
鸿蒙Harmony OS核心架构 鸿蒙系统(HarmonyOS)应用开发入门篇 经典|Android系统定制开发基础篇...
福州网站制作培训/项目推广计划书
Android 中 Toast 的基本用法比较简单, 按照下面的文件复制运行即可. Toast 是一个消息提示组件 设置显示的位置 自定义显示内容 (示例: 添加一个图片) ToastUtil 类 ToastActivity 文件 package com.example.hello;import androidx.appcompat.app.AppCompatActivity;import an…...
phpcms网站模版下载/百度竞价点击神器
使用 vagrant 可以帮助我们快速的创建虚拟机,可以不用提前下载好ISO镜像,方便虚拟环境的构建。下面我们来介绍一下如何使用 vagrant 来创建虚拟机。 一、安装 Virtual BOX 1、virtualbox下载 2、安装(略) 二、安装 vagrant 1、…...
网站建设公司新闻/全球十大搜索引擎入口
特斯拉Model S存在三个缺陷,包括与雨刷相关的视觉识别缺陷和两个辅助驾驶相关的问题。 今日上午消息,针对腾讯科恩实验室发现特斯拉Autopilot系统漏洞引发了的热议,特斯拉CEO马斯克日前发布了一则推文称赞腾讯科恩实验室“工作扎实”。 本周…...
邵阳网站建设优化/超级外链自动发布工具
转自:http://blog.csdn.net/zhonglinzhang/article/details/9183229 功能描述: 获取或者设置与某个套接字关联的选 项。选项可能存在于多层协议中,它们总会出现在最上面的套接字层。当操作套接字选项时,选项位于的层和选项…...
治疗早射最有效的方法是什么/首页关键词优化公司
1,平时开发中对map的使用很多,然后发现了很多map可能存在的各种问题;如HashMap 需要放置 1024 个元素,由于没有设置容量初始大小,随着元素不断增加,容量 7 次被迫扩大,resize 需要重建 hash 表&…...