成都网站制作长沙关键字是什么意思

文章目录
- 🌊 环境准备
- 🌊 配置 API 密钥
- 🌊 定义与 GPT 的对话函数,支持多轮对话
- 🌊 使用 Gradio 创建界面
- 🌊 完整代码 & 结果展示
在这个教程中,我们将使用 OpenAI 的 GPT 模型和 Gradio 来创建一个聊天机器人。Gradio 是一个非常简单的 Python 库,可以快速创建交互式界面,让我们与 AI 模型进行对话。让我们一起开始吧!
🌊 环境准备
首先,确保你已经安装了 💻 以下 Python 库 openai
, gradio
:
from openai import OpenAI
import gradio as grfrom typing import List, Tuple
🌊 配置 API 密钥
openai.api_key = 'your-api-key-here' # 在这里插入你的 API 密钥 🔑
🌊 定义与 GPT 的对话函数,支持多轮对话
def reset() -> List:return []def interact(chatbot: List[Dict], user_input: str, temperature: float) -> List[Dict]:messages = []# 将历史对话按顺序添加到 messages 中for message in chatbot:messages.append({'role': message['role'], 'content': message['content']})# 将当前的 user_input 添加到 messages 的最后messages.append({'role': 'user', 'content': user_input})# 调用 OpenAI API 获取生成的回复response = openai.ChatCompletion.create(model="gpt-4", # 你可以根据需要选择不同的模型,例如 gpt-4 或 gpt-3.5messages=messages,max_tokens=512,temperature=temperature,)# 获取生成的回复内容response_content = response['choices'][0]['message']['content']# 将当前的用户输入和模型的回复添加到聊天记录中chatbot.append({"role": "user", "content": user_input})chatbot.append({"role": "assistant", "content": response_content})return chatbot
🌊 使用 Gradio 创建界面
with gr.Blocks() as demo:gr.Markdown(f"# Gradio + GPT 多轮对话示例 🤖")chatbot = gr.Chatbot(type='messages') # 创建聊天机器人界面input_textbox = gr.Textbox(label="输入你的消息 📝", value="") # 创建文本输入框# 添加滑动条来调节 temperaturetemperature_slider = gr.Slider(minimum=0.0, maximum=1.0, value=0.7, label="调整回复温度 🔥")# 创建按钮行with gr.Row():sent_button = gr.Button(value="发送 📤") # 发送按钮reset_button = gr.Button(value="重置 🔄") # 重置按钮# 设置按钮事件sent_button.click(interact, inputs=[chatbot, input_textbox, temperature_slider], outputs=[chatbot])reset_button.click(reset, outputs=[chatbot])# 启动 Gradio 应用
demo.launch(debug=True)
🌊 完整代码 & 结果展示
import gradio as gr
from typing import List, Dict
import openai
import os# 从环境变量中读取 API 密钥(你可以通过设置环境变量来保护 API 密钥)
openai.api_key = os.getenv('OPENAI_API_KEY') # 确保环境变量中设置了 OPENAI_API_KEY# 定义重置函数,清空聊天记录
def reset() -> List[Dict]:return []# 定义与 GPT 的对话函数,支持多轮对话
def interact(chatbot: List[Dict], user_input: str, temperature: float) -> List[Dict]:messages = []# 将历史对话按顺序添加到 messages 中for message in chatbot:messages.append({'role': message['role'], 'content': message['content']})# 将当前的 user_input 添加到 messages 的最后messages.append({'role': 'user', 'content': user_input})# 调用 OpenAI API 获取生成的回复response = openai.ChatCompletion.create(model="gpt-4", # 你可以根据需要选择不同的模型,例如 gpt-4 或 gpt-3.5messages=messages,max_tokens=512,temperature=temperature,)# 获取生成的回复内容response_content = response['choices'][0]['message']['content']# 将当前的用户输入和模型的回复添加到聊天记录中chatbot.append({"role": "user", "content": user_input})chatbot.append({"role": "assistant", "content": response_content})return chatbot# 使用 Gradio 创建界面
with gr.Blocks() as demo:gr.Markdown(f"# Gradio Tutorial")chatbot = gr.Chatbot(type='messages')input_textbox = gr.Textbox(label="Input", value="")# 添加滑动条来调节 temperaturetemperature_slider = gr.Slider(minimum=0.0, maximum=1.0, value=0.7, label="Temperature")with gr.Row():sent_button = gr.Button(value="Send")reset_button = gr.Button(value="Reset")sent_button.click(interact, inputs=[chatbot, input_textbox, temperature_slider], outputs=[chatbot])reset_button.click(reset, outputs=[chatbot])demo.launch(debug=True)
参考资料:面向每个人的生成式AI, 【李宏毅 LLM 大模型】