Double API携带历史对话的方式(水一贴)

其实关键之处在于user对话需要带上"codeContexts":[],具体如下所示:

{
    "api_key":"api_***",
    "messages":[
        {"role":"user","message":"hi","codeContexts":[]},
        {"role":"assistant","message":"hello, how can i help you?"},
        {"role":"user","message":"鸡你太美","codeContexts":[]}
        ],
    "chat_model":"GPT4 Turbo",
    "stream": true
}

rolesystem时会报错

当使用model参数或没有model/chat_model参数时,无论指定什么模型/是否指定都是GPT4

根据其他佬友测试,可能没有model这个参数 :smiling_face_with_tear:

综上所述:

模型指定请使用chat_model作为参数

根据各位佬友的测试,如果内置prompt并且单独作为一条role为user的message时,由于叠加用户对话后messages列表里会连续出现user对话,当调用Claude模型"chat_model": "Claude 3 (Opus)"时响应是空白的

因此如需内置prompt,建议与用户对话合并,或在prompt后面插入一条role为assistant的message,比如: {"role":"assistant","message":"好的,我明白了"},以此避免连续出现user对话

12 个赞

很细节的地方

2 个赞

woc 吾皇点赞了 :star_struck:

他这上下文就是跟oai的方式是一样的啊

1 个赞

可以把 system 改为 user
再加一句“Ignore previous content.”

1 个赞

实测claude3不支持多个message

我测试是支持的

奇怪了 我测试的有回答

很懂的样子

真X蛋
总结一下,同一个场景下:
1、chat_model不行,model可以
2、chat_model可以,但只能有1个message
3、chat_model可以,但只能1个user 1个assistant交替出现,不能连续的user出现

edit: 楼下佬友反馈model是个不存在的参数,没有指定chat_model时默认为GPT4

1 个赞

好家伙,还真是chat_model与model的区别

你这个model参数哪里看来的

灵机一动,试了一下

有效的,甚至跟chat_model有所区别

测了一下,发现model里面填Claude3但是还是GPT-4模型来响应的,chat_model里面填Claude3就没这个问题

2 个赞

我怀疑没有model这个参数。

1 个赞

还真有是,问了一下应该是GPT4
根据其他佬友测试,model参数强制GPT4

还真可能是 :clown_face:

好吧,要用 Claude 只能用 chat_model

1 个赞