大模型怎么实现连续对话?记忆上下文?chatgpt的接口

我们先来看官方文档的说明:

https://platform.openai.com/docs/guides/chat/introduction

> Chat models take a series of messages as input, and return a model-generated message as output.
>
> 聊天模型将一系列消息作为输入,并返回模型生成的消息作为输出。 


下面是一个实现连续聊天的代码示例,主要看这个 messges 数组:
(首先根据这个github的项目拿到密钥:https://github.com/xing61/xiaoyi-robot)

# Note: you need to be using OpenAI Python v0.27.0 for the code below to work
import openai

API_SECRET_KEY = "你的智增增获取的api_key"; 
BASE_URL = "http://flag.smarttrot.com/index.php/api/v1"; #智增增的base_url

openai.api_key = API_SECRET_KEY # 
openai.api_base = BASE_URL  # 

openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Who won the world series in 2020?"},
        {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."},
        {"role": "user", "content": "Where was it played?"}
    ]
)

说明:
1、role为system可以限定AI的角色,role为user是用户发送的内容,role为assistant是AI回答的内容。

2、OpenAI或者其它大语言模型本身是没有记忆的,如果你不告诉他你之前说了什么以及他之前回答了什么,那么他只会根据你最近一次发送的内容进行回答。

3、所以,要想实现“连续对话”,每次发送消息时,你需要将你之前发送的内容(**user**)以及大模型之前返回的内容(**assistant**),再结合你本次想发送的内容(**user**) 按 **时序** 组合成一个 messages[] 数组,然后再将这个数组发送给OpenAI就行了,就是这么简单。

4、有一点需要注意,这样虽然可以实现“连续对话”,但势必造成每次发送的消息内容会非常多,而OpenAI之流是按字数计费的,所以请自行权衡每次应该携带的数量。


 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值