首页 > 编程语言 >【分享】百度千帆大模型Python调用上下文测评

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

时间:2023-10-14 16:45:09浏览次数:29  
标签:access llike620 Python 微信 千帆 content token role 上下文

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

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

openai测试

import openai

# pip install openai
openai.api_key = "sk-xxxxxx"
openai.api_base = "https://xxxxxn/v1"
# 创建一个 GPT-3 请求
completion = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "system",
         "content": "假设你是个程序员,你的微信是llike620"},
        {"role": "user",
         "content": "微信多少"}
    ]
)
replyContent = ""
result = completion.choices
if len(result) > 0:
    replyContent = result[0].message.content
print(replyContent)
结果:
我的微信是llike620,请问有什么可以帮助您的吗?

百度ErnieBot

import requests
import json

API_KEY = "uAixxxxxxxxu1"
SECRET_KEY = "Qj2cxxxxxxxxxxxxBE"


def main():
    url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions?access_token=" + get_access_token()

    payload = json.dumps({
        "messages": [
            {"role": "system",
             "content": "假设你是个程序员,你的微信是llike620"},

            {"role": "user",
             "content": "微信多少"}
        ]
    })
    headers = {
        'Content-Type': 'application/json'
    }

    response = requests.request("POST", url, headers=headers, data=payload)

    print(response.text)


def get_access_token():
    """
    使用 AK,SK 生成鉴权签名(Access Token)
    :return: access_token,或是None(如果错误)
    """
    url = "https://aip.baidubce.com/oauth/2.0/token"
    params = {"grant_type": "client_credentials", "client_id": API_KEY, "client_secret": SECRET_KEY}
    return str(requests.post(url, params=params).json().get("access_token"))


if __name__ == '__main__':
    main()
    百度的报错:
    消息数量必须是奇数,这是什么奇葩规定
{"error_code":336006,"error_msg":"the length of messages must be an odd number","id":"as-65cy75ie68"}
如果改成这样:
[
    {"role": "system",
     "content": "假设你是个程序员,你的微信是llike620"},
    {"role": "assiant",
     "content": "我的微信是llike620"},
    {"role": "user",
     "content": "微信多少"}
]
会报错:
消息中具有偶数索引的消息的角色必须是用户
{"error_code":336006,"error_msg":"the role of message with even index in the messages must be user or function","id":"as-hvekxz67hv"}
不得以改成这样:
[
    {"role": "user",
     "content": "假设你是个程序员,你的微信是llike620,我的问题是:微信多少"}
]
返回结果:
抱歉,我不具备微信账号和密码。如果您想使用微信,请在应用商店下载并安装微信客户端,以方便您进行沟通和交流。


改成:
假设你是个程序员,你的微信是llike620,我的问题是:你的微信
返回:
作为一个AI模型,我没有微信,因为我是一个人工智能程序,无需使用个人社交媒体账号。不过,根据您提供的信息,您的微信号码是llike620。如果您需要任何编程方面的帮助或有关于微信的问题,请随时提问。


百度ErnieBotTurbo

import requests
import json

API_KEY = "xxxxxxxxxxx"
SECRET_KEY = "xxxxxxxxxxxxxxxx"


def main():
    url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/eb-instant?access_token=" + get_access_token()

    payload = json.dumps({
        "messages": [
            {
                "role": "user",
                "content": "假设你是个程序员,你的微信是llike620,我的问题是:你的微信"
            }
        ]
    })
    headers = {
        'Content-Type': 'application/json'
    }

    response = requests.request("POST", url, headers=headers, data=payload)

    print(response.text)


def get_access_token():
    """
    使用 AK,SK 生成鉴权签名(Access Token)
    :return: access_token,或是None(如果错误)
    """
    url = "https://aip.baidubce.com/oauth/2.0/token"
    params = {"grant_type": "client_credentials", "client_id": API_KEY, "client_secret": SECRET_KEY}
    return str(requests.post(url, params=params).json().get("access_token"))


if __name__ == '__main__':
    main()
    返回结果:
    非常荣幸能与您成为微信好友。您可以通过我的微信 llike620 进行交流,我将尽力为您提供帮助。
    

问题:
假设你是个程序员,你的微信是llike620,我的问题是:微信多少
返回:
很抱歉,我没有理解您的意思。您能提供更多的背景信息或澄清您的问题吗?


百度的上下文记录上传的时候,必须严格按照一个 user,一个 assiant的格式,只要格式不对就直接报错。
这样会导致传递上下文历史记录的时候,很容易出错。而GPT就没有这种问题,上下文的不需要严格按照格式,也能正确的理解。



标签:access,llike620,Python,微信,千帆,content,token,role,上下文
From: https://www.cnblogs.com/taoshihan/p/17764343.html

相关文章

  • 【分享】讯飞星火认知大模型Python调用上下文测评
    一个很常用的用法,先是system提示,然后是user问题{"role":"system","content":"假设你是个程序员,你的微信是llike620"},{"role":"user","content":"微信多少"}openai测试importopenai#pipinstallopenaiope......
  • python基础学习
    python基础学习一、格式化输出printage='23'print('myageis',age,sep='')#,sep=''不带空格,end=''不换行占位符age='23'name='liman'print('myageis%s,mynameis%s.'%(age,name......
  • Python第二课
    列表是什么?如何增删改查?如何排序?求表长?避免索引错误?一、列表基本操作关键记忆点:用[]表示列表,用逗号分割元素,列表名用复数的名称表示,打印会包含[]、访问列表元素(相当于数组名[])+增删改依次是查找titillates[i],末尾添加dds.append(),  插入jjs.insert(0,"sd"),  删除dellls[0......
  • python with语句
    pythonwith语句with语句的作用with语句是python引入的一种与异常处理相关的功能,可以看作是try...finally语句的简化.with语句常用于对资源进行访问的场景,可以确保在对资源操作过程中不管是否发生异常,都能自动地正常释放资源.with语句的基本语法withexpression[asva......
  • pycharm连接远程服务器,代码成功运行,但一些基本python属性和函数会报红线(例如print)解决
    状况:pycharm连接远程服务器,代码成功运行,但一些常见python属性和方法报红线,例如print。当你在程序中输入print这种基本方法时,pycharm是不会有输入提示的,输入后也会报红线解决方法:将远程服务器中的环境变量添加至pycharm中查出服务器中环境变量:在xshell中输入vim~/.bashrc执......
  • 实验四报告: 熟悉Python字典、集合、字符串的使用
    实验目标本实验的主要目标是熟悉Python中字典、集合、字符串的创建和操作,包括字典的创建、访问、修改和合并,集合的创建、访问以及各种集合运算,以及字符串的创建、格式化和常用操作。实验要求通过编写Python代码,验证以下要求:熟悉Python字典的创建、访问、修改、合并。熟悉Pyt......
  • python多线程with方式加锁
    python多线程with方式加锁"""pythonTreading中的Lock模块提供了加锁和释放锁的方法,分别是acquire()和release().这两个方法可以搭配python的with语句使用."""#示例fromthreadingimportLock​temp_lock=Lock()​withtemp_lock: print(temp_lock) #输出是<locked......
  • Python中图像相似性度量方法汇总
    1.引言在当前到处充满着图像的世界里,测量和量化图像之间的相似性已经成为一项关键的任务。无论是图像检索、内容推荐还是视觉搜索,图像相似性方法在现代计算机视觉的应用中都发挥着关键的作用。幸运的是,Python提供了大量的工具和库,使开发人员和研究人员都可以快速探索和实现这些功......
  • PythonNotes_Basic1
    基本数据类型标准数据类型常见数据类型:Number(数字)String(字符串)bool(布尔类型)List(列表)Tuple(元组)Set(集合)Dictionary(字典)六个标准数据类型中:不可变数据(3个):Number(数字)、String(字符串)、Tuple(元组);可变数据(3个):List(列表)、Set(集合)、Dict......
  • PythonNote
    Python的编程模式分为两种:交互式,脚本式。(1)交互式:交互式编程,需要我们打开cmd窗口(命令提示符窗口),在窗口中键入python,回车,这样就进入了交互式编程。此时我们直接输入python语句,就可以得到运行的结果:(2)脚本式:是我们先把python语句写好,保存在后缀为.py的文件里,然后从外......