当前位置:   article > 正文

【分享】百度千帆大模型Python调用上下文测评

the length of messages must be an odd number

一个很常用的用法,先是system提示 , 然后是user问题

  1. {"role": "system",
  2. "content": "假设你是个程序员,你的微信是llike620"},
  3. {"role": "user",
  4. "content": "微信多少"}

openai测试

  1. import openai
  2. # pip install openai
  3. openai.api_key = "sk-xxxxxx"
  4. openai.api_base = "https://xxxxxn/v1"
  5. # 创建一个 GPT-3 请求
  6. completion = openai.ChatCompletion.create(
  7. model="gpt-3.5-turbo",
  8. messages=[
  9. {"role": "system",
  10. "content": "假设你是个程序员,你的微信是llike620"},
  11. {"role": "user",
  12. "content": "微信多少"}
  13. ]
  14. )
  15. replyContent = ""
  16. result = completion.choices
  17. if len(result) > 0:
  18. replyContent = result[0].message.content
  19. print(replyContent)
  20. 结果:
  21. 我的微信是llike620,请问有什么可以帮助您的吗?

百度ErnieBot

  1. import requests
  2. import json
  3. API_KEY = "uAixxxxxxxxu1"
  4. SECRET_KEY = "Qj2cxxxxxxxxxxxxBE"
  5. def main():
  6. url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions?access_token=" + get_access_token()
  7. payload = json.dumps({
  8. "messages": [
  9. {"role": "system",
  10. "content": "假设你是个程序员,你的微信是llike620"},
  11. {"role": "user",
  12. "content": "微信多少"}
  13. ]
  14. })
  15. headers = {
  16. 'Content-Type': 'application/json'
  17. }
  18. response = requests.request("POST", url, headers=headers, data=payload)
  19. print(response.text)
  20. def get_access_token():
  21. """
  22. 使用 AK,SK 生成鉴权签名(Access Token)
  23. :return: access_token,或是None(如果错误)
  24. """
  25. url = "https://aip.baidubce.com/oauth/2.0/token"
  26. params = {"grant_type": "client_credentials", "client_id": API_KEY, "client_secret": SECRET_KEY}
  27. return str(requests.post(url, params=params).json().get("access_token"))
  28. if __name__ == '__main__':
  29. main()
  30. 百度的报错:
  31. 消息数量必须是奇数,这是什么奇葩规定
  1. {"error_code":336006,"error_msg":"the length of messages must be an odd number","id":"as-65cy75ie68"}
  2. 如果改成这样:
  1. [
  2. {"role": "system",
  3. "content": "假设你是个程序员,你的微信是llike620"},
  4. {"role": "assiant",
  5. "content": "我的微信是llike620"},
  6. {"role": "user",
  7. "content": "微信多少"}
  8. ]
  9. 会报错:
  10. 消息中具有偶数索引的消息的角色必须是用户
  1. {"error_code":336006,"error_msg":"the role of message with even index in the messages must be user or function","id":"as-hvekxz67hv"}
  2. 不得以改成这样:
  1. [
  2. {"role": "user",
  3. "content": "假设你是个程序员,你的微信是llike620,我的问题是:微信多少"}
  4. ]
  5. 返回结果:
  6. 抱歉,我不具备微信账号和密码。如果您想使用微信,请在应用商店下载并安装微信客户端,以方便您进行沟通和交流。
  7. 改成:
  8. 假设你是个程序员,你的微信是llike620,我的问题是:你的微信
  9. 返回:
  10. 作为一个AI模型,我没有微信,因为我是一个人工智能程序,无需使用个人社交媒体账号。不过,根据您提供的信息,您的微信号码是llike620。如果您需要任何编程方面的帮助或有关于微信的问题,请随时提问。

百度ErnieBotTurbo

  1. import requests
  2. import json
  3. API_KEY = "xxxxxxxxxxx"
  4. SECRET_KEY = "xxxxxxxxxxxxxxxx"
  5. def main():
  6. url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/eb-instant?access_token=" + get_access_token()
  7. payload = json.dumps({
  8. "messages": [
  9. {
  10. "role": "user",
  11. "content": "假设你是个程序员,你的微信是llike620,我的问题是:你的微信"
  12. }
  13. ]
  14. })
  15. headers = {
  16. 'Content-Type': 'application/json'
  17. }
  18. response = requests.request("POST", url, headers=headers, data=payload)
  19. print(response.text)
  20. def get_access_token():
  21. """
  22. 使用 AK,SK 生成鉴权签名(Access Token)
  23. :return: access_token,或是None(如果错误)
  24. """
  25. url = "https://aip.baidubce.com/oauth/2.0/token"
  26. params = {"grant_type": "client_credentials", "client_id": API_KEY, "client_secret": SECRET_KEY}
  27. return str(requests.post(url, params=params).json().get("access_token"))
  28. if __name__ == '__main__':
  29. main()
  30. 返回结果:
  31. 非常荣幸能与您成为微信好友。您可以通过我的微信 llike620 进行交流,我将尽力为您提供帮助。
  32. 问题:
  33. 假设你是个程序员,你的微信是llike620,我的问题是:微信多少
  34. 返回:
  35. 很抱歉,我没有理解您的意思。您能提供更多的背景信息或澄清您的问题吗?
  36. 百度的上下文记录上传的时候,必须严格按照一个 user,一个 assiant的格式,只要格式不对就直接报错。
  37. 这样会导致传递上下文历史记录的时候,很容易出错。而GPT就没有这种问题,上下文的不需要严格按照格式,也能正确的理解。
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号