- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在尝试创建一个带有 Gradio 界面的 GPT-3.5-turbo 聊天机器人,该聊天机器人在命令行中工作得很好,但当我用 Gradio 实现它时却不行。我能够发送我的输入并接收响应。然而,响应随后被返回,并且 Gradio 无法正确显示结果。它使用“角色”和“内容”字典键而不是聊天字符串进行回复。我的目标是能够与网络界面中记录的历史记录进行简单的聊天对话。
我尝试过返回字符串、字典的各种不同部分,但我完全不知所措。之前,当我在预测函数中返回一个字符串时,它会提示它想要枚举一些东西。然后我发送了一个字符串列表,但也没有运气。当我返回整个字典时,它不会抛出错误,但会显示键而不是值。
这是 Gradio Interface 中发生的错误的图像
这是我当前的代码:
import openai
import gradio as gr
openai.api_key = "XXXXXXX"
history = []
system_msg = input("What type of chatbot would you like to create? ")
history.append({"role": "system", "content": system_msg})
with open("chatbot.txt", "w") as f:
f.write("System: "+system_msg)
print("Say hello to your new assistant!")
def predict(input, history):
if len(history) > 10:
history.pop(1)
history.pop(2)
history.pop(3)
history.append({"role": "user", "content": input})
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=history)
reply = response["choices"][0]["message"]["content"]
history.append({"role": "assistant", "content": reply})
return history, history
with gr.Blocks() as demo:
chatbot = gr.Chatbot()
state = gr.State([])
with gr.Row():
txt = gr.Textbox(show_label=False, placeholder="What kind of chatbot would you like to create? ").style(container=False)
txt.submit(predict, [txt, state], [chatbot, state])
demo.launch()
最佳答案
好的,解决了。问题是历史是一本字典。提交的输出需要一个列表的列表。我最终通过创建一个单独的列表解决了这个问题。问题和回复的列表,然后最上面列表的下一项是另一个问题和回复的列表。
字典是我的死神。这是固定代码。
chat_history = []
def gpt_reply(chat_history):
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=chat_history)
reply = response["choices"][0]["message"]["content"]
return reply
def predict(input, history = []):
if len(history) == 0:
system_msg = "You are an expert code completionist."
history.append({"role": "system", "content": system_msg})
with open("chatbot.txt", "w") as f:
f.write("System: "+system_msg)
if len(history) > 10:
history.pop(1)
history.pop(2)
history.pop(3)
message = input
with open("chatbot.txt", "a") as f:
f.write("\nUser: " + message + "\n")
history.append({"role": "user", "content": message})
reply = gpt_reply(history)
history.append({"role": "assistant", "content": reply})
with open("chatbot.json", "w") as f:
json.dump(history, f, indent=4, ensure_ascii=False)
# create new list with only the user and bot responses. Each response is a string of one item of a list
chat_history.append([message, reply])
with open("user_responses.json", "w") as f:
json.dump(chat_history, f, indent=4, ensure_ascii=False)
return chat_history, history
with gr.Blocks() as demo:
chatbot = gr.Chatbot()
state = gr.State([])
with gr.Row():
txt = gr.Textbox(show_label=False, placeholder="What kind of chatbot would you like to create? ").style(container=False)
txt.submit(predict, [txt, state], [chatbot, state])
demo.launch()
关于python - 使用 openai.ChatCompletion API 和 GPT-3.5-turbo 时,Gradio 输出字典的键而不是字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75630847/
我已经为此奋斗了几个小时。显然,我不是专家,但我已经做到了这一点 - api 设置,在前端运行,当我输入聊天提示时,它会出现错误,并且gunicorn 返回大长错误。 这是我的 ai_chat.py
我已经为此奋斗了几个小时。显然,我不是专家,但我已经做到了这一点 - api 设置,在前端运行,当我输入聊天提示时,它会出现错误,并且gunicorn 返回大长错误。 这是我的 ai_chat.py
尝试调用刚刚为 ChatGPT 发布的 got-3.5-turbo API,但收到错误请求错误? var body = new {
尝试调用刚刚为 ChatGPT 发布的 got-3.5-turbo API,但收到错误请求错误? var body = new {
最近我必须找到一种方法来区分虚拟机使用的分区类型,从虚拟磁盘读取原始数据我能够通过检查偏移量 1C2(GPT 的 EE)找到它,以防万一MBR 磁盘如果磁盘是动态的,1C2 的偏移量有 42,如果是基
我有一个 Android 应用程序,目前正在使用 chat gpt 3.0 进行补全,并且工作正常。现在,在他们发布 chat gpt 3.5 Turbo 后,我根据他们的请求示例做了一些更改,但抛出
我有一个 Android 应用程序,目前正在使用 chat gpt 3.0 进行补全,并且工作正常。现在,在他们发布 chat gpt 3.5 Turbo 后,我根据他们的请求示例做了一些更改,但抛出
创建微调模型后,如何在/v1/chat/completions 中使用它?我们尝试了这个,但出现了错误 curl --location 'https://api.openai.com/v1/chat/
我收到以下错误: [3067] NetworkUtility.shouldRetryException: Unexpected response code400 for https://api.ope
我收到以下错误: [3067] NetworkUtility.shouldRetryException: Unexpected response code400 for https://api.ope
创建微调模型后,如何在/v1/chat/completions 中使用它?我们尝试了这个,但出现了错误 curl --location 'https://api.openai.com/v1/chat/
我正在围绕 GPT-3 构建一个应用程序,我想知道我发出的每个请求使用了多少 token 。这可能吗?如何实现? 最佳答案 OPEN-AI 通过代币对 GPT-3 的使用进行收费,这包括提示和答案。对
kapt 和有什么区别和 implementation在 Gradle 中声明依赖项时以及何时应该在另一个上使用一个? 例子: //Room Components implementation "an
所以我在我的 React 应用程序中实现了 chat gpt 3.5 Turbo API。所以我的应用程序基本上就像招聘人员的助手。因此,招聘人员向应用程序提供了一个示例职位帖子,并将该帖子发送到聊天
所以我在我的 React 应用程序中实现了 chat gpt 3.5 Turbo API。所以我的应用程序基本上就像招聘人员的助手。因此,招聘人员向应用程序提供了一个示例职位帖子,并将该帖子发送到聊天
我有最新版本的 OpenAi,但缺少某些属性。我试过重新安装它,没有解决它。 GPT 和 Chat 是我发现还不能用的。 切记,我是 python 的新手并且具有该语言的基本知识。代码取自GitHub
我有最新版本的 OpenAi,但缺少某些属性。我试过重新安装它,没有解决它。 GPT 和 Chat 是我发现还不能用的。 切记,我是 python 的新手并且具有该语言的基本知识。代码取自GitHub
我使用的是 gpt-4-0613 模型,具有单个函数,并在系统提示符中包含一些自定义数据。 如果该函数在聊天中很早就被触发,在前两个请求内,它的功能就很好,并且 API 会要求用户提供调用该函数所需的
我使用的是 gpt-4-0613 模型,具有单个函数,并在系统提示符中包含一些自定义数据。 如果该函数在聊天中很早就被触发,在前两个请求内,它的功能就很好,并且 API 会要求用户提供调用该函数所需的
OpenAI 现在允许我们微调 GPT-3.5 模型。我已经使用自己的数据集测试和微调了模型,但问题是微调模型随机生成答案,而不是根据我的自定义数据集正确生成答案。 有什么方法可以让模型仅根据我自己的
我是一名优秀的程序员,十分优秀!