GPT:多轮对话并搭建简单的聊天机器人

1 多轮对话

  多轮对话能力至关重要,它不仅能深化交流,精准捕捉对方意图,还能促进有效沟通,增强理解。在智能客服、教育辅导等领域,多轮对话更是提升服务质量、增强用户体验的关键。
注意:大模型没有多轮对话的能力,但基于大模型开发的对话产品是具有对话能力的。换句话说,就是GPT系列模型没有多轮对话能力,但是ChatGPT是能完成多轮对话能力的。 举例如下(ChaGpt结合上一次的对话识别出“好冷啊”这句话的意思是笑话不好笑,而GPT做不到):

ChatGPT结果
在这里插入图片描述
GPT结果
在这里插入图片描述

2 使用OpenAI API简单搭建聊天机器人

  利用OpenAI API实现多轮对话的原理很简单,即:将之前对话的内容传递给GPT模型,以帮助模型生成更准确的回复。具体代码文件目录如下:
在这里插入图片描述
各个文件的具体代码如下:
driver.py(python实现)

from flask import Flask,request,jsonify
from flask import render_template
from openai import OpenAI
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())
client=OpenAI()
#先加入一些对GPT聊天的基本要求,这两个要一直上传给大模型
history=[{
   "role":"system","content":"你是一个聊天机器人,你叫Bot."},{
   "role":"user","content":"每次输出的内容限定在50字以内。"}] 
# 生成对话内容
def chat(message):
	#将过去5轮对话的内容传递给大模型
    if len(history)>10:
        messages=history[:2]+history[-8:]
    else:
        messages=history[-10:]
    #正常结束
    if message.lower()=="stop":
        return "对话结束"
    messages.append({
   "role":"user","content":message})
    response=client.chat.completions.create(
        model="gpt-3.5-turbo",
        messages=messages,
        temperature=0.7,
    )
    #处理GPT没有输出的情况(比如token用完)
    if response.cho
要调用OpenAI接口实现多轮对话,您需要遵循以下步骤: 1. 注册OpenAI账户获取API密钥。 2. 使用适当的编程语言(如Python)编写代码,以调用OpenAI API处理响应。 3. 设计一个对话流程,以便处理多轮对话。这可能包括跟踪上下文,确定下一步应该做什么,以及生成响应。 4. 在每个轮次中,向OpenAI API发送用户输入,解析返回的响应。 5. 使用生成的响应来回答用户,在必要时跟踪上下文。 6. 在对话完成后,关闭API连接保存任何需要保存的数据。 以下是一个使用Python实现多轮对话的示例代码: ```python import openai import time # 设置API密钥 openai.api_key = "YOUR_API_KEY" # 设计对话流程 def get_response(prompt, model, temperature=0.5): response = openai.Completion.create( engine=model, prompt=prompt, temperature=temperature, max_tokens=1024, n=1, stop=None, timeout=60, ) return response.choices[0].text.strip() # 处理对话 def run_dialogue(model): context = "" while True: user_input = input("You: ") if user_input.lower() == "exit": break prompt = f"{context}User: {user_input}\nAI:" response = get_response(prompt, model) print("AI: " + response) context += f"User: {user_input}\nAI: {response}\n" # 主函数 def main(): # 选择模型 model = "davinci" print(f"Using {model} model") # 运行对话 run_dialogue(model) if __name__ == "__main__": main() ``` 该代码使用OpenAI API来生成对话响应。它使用一个简单的上下文变量来跟踪对话历史记录,要求用户输入来开始每个新轮次。您可以根据需要修改该代码以适应您的需求。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值