如何使用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

代码说明

```
  1. 库导入: 我们从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. 存储响应:助手的响应被添加到会话状态中,以保持对话历史记录。 ```

运行应用程序

  1. 保存脚本到文件中,例如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 驱动的工具,今天就探索生成模型的潜力吧! ```

2024-11-13 04:30:35 AI中文站翻译自原文