大模型怎么实现连续对话?记忆上下文?chatgpt的接口
1、OpenAI或者其它大语言模型本身是没有记忆的,如果你不告诉他你之前说了什么以及他之前回答了什么,那么他只会根据你最近一次发送的内容进行回答。
2、所以,要想实现“连续对话”,每次发送消息时,你需要将你之前发送的内容(**user**)以及大模型之前返回的内容(**assistant**),再结合你本次想发送的内容(**user**) 按 **时序** 组合成一个 messages[] 数组,然后再将这个数组发送给OpenAI就行了,就是这么简单。
3、有一点需要注意,这样虽然可以实现“连续对话”,但势必造成每次发送的消息内容会非常多,而OpenAI之流是按字数计费的,所以请自行权衡每次应该携带的数量。
> Chat models take a series of messages as input, and return a model-generated message as output.
> 聊天模型将一系列消息作为输入,并返回模型生成的消息作为输出。
下面是一个实现连续聊天的代码示例,主要看这个 messges 数组:
import openai
from openai import OpenAI
API_SECRET_KEY = “你的智增增获取的api_key”;
BASE_URL = “https://flag.smarttrot.com/v1/”; #智增增的base_url
# 连续对话的实例,自己根据业务逻辑填充messages即可
def lianxu():
client = OpenAI(api_key=API_SECRET_KEY, base_url=BASE_URL)
resp = client.chat.completions.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?”}
]
)
print(resp)
chatgpt的接口,chatgpt4,gpt4,chatgpt api
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...