oobabooga-textgen-web-ui 如何通过 ooba 的 API 密钥在 Python 中从端口 5000 获取查看模型列表的授权

我想从 oobabooga-text-gen-web-ui 中提取并打印出大语言模型(LLM)的列表,使用 Python 进行操作。

在进入我的问题之前,先提供一些背景信息。

对于熟悉 ooba 的人来说,它本质上是一个用于大语言模型的 Gradio 网页用户界面。

我下载并加载了一些 LLM 模型到这个网页界面上。网页界面使用 http://127.0.0.1:7860/ 在 7860 端口上显示网页用户界面。但是,如果我启用了 openaiapi 扩展,并且编辑 ooba 文件夹中的 CMD_FLAGS.txt 文件,使其内容类似于:

--listen --api --api-key "enter-your-fake-api-key-here" 

这些扩展将通过端口 5000 从网络连接到 ooba,从而模拟一个 OpenAI API 密钥。

现在问题来了…

这是我查看 ooba 模型列表的代码:

import requestsurl = "http://127.0.0.1:5000/v1"#Model Listheaders = {    "Content-Type": "application/json"}response = requests.get(f'{url}/internal/model/list',                        headers=headers,                        verify=False)print(response.json())

输出应该类似于这样:

{'model_names': ['L3-8B-Stheno-v3.2', 'L3-8B-Stheno-v3.2_exl2_8h_8bpw', 'L3-8B-Stheno-v3.2_q8_0.gguf', 'MixTAO-7Bx2-MoE-v8.1_q8_0.gguf']}

但实际上我得到的是:

{'detail': 'Unauthorized'}

经过一番尝试后,我发现如果我将 CMD_FLAGS.txt 留,代码可以正常工作,我可以获取模型列表,但由于 ooba 上没有启用 API 密钥,我无法访问 API 密钥。

如果我在 CMD_FLAGS.txt 中启用它并输入:

--listen --api --api-key "enter-your-fake-api-key-here" 

我将可以访问 OpenAI API 密钥,但提取模型列表的代码会返回:{'detail': 'Unauthorized'}

我需要从 ooba 启用 API 密钥,因为我计划使用 openai.client 功能进行模型交互。我该如何保持启用假 OpenAI API 密钥的配置,同时也允许我提取模型列表呢?


回答:

一天后…找到了答案。原来,如果我想启用 API 密钥,同时能够通过 API 从 ooba 查看模型列表,我需要在头部添加一个 'Authorization': f'Bearer {api_key}'

代码应该看起来像这样:

import requestsapi_key = "enter-your-fake-api-key-here"url = "http://127.0.0.1:5000/v1"#Model Listheaders = {    "Content-Type": "application/json",    "Authorization": f"Bearer {api_key}"}response = requests.get(f'{url}/internal/model/list',                        headers=headers,                        verify=False)print(response.json())

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注