想尝试一下使用openAI的API_key,用python运行下列程序
import os
import openai
# Set the API key
openai.api_key = os.getenv("OPENAI_API_KEY")
# Define the model and prompt
model_engine = "text-davinci-003"
prompt = "What is the capital of France?"
# Generate a response
completion = openai.Completion.create(
engine=model_engine,
prompt=prompt,
max_tokens=1024,
n=1,
stop=None,
temperature=0.5,
)
# Get the response text
message = completion.choices[0].text
print(message)
开启代理会弹出以下错误:
但如果不开启代理,则连接不到openai服务器:
但好像我在某个帖子中看到使用API可以无视地域限制地调用openai提供的一些功能,我的KEY是刚申请的还未使用过,有6个月5美元的免费使用额度。所以这里显示的连接失败也不知道是什么问题。
请教各位使用过的有无遇到该问题,都是怎么解决的?或者我的设置有问题?
确保环境变量OPENAI_API_KEY设置为你的key
python调试三板斧 https://ask.csdn.net/questions/7908322/54130133
以上截图中有错误提示“无法连接代理”
# -*- coding: utf-8 -*-
"""
Spyder Editor
This is a temporary script file.
"""
import openai
openai.api_key = "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"
def completion(prompt):
completions = openai.Completion.create(
engine="text-davinci-003",
prompt=prompt,
max_tokens=1024,
n=1,
stop=None,
temperature=0.8,
)
message = completions.choices[0].text
return message
print(completion("stm32f103vct6串口1初始化代码"))
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.09
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出
GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化PA9
GPIO_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 ;//抢占优先级3
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //子优先级3
NVIC_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); //初始化串口1
USART_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();
#endif
if(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");