ChatGPT博客
分享ChatGPT中文教程和资讯
ChatGPT Plus代升级 OpenAI API代充值

GPT学术优化使用新版OpenAI API key报错API_KEY不满足任何一种已知的密钥格式,缺少api_key的解决方法

OpenAI API key

今天ChatGPT交流群中一位用户在部署GPT学术优化 (GPT Academic)时报错API_KEY不满足任何一种已知的密钥格式,网页也提示缺少api_key,输入api key依然报错,本文就分享下这个问题的原因和解决方法。

一、问题描述

GPT学术优化版本:3.8.3

OpenAI API key是9月刚新建的,格式如:sk-proj-z_ZotxL9lg3ve0o5VhU0DOJDoJ************

在config.py里配置了API_KEY,运行报错:

[API_KEY] 本项目现已支持OpenAI和Azure的api-key。也支持同时填写多个api-key,如API_KEY=”openai-key1,openai-key2,azure-key3″
[API_KEY] 您既可以在config.py中修改api-key(s),也可以在问题输入区输入临时的api-key(s),然后回车键提交后即可生效。
[API_KEY] 您的 API_KEY 不满足任何一种已知的密钥格式,请在config文件中修改API密钥之后再运行

GPT学术优化使用新版OpenAI API key报错API_KEY不满足任何一种已知的密钥格式,缺少api_key

在网页使用时报错:

缺少api key。

  1. 临时解决方案:直接在输入区键入api key,然后回车
  2. 长效解决方案:在confg.py中配置。

输入了api key,还是报错:

GPT学术优化使用新版OpenAI API key报错API_KEY不满足任何一种已知的密钥格式,缺少api_key

GPT学术优化的配置教程可以参考:

二、问题原因

造成这个问题的原因是当前版本(包括最新版本)的GPT学术优化的API Key正则代码有点问题,无法匹配最新的OpenAI API key,例如这位用户的API key里有一个下划线,就无法被匹配到,所以报错无法识别,缺少api key。

这是GPT学术优化正则匹配API Key的相关代码:

def is_openai_api_key(key):
    CUSTOM_API_KEY_PATTERN = get_conf('CUSTOM_API_KEY_PATTERN')
    if len(CUSTOM_API_KEY_PATTERN) != 0:
        API_MATCH_ORIGINAL = re.match(CUSTOM_API_KEY_PATTERN, key)
    else:
        API_MATCH_ORIGINAL = re.match(r"sk-[a-zA-Z0-9]{48}$|sk-proj-[a-zA-Z0-9]{48}$|sess-[a-zA-Z0-9]{40}$", key)
    return bool(API_MATCH_ORIGINAL)

三、解决方法

从正则代码里也可以看到,如果配置里有CUSTOM_API_KEY_PATTERN的话是可以优先考虑的。因此这个问题的解决方法就是在config.py里找到CUSTOM_API_KEY_PATTERN参数,自定义一个正则表达式,例如最简单的只匹配前面的:

CUSTOM_API_KEY_PATTERN='^sk-proj-.+$'

之后再运行就没问题了。

最后,如果你是GPT学术的重度用户,强烈推荐你使用这个中转API,同样的效果,价格便宜一半都不止:便携AI聚合API

详细配置教程:《GPT学术优化(gpt_academic)使用便携AI聚合OpenAI API教程

「ChatGPT研修班」知识星球上线啦,早鸟价249元/年!

上百篇教程,带你从0到1玩赚ChatGPT点击了解详情

ChatGPT知识星球

赞(0)
未经允许不得转载:ChatGPT博客 » GPT学术优化使用新版OpenAI API key报错API_KEY不满足任何一种已知的密钥格式,缺少api_key的解决方法