如何使用Streamlit和ChatGPT API创建自己的chatGPT
在如今以技术为驱动的世界中,由于像ChatGPT这样的大型语言模型,生成式人工智能的力量就在每个人的指尖上。虽然OpenAI的ChatGPT界面很出名,但构建您自己可定制版本可能会更加令人兴奋。在本指南中,我们将介绍如何使用Streamlit用于Web界面和OpenAI API用于语言处理,创建一个简单但功能强大的ChatGPT克隆版本。
先决条件
在我们开始编码之前,请确保你已经准备好以下内容:
- Python已安装(版本3.7或更高)。
- Sure! Here is the translated text while keeping the HTML structure: ```html 一个 OpenAI API 密钥(您可以通过注册 OpenAI 的平台来获取它)。 ```
- Streamlit 和 openai Python 包已安装。您可以使用以下命令安装它们:
```html
pip install streamlit openai
使用以下命令安装:pip install streamlit openai
```设置您的ChatGPT克隆
Below is the translation of your text while retaining the HTML structure: ```html
下面,我们将分解创建一个功能齐全的类似ChatGPT的应用程序的步骤。
```代码
Here’s the full Python script: 以下是完整的 Python 脚本:
from openai import OpenAI
import streamlit as st
# Set the title for the Streamlit web app
st.title("ChatGPT-like clone")
# Initialize the OpenAI client with your API key
client = OpenAI(api_key="your-openai-api-key")
# Check for an existing model in the session state or set a default one
if "openai_model" not in st.session_state:
st.session_state["openai_model"] = "gpt-3.5-turbo"
# Initialize the session state to store conversation history
if "messages" not in st.session_state:
st.session_state.messages = []
# Display past messages in the chat
for message in st.session_state.messages:
with st.chat_message(message["role"]):
st.markdown(message["content"])
# Capture new user input
if prompt := st.chat_input("What is up?"):
# Append user input to the session state
st.session_state.messages.append({"role": "user", "content": prompt})
with st.chat_message("user"):
st.markdown(prompt)
# Generate a response from the ChatGPT API
with st.chat_message("assistant"):
stream = client.chat.completions.create(
model=st.session_state["openai_model"],
messages=[
{"role": m["role"], "content": m["content"]}
for m in st.session_state.messages
],
stream=True,
)
response = st.write_stream(stream)
# Store the assistant's response in the session state
st.session_state.messages.append({"role": "assistant", "content": response})
```html
代码说明
```- 库导入: 我们从openai库中导入OpenAI类和streamlit用于构建web界面。
2. Streamlit 标题:st.title("ChatGPT 类似克隆") 设置应用程序的标题。
3. OpenAI客户端初始化: 使用您的API密钥对OpenAI客户端进行初始化。请确保用您的实际API密钥替换“your-openai-api-key”,或者使用环境变量或秘密管理器安全地存储它。
4. 会话状态管理:
- ```html st.session_state["openai_model"] 设置默认模型为 gpt-3.5-turbo。 ```
- ```html st.session_state.messages 存储对话历史以保持上下文。 ```
5. 显示对话历史:代码遍历 st.session_state.messages 以显示过去的用户和助手消息。
```html 6. 用户输入处理: ```
- ```html st.chat_input("有什么新鲜事?") captures new user input. ```
- ```html 用户的消息被附加到会话状态并显示出来。 ```
生成响应:
- 该脚本使用会话历史向OpenAI API发送请求。
- 响应是通过使用st.write_stream()以实时流的方式呈现,为用户带来交互体验。
```html 8. 存储响应:助手的响应被添加到会话状态中,以保持对话历史记录。 ```
运行应用程序
- 保存脚本到文件中,例如chat_gpt_clone.py。
2. 使用Streamlit运行应用程序:
```html streamlit 运行 chat_gpt_clone.py ```
3. 打开提供的本地网址在您的网络浏览器中开始聊天!
定制你的克隆
- ```html API 模型:您可以将 st.session_state["openai_model"] 更改为其他模型,如 gpt-4,如果您的 API 密钥支持的话。 ```
- Here’s the translation in simplified Chinese while keeping the HTML structure: ```html Features: 通过添加按钮、语音转文本或不同的对话主题来增强您的应用程序。 ```
- ```html
安全性:始终保持您的 API 密钥安全。使用环境变量或 st.secrets 来管理敏感信息。
```
```html
最后的想法
``````html
只需几行Python代码,您就可以创建自己的类似ChatGPT的应用程序。这个简单的应用可以进一步定制以满足您的需求,从个人项目到专业应用。
```创建您的 AI 驱动应用程序并不复杂。Streamlit 的简单性与 OpenAI 的语言模型的强大功能结合,使得开发和部署符合您独特需求的对话 AI 解决方案变得简单。
Sure! Here is the translated text while keeping the HTML structure: ```html 尝试自行构建 AI 驱动的工具,今天就探索生成模型的潜力吧! ```