1. 在文件中导入所需的 Python 模块和库,例如 transformers 和 torch。
from transformers import AutoTokenizer, AutoModelWithLMHead
import torch
  1. 初始化 ChatGPT 模型并加载预训练的权重。
tokenizer = AutoTokenizer.from_pretrained('microsoft/DialoGPT-medium')
model = AutoModelWithLMHead.from_pretrained('microsoft/DialoGPT-medium')
  1. 编写一个函数来生成回复的文本,可以使用 ChatGPT 模型的 generate 方法。
def generate_response(input_text):
    input_ids = tokenizer.encode(input_text + tokenizer.eos_token, return_tensors='pt')
    bot_input_ids = torch.cat([chat_history_ids, input_ids], dim=-1) if chat_history_ids is not None else input_ids
    chat_history_ids = model.generate(bot_input_ids, max_length=1024, pad_token_id=tokenizer.eos_token_id)
    response = tokenizer.decode(chat_history_ids[:, bot_input_ids.shape[-1]:][0], skip_special_tokens=True)
    return response
  1. 在 VS Code 中打开一个新的文件,保存为.ipynb 格式,然后在菜单栏中打开 Jupyter Notebook。

  2. 在 Jupyter Notebook 中创建一个新的代码单元格,输入以下代码:

from ipywidgets import widgets, Layout
from IPython.display import display

input_box = widgets.Text(
    layout=Layout(width='50%', height='50px'),
    placeholder='请输入您的问题',
    description='您的问题:',
    disabled=False
)
output_box = widgets.Textarea(
    layout=Layout(width='50%', height='200px'),
    placeholder='机器人的回答',
    description='机器人的回答:',
    disabled=True
)

def on_submit(sender):
    input_text = input_box.value.strip()
    if input_text:
        response = generate_response(input_text)
        output_box.value = response

input_box.on_submit(on_submit)

display(input_box)
display(output_box)
  1. 在 Python 文件中导入 Jupyter 扩展生成的笔记本,并将 UI 界面与生成回复的函数连接起来。
import jovian

# 将 Jupyter 笔记本导出为 Python 文件
jovian.commit(nb_filename='chatbot.ipynb')

# 导入 Jupyter 笔记本
from IPython.display import display, Javascript
from google.colab.output import eval_js

def start_chatbot():
    display(Javascript('''
        (async function(){
            const result = await google.colab.kernel.invokeFunction(
                'notebook.run',
                ['input_box', 'output_box'],
                {
                    'code': 'while True:
	input_text = input_box.value.strip()
	if input_text:
		response = generate_response(input_text)
		output_box.value = response
' 
                }
            )
            console.log(result)
        })();
    '''))
    
start_chatbot()
使用 ChatGPT 和 Jupyter Notebook 创建简单的聊天机器人

原文地址: https://www.cveoy.top/t/topic/nLz2 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录