文心一言API使用教程(python版)

 注:在做项目的时候需要调用文心一言,发现网上的版本很乱,基本都止步在官方文档的代码上,所以写了一篇博客来记录自己的尝试实现了对文心一言的循环调用和自定义询问,本篇文章不需要有任何对api的基础知识,代码全部成功运行,并引用官方文档,祝大家成功实现自己的调用

预置准备部分 


  • 注册百度千帆平台账户,并注册api

    1. 文心一言的使用需要注册一个百度账户,可以使用百度网盘的账户进行登录百度智能云-登录 (baidu.com)
    2. 申请以后,进入文心千帆大模型操作百度智能云控制台 (baidu.com)
    3. 选择右侧边栏的应用接入,再点击创建应用就可以申请一个api了
    4. 创建过程中只需要填写当前api的名称以及描述,默认所有服务都是勾选的(对api的使用没有任何影响)
    5. 创建成功后会返回到应用接入的界面,记录下此时AppID、API Key、Secret Key
  • 配置api,开通服务接口

        1.点击控制台右上角的计费管理开通服务

       注意文心一言的api的调用是需要付费的,并且提供多个大模型可以根据自己的选择进行开通,博主只开通了  ERNIE-Bot-turbo大模型公有云在线调用服务和ERNIE-Bot大模型公有云在线调用服务,不同服务的差别可以参考API列表API列表 - 千帆大模型平台 | 百度智能云文档 (baidu.com)

  •  python装配库

    • 下载requsets库
    • 下载json库

         


程序编写部分

  • 获取Acees Token:

    1. 需要通过Acess Token来访问文心一言,注意:access_token默认有效期30天,生产环境注意及时刷新。可参考官方文档获取access_token - 千帆大模型平台 | 百度智能云文档 (baidu.com)
      import requests
      import jsondef main():# client id = API Key, client_secret = Secret Key 修改成自己的API Key 和Sercet Keyclient_id="4YqbzGV59w6BU3Hh1GlBsaA1"client_secret="3mM6ys4yAG5j******v"url = "https://aip.baidubce.com/oauth/2.0/token?grant_type= client_credentials & client_id= 4Y****saA1 & client_secret = 3mM6ys4yAG5j*****PnH0yDHlv "payload = ""headers = {'Content-Type': 'application/json','Accept': 'application/json'}response = requests.request("POST", url, headers=headers, data=payload)print(response.text)if __name__ == '__main__':main()#会再终端打印一行文本即acess token
    2. 根据终端打印的Acess Token获取数据,记录其中的refresh_tolen(不用抄下来这一步是为了让大家更好的理解接下来的get_acess_token()函数)

  •     实现基本调用

  1. 将refresh_token作为参数传入到调用程序中,现在就完成了最基本的使用,此时是默认的问题“你好”,message中的数据必须是奇数条,负责会报错
    import requests
    import json
    #修改成自己的api key和secret key
    API_KEY = "Kc8pXsRQ***TbbF"
    SECRET_KEY = "bgS856cVXiw5gj****IekgH4b2n"def main():url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/eb-instant?access_token=" + get_access_token()
    #注意message必须是奇数条payload = json.dumps({"messages": [{"role": "user","content": "你好"}#,#{#    "role": "assistant",#    "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()


  •  程序升级部分

 此部分需要一定的python基础,如json,requset等相关知识,可以自己在CSDN,博客园,菜鸟驿站和B站找相关教程,当然可以直接看最后的代码就是最终成品

    •  问题:不能自定义问题的:
      • 设定一个输入字符串来解决
      • 将message中的"content“ : ”你好“ 换成 s 
    • 问题:打印输出的内容存在不需要的部分:
      {"id":"as-nuhbvmdj8h",
      "object":"chat.completion",
      "created":1697125231,
      "result":"长沙有很多好玩的地方,以下是一些值得推荐的项目:\n\n* 橘子洲:位于长沙市区对面的湘江中,是长沙必游的景点之一。这里有一片人工沙滩可以戏水游玩,还有毛泽东青年雕像、历史浮雕等可以参观。\n* 岳麓山:位于长沙市区的岳麓山风景区是国家5A级旅游景区。这里有悠久的历史文化,拥有碑刻、古建筑、古植物、山水风光等各种景观,是长沙的一大标志性景点。\n* 长沙IFS:这里以商场和写字楼为主,地下一楼有美食城,有丰富的长沙本地小吃。\n* 湖南省博物馆:是湖南省最大的综合性历史博物馆,馆内珍藏着许多珍贵文物,记录了湖南的历史和文化。\n* 天心阁:是长沙市区的标志性建筑之一,有着悠久的历史和文化背景。\n\n此外,长沙还有一些其他值得一游的地方,如黄兴广场、太平街、湖南省植物园等。这些地方都有各自独特的景观和特色,值得一探究竟。\n\n以上信息仅供参考,如有需要,建议您查阅官方资讯。"
      ,"is_truncated":false,
      "need_clear_history":false,
      "usage":{"prompt_tokens":8,"completion_tokens":323,"total_tokens":331}}
      
      • 第一步:返回的response是一个response类型数据,我们可以用.json()将其转换成一个json类型
      • 第二步:观察到json的response是一个字典类型我们可以用['result']来访问元素
      • import requests
        import json
        #修改成自己的api key和secret key
        API_KEY = "4YqbzGV59w******lBsaA1"
        SECRET_KEY = "3mM6ys******xDPnH0yDHlv"def main():url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/eb-instant?access_token=" + get_access_token()s=input()
        #注意message必须是奇数条payload = json.dumps({"messages": [{"role": "user","content": s}]})headers = {'Content-Type': 'application/json'}res = requests.request("POST", url, headers=headers, data=payload).json()print(res['result'])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()
    • 问题:只能输入一次询问
      • 如果没有其它传感器的话传入信号,我们就可以使用一个永真循环来实现
        import requests
        import json
        #修改成自己的api key和secret key
        API_KEY = "4YqbzGV59w***GlBsaA1"
        SECRET_KEY = "3mM6ys4yAG58***QxDPnH0yDHlv"def main():url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/eb-instant?access_token=" + get_access_token()while(1):s=input()# 注意message必须是奇数条payload = json.dumps({"messages": [{"role": "user","content": s}]})headers = {'Content-Type': 'application/json'}res = requests.request("POST", url, headers=headers, data=payload).json()print(res['result'])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()
  • 最终结果 ,完结,撒花!!!

    import requests
    import json
    #修改成自己的api key和secret key
    API_KEY = "4Y***U3Hh1GlBsaA1"
    SECRET_KEY = "3mM6ys4yAG5***xDPnH0yDHlv"def main():url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/eb-instant?access_token=" + get_access_token()while(1):s=input()# 注意message必须是奇数条payload = json.dumps({"messages": [{"role": "user","content": s}]})headers = {'Content-Type': 'application/json'}res = requests.request("POST", url, headers=headers, data=payload).json()print(res['result'])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()

         

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/689681.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PNG图片压缩-UPNG.js参数说明及示例

UPNG.js是一个非常轻量且高效的库,用于处理PNG图像。它可以编码和解码PNG图片,同时支持压缩和解压缩功能。特别适合在前端项目中处理图像,尤其是在需要优化图像大小而不牺牲质量时。 UPNG.encode()函数是UPNG.js中用于将图像数据编码成PNG格…

lv15 input子系统框架、外设驱动开发 5

一、input子系统基本框架 在我们日常的Linux系统中,存在大量的输入设备,例如按键、鼠标、键盘、触摸屏、摇杆等,他们本身就是字符设备,linux内核将这些字符设备的共同性抽象出来,简化驱动开发建立了一个input子系统。 …

羊大师的羊奶有几种口味呢?

羊大师提供的羊奶有6种不同口味可供选择。 1.新鲜羊奶不仅没有膻味,而且富含高钙无糖,并且含有丰富的优质蛋白质和超过200种营养物质。这非常适合缺钙或体弱的人饮用。 2.益生菌羊奶是一种含有保加利亚乳杆菌、嗜酸乳杆菌、双歧杆菌等益生菌群的产品&…

基于物联网的工业企业能耗监控系统

上海安科瑞电气股份有限公司 胡冠楠 咨询家:“Acrelhgn”,了解更多产品资讯 摘要:针对工业制造企业存在高能耗、高污染的问题,提出了一种用于工业企业能耗监控的多层级网络系统。本系统可完成企业内部电力、水资源以及燃气等能源…

如何探索和可视化用于图像中物体检测的 ML 数据

近年来,人们越来越认识到深入理解机器学习数据(ML-data)的必要性。不过,鉴于检测大型数据集往往需要耗费大量人力物力,它在计算机视觉(computer vision)领域的广泛应用,尚有待进一步…

陇剑杯 2021刷题记录

题目位置:https://www.nssctf.cn/上有 陇剑杯 2021 1. 签到题题目描述分析答案小结 2. jwt问1析1答案小结 问2析2答案小结 问3析3答案 问4析4答案 问5析5答案 问6析6答案 3. webshell问1析1答案 问2析2答案 问3析3答案 1. 签到题 题目描述 此时正在进行的可能是_…

防止被恶意调用API接口

前言 在面试时,经常会被问一个问题:如何防止别人恶意刷接口? 这是一个非常有意思的问题,防范措施挺多的。今天这篇文章专门跟大家一起聊聊,希望对你会有所帮助。 1 防火墙 防火墙是网络安全中最基本的安全设备之一&…

Linux RabbitMQ 安装及卸载

一、安装 1、前景 RabbitMQ是用Erlang编写的,所以需要先安装Erlang的编译环境 注意 Erlang和RabbitMQ的版本是有一些版本匹配关系的,如果不匹配会导致RabbitMQ无法启动 2、安装Erlang # 下载 wget https://packages.erlang-solutions.com/erlang/r…

家中R4S软路由iStoreOS配置内网穿透服务实现远程访问公司电脑桌面

文章目录 简介一、配置远程桌面公网地址二、家中使用永久固定地址 访问公司电脑**具体操作方法是:** 简介 软路由是PC的硬件加上路由系统来实现路由器的功能,也可以说是使用软件达成路由功能的路由器。 使用软路由控制局域网内计算机的好处&#xff1a…

【日常聊聊】深度学习进度

🍎个人博客:个人主页 🏆个人专栏:日常聊聊 ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 方向一:深度学习的基本原理和算法 方向二:深度学习的应用实例 方向三:深度学习的挑战和未…

JVM-JVM调优基础(理论)

申明:文章内容是本人学习极客时间课程所写,作为笔记进行记录,文字和图片基本来源于课程资料,在某些地方会插入一点自己的理解,未用于商业用途,侵删。 原资料地址:课程资料 JVM参数 标准参数 …

【正点原子STM32连载】 第五十章 手写识别实验 摘自【正点原子】APM32E103最小系统板使用指南

1)实验平台:正点原子APM32E103最小系统板 2)平台购买地址:https://detail.tmall.com/item.htm?id609294757420 3)全套实验源码手册视频下载地址: http://www.openedv.com/docs/boards/xiaoxitongban 第五…

lazada、速卖通卖家如何掌握自养号测评技巧打造高评价产品?

做跨境电商卖家都知道,国外的买家购物比较理性,也喜欢货比三家,所以店铺想要留住客户,就需要一些优质的产品来吸引他们。产品评价是卖家获取买家信任的重要途径,评价越高的产品,销量也就越好。 尤其是 Shop…

机器人常用传感器分类及一般性要求

机器人传感器的分类 传感技术是先进机器人的三大要素(感知、决策和动作)之一。根据用途不同,机器人传感器可以分为两大类:用于检测机器人自身状态的内部传感器和用于检测机器人相关环境参数的外部传感器。 内部传感器 内部传感…

CrossOver 24.0 让Mac可以运行Windows程序的工具

CrossOver 24.0最新版重点添加了对 DirectX 12 支持,从而在 Mac 上更好地模拟运行 Windows 游戏,开发者在 CrossOver 23 中可以调用 DirectX 12,在模拟游戏的过程中同时调用所有 GPU 核心,从而实现更优秀的渲染效果。 目前CrossOv…

CORROSION: 1

本机 192.168.223.128目标机 192.168.223.148 主机发现 nmap -sP 192.168.223.0/24 端口扫描 ​nmap -sV -p- -A 192.168.223.148开启了22 80 端口 看web,是个apache默认界面 扫目录 gobuster dir -u http://192.168.223.148 -x html,txt,php,bak --wordlist…

推送开权引导的技术内幕

人人都讨厌代码腐化,人人都在腐化代码!本文介绍app消息推送开权提醒能力的服务端实现,并说明如何通过手搓一个简易的流程引擎来实现横向的业务场景隔离,纵向的业务流程编排,从而灵活支持业务需求,抑制代码腐…

曲线生成 | 图解B样条曲线生成原理(基本概念与节点生成算法)

目录 0 专栏介绍1 什么是B样条曲线?2 基函数的de Boor递推式3 B样条曲线基本概念图解4 节点生成公式 0 专栏介绍 🔥附C/Python/Matlab全套代码🔥课程设计、毕业设计、创新竞赛必备!详细介绍全局规划(图搜索、采样法、智能算法等)…

java以及android类加载机制

类加载机制 一、Java类加载机制 java中,每一个类或者接口,在编译后,都会生成一个.class文件。 类加载机制指的是将这些.class文件中的二进制数据读入到内存中并对数据进行校验,解析和初始化。最终,每一个类都会在方…

OpenAI:Sora视频生成模型技术报告(中文)

概述 视频生成模型作为世界模拟器 我们探索视频数据生成模型的大规模训练。具体来说,我们在可变持续时间、分辨率和宽高比的视频和图像上联合训练文本条件扩散模型。我们利用transformer架构,在视频和图像潜在代码的时空补丁上运行。我们最大的模型Sor…