-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlist_my_model.py
80 lines (66 loc) · 2.48 KB
/
list_my_model.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import streamlit as st
import openai
from datetime import datetime
# 设置标题
st.title("List of Your Fine-Tuned Models")
# 输入API密钥
api_key = st.text_input("Enter your OpenAI API KEY")
# 设置OpenAI API密钥
openai.api_key = api_key
# 创建函数以获取并返回所有模型
def list_models():
# 检查是否输入了API密钥
if not api_key:
st.warning("Please enter your OpenAI API KEY.")
return []
try:
# 获取模型列表
models = openai.Model.list()
# 筛选并提取需要的字段
filtered_models = [
{
"Created at": datetime.fromtimestamp(model["created"]).strftime("%Y-%m-%d %H:%M:%S"),
"Model Name (ID)": model["id"],
"Parent Model": model["parent"]
}
for model in models['data']
if model['owned_by'] not in ['openai-internal', 'openai', 'system', 'openai-dev']
]
# 检查模型列表是否为空
if not filtered_models:
st.warning("This API Key doesn't have any fine-tuned model.")
return filtered_models
except openai.error.AuthenticationError as e:
st.error(str(e))
return []
# 调用函数以获取所有模型
models = list_models()
# 检查模型列表是否为空
if models:
# 显示模型列表的表格
st.table(models)
# 添加删除按钮
st.title("Delete Your Fine-Tuned Models")
model_name = st.text_input("To avoid accidental deletion, please type the model name (ID) you want to delete here")
delete_button = st.button("Delete")
# 当删除按钮被按下时执行删除操作
if delete_button:
if model_name:
model_names = [model["Model Name (ID)"] for model in models]
if model_name in model_names:
# 删除模型
try:
response = openai.Model.delete(model_name)
# 判断删除是否成功
if response.get("deleted"):
# 显示成功消息
st.success("Model deleted successfully.")
else:
# 显示失败消息
st.error("Failed to delete the model.")
except openai.error.APIError as e:
st.error(str(e))
else:
st.warning("Please enter a valid model name.")
else:
st.warning("Please enter a model name to delete.")