1
Akitora 2023-11-13 15:04:56 +08:00
自己把每一段对话拼起来请求发回去,抓包网页版 GPT 可以看到怎么拼的
|
2
vacuitym 2023-11-13 15:09:54 +08:00
楼主想问的应该是 assitants api 的吧,我只看到了 thread 会自动获取上下文
|
3
cheng6563 2023-11-13 15:12:42 +08:00
每次你发送消息,实际上是把整段聊天记录发给 GPT 模型,然后模型生成下一次回复的内容
|
4
skwyl 2023-11-13 15:13:04 +08:00
保存是你本地保存,并且把之前的聊天记录+新的聊天记录一起提交
|
6
hahastudio 2023-11-13 15:20:29 +08:00
如果指的是 client.chat.completions.create()
那么给请求里塞多少上下文靠自己,简单的就是前几条记录 另外 request token + response token 是有上限的 |
7
adobas007 OP @hahastudio 明白了,多谢
|
8
lins05 2023-11-13 23:27:21 +08:00
> 这么聊下去,历史内容+新问题,token 费用不得了
@adobas007 所以 OpenAI 一般的第三方前端都支持用户自己设置只带上最近的几条消息。 chatgpt-next-web 还有一个好的设计叫 "memory prompt",它会自动调用便宜的 gpt3.5 让 gpt 把到当前为止的所有消息总结成一条,这样后续的圣诞既能节约 token 又能保存一些之前的 context 新发布的 threads api 并没有本质上的区别,只是方便了开发者不需要每次请求都把历史消息带上而已,因为 openai 在他那边会维护一个 "thread id => 该 thread 的历史消息" 的映射,但是计费还是会把这些历史对话中的 token 计算进去。 |
9
adobas007 OP @lins05 在请教一下
我们是否可以自己 fake 数据 messag(system,user,assistant),内容输入 GPT ,GPT 会怎么做? 从网络结构上,有没有可能推断出 GPT 的架构( GPT 公布模型 transformer 只是一个基础原型,其整个系统架构应该远不止这些) |
10
yinmin 2023-11-14 09:40:00 +08:00 via iPhone
#9 可以的。自己构造几组 user,assistant 喂给 gpt 作为范例,gpt 就会参照 fake 的格式进行回复。
例如:你希望 gpt 分析文本给出里面的地址信息,可以 fake 几个 json 格式的输出范例,然后给真实数据时,gpt 也是返回 json 格式的。 又比如你的 prompt 很长消耗 token ,可以给一组同时处理多条数据的范例,然后就能一次处理多条数据了。 |