长话短说
Streamlit 用于创建聊天机器人界面并初始化变量以存储聊天记录。
通过遍历generated和past列表并使用message函数显示每条消息来显示聊天记录。
本教程提供了有关如何使用 OpenAI 的 GPT-3 API 和 Streamlit 构建聊天机器人的详细指南。
导入库
第一步是导入必要的库。我们将使用它openai来访问文本生成 API 并streamlit创建聊天机器人界面。
import openai import streamlit as st
- 1
接下来,我们需要为 OpenAI 设置 API 密钥。此密钥用于验证我们对 API 的请求。
openai.api_key = [ "api_secret" ]
- 1
从 API 生成响应
我们创建一个名为的函数,该函数generate_response接收提示并使用 OpenAI API 生成响应。该函数允许我们通过为其提供启动提示来生成文本。我们可以指定engine要使用的、prompt从中生成文本的、用 生成的最大标记数(单词和标点符号)、用 生成max_tokens的响应数n,以及在用 处停止生成文本的字符串stop。我们还可以调整temperature参数,它控制生成文本的随机性。
def generate_response(prompt):
completions = (
engine = "text-davinci-003",
prompt = prompt,
max_tokens = 1024,
n = 1,
stop = None,
temperature=0.5,
)
message = [0].text
return messageCreating the chatbot interface
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
我们将使用 Streamlit 创建聊天机器人界面——通过设置页面标题并初始化一些变量来存储聊天记录。
("chatBot : Streamlit + openAI")
# Storing the chat
if 'generated' not in st.session_state:
st.session_state['generated'] = []
if 'past' not in st.session_state:
st.session_state['past'] = []
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
接下来,创建一个名为的函数get_text,它返回用户从文本输入字段输入的内容。
# We will get the user's input by calling the get_text function
def get_text():
input_text = st.text_input("You: ","Hello, how are you?", key="input")
return input_text
- 1
- 2
- 3
- 4
如果user_input不为空,我们将使用该函数生成响应generate_response并将其存储在名为 的变量中output。我们还将分别将用户的输入和生成的响应附加到past和generated列表,以跟踪聊天历史记录。
user_input = get_text()
if user_input:
output = generate_response(user_input)
# store the output
st.session_state.(user_input)
st.session_state.(output)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
最后,我们将通过遍历generated和past列表并使用库中的message函数streamlit_chat显示每条消息来显示聊天记录。
if st.session_state['generated']:
for i in range(len(st.session_state['generated'])-1, -1, -1):
message(st.session_state["generated"][i], key=str(i))
message(st.session_state['past'][i], is_user=True, key=str(i) + '_user')
- 1
- 2
- 3
- 4
- 5
结论
总之,我们已经使用 OpenAI 的 GPT-3 API 和 Streamlit ???? 成功构建了一个聊天机器人????!只需几行代码,我们就能够创建一个简单但功能强大的聊天机器人,它可以对用户输入做出响应。