百度文心一言API-Python版(完整代码)

 大家好啊!我是NiJiMingCheng

我的博客:NiJiMingCheng

上一节我们分享了实现AI智能回复微信的内容,这一节我们来探索其中需要的百度文心一言,本文详细介绍了我们从注册账号到实现百度文心一言智能回复,同时多种模型自行选择,加油哦!
Python实现百度文心一言智能回复微信     

目录

结果演示:

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

 python装配库

代码整体介绍

代码详细剖析

(一)API 密钥设置

(二)获取访问令牌函数 get_access_token

(三)与文心 API 交互函数 main_

(四)主程序入口

总结


        在当今的软件开发领域,与各类人工智能 API 进行集成以实现丰富多样的功能变得愈发常见。本文将深入剖析一段 Python 代码,该代码主要实现了通过调用百度文心 API 来进行文本交互的功能,为大家详细解读其中的技术细节与实现逻辑。

结果演示:

​Python实现文心一言智能回复微信​

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

1、文心一言的使用需要注册一个百度账户,可以使用百度网盘的账户进行登录百度智能云-登录 (baidu.com)

2、申请以后,进入文心千帆大模型操作百度智能云控制台 (baidu.com)

3、选择右侧边栏的应用接入,再点击创建应用就可以申请一个api了


4、创建过程中只需要填写当前api的名称以及描述,默认所有服务都是勾选的(对api的使用没有任何影响)


5、创建成功后会返回到应用接入的界面,记录下此时AppID、API Key、Secret Key


配置api,开通服务接口
1、点击控制台右上角的计费管理开通服务


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

  •  python装配库

    • 下载requsets库
    • 下载json库

代码整体介绍

        这段 Python 代码的核心目标是与百度文心 API 建立连接,向其发送用户提供的文本内容,并获取 API 返回的相应回复,从而实现一个简单的文本交互系统。代码中主要涉及到了 requests 库用于发送 HTTP 请求,以及对返回结果的处理,同时通过自定义函数来完成获取访问令牌(Access Token)以及与 API 进行交互的完整流程。

代码详细剖析

(一)API 密钥设置

API_KEY = "YOUR_API_KEY"
SECRET_KEY = "YOUR_SECRET_KEY"

这两个密钥分别是百度 AI 平台提供的 API Key 和 Secret Key,它们是与百度文心 API 进行安全认证和交互的关键凭证,用于后续生成访问令牌以及验证请求的合法性。

(二)获取访问令牌函数 get_access_token

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}
    # print(str(requests.post(url, params=params).json().get("access_token")))
    return str(requests.post(url, params=params).json().get("access_token"))

此函数的主要作用是向百度 AI 平台的认证服务器发送请求,通过提供之前定义的 API Key 和 Secret Key 作为参数,按照 client_credentials 授权类型来获取访问令牌(Access Token)。该访问令牌将用于后续与文心 API 进行具体的文本交互操作,它是验证请求来源合法性以及获取服务权限的重要标识。

(三)与文心 API 交互函数 main_

def main_(content):
    url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/ernie-char-8k?access_token=" + get_access_token()

    payload = json.dumps({
        "messages": [
            {
                "role": "user",
                "content": content
            }
        ]
    })
    headers = {
        'Content-Type': 'application/json'
    }
    # print(payload)
    response = requests.request("POST", url, headers=headers, data=payload).json()
    print(response['result'])
    return response['result']
  • 构建请求 URL:首先,函数内部会构建与文心 API 进行交互的完整 URL。它通过拼接固定的 API 端点地址以及通过调用 get_access_token 函数获取到的访问令牌来形成一个有效的请求链接,确保请求能够被正确识别和处理。
  • 准备请求数据:接着,将用户提供的文本内容 content 按照 API 要求的格式进行封装。这里使用 json.dumps 函数将包含用户消息角色(user)和具体内容的字典数据结构转换为 JSON 字符串格式,作为请求的有效载荷(payload)。
  • 设置请求头:同时,设置了请求头 headers,明确指定了 Content-Type 为 application/json,以告知服务器请求数据的格式类型。
  • 发送请求并处理结果:最后,使用 requests 库的 request 函数以 POST 方式向构建好的 URL 发送请求,携带准备好的请求头和数据。接收到服务器返回的响应后,将其转换为 JSON 格式,并从中提取出 result 字段的值作为 API 的回复内容进行打印输出,同时返回该值以便在其他地方进一步使用。

(四)主程序入口

在 if __name__ == '__main__': 部分:

if __name__ == '__main__':
    res = main_('你好')
    print(res)

这里作为程序的主入口点,简单地调用了 main_ 函数并传入文本内容 '你好',然后将获取到的 API 回复进行打印输出,展示了整个代码从发送请求到获取并展示回复的完整流程。

总结

全部代码

# -*- coding:utf-8 -*-
import requests
import json

API_KEY = "YOUR_API_KEY"
SECRET_KEY = "YOUR_SECRET_KEY"


def main_(content):
    url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/ernie-char-8k?access_token=" + get_access_token()

    payload = json.dumps({
        "messages": [
            {
                "role": "user",
                "content": content
            }
        ]
    })
    headers = {
        'Content-Type': 'application/json'
    }
    # print(payload)
    response = requests.request("POST", url, headers=headers, data=payload).json()
    print(response['result'])
    return response['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}
    # print(str(requests.post(url, params=params).json().get("access_token")))
    return str(requests.post(url, params=params).json().get("access_token"))


if __name__ == '__main__':
    res = main_('你好')
    print(res)

        通过对这段 Python 代码的详细解析,我们清晰地看到了如何利用百度文心 API 的相关接口,通过获取访问令牌、构建合适的请求数据和 URL,以及正确处理返回结果等一系列步骤,实现了一个简单而有效的文本交互功能。这为我们在开发中集成第三方 AI 服务提供了一个很好的示例,希望读者能够通过本文的解读,更好地理解此类代码的实现原理与应用场景,在自己的项目中灵活运用类似的技术手段。

请注意,在实际应用中,需要确保 API Key 和 Secret Key 的安全性和正确使用,同时也要关注百度文心 API 的相关使用规范和限制条件,以保证程序的正常运行和合法使用。

### 如何使用 Python 调用百度文心一言大模型 API #### 安装依赖库 为了调用文心一言的大模型 API,需要先安装必要的 SDK 或者第三方工具包。可以通过 `pip` 命令来完成安装操作。 如果选择官方推荐的千帆 SDK,则执行如下命令: ```bash pip install qianfan ``` 另一种方式是通过 PaddlePipelines 提供的支持模块: ```bash pip install paddle-pipelines ``` --- #### 配置环境变量 在实际开发过程中,建议将敏感信息(如 API Key 和 Secret Key)存储到 `.env` 文件中以便管理[^3]。`.env` 文件的内容应类似于以下形式: ``` QW_API_KEY=your_api_key_here QW_SECRET_KEY=your_secret_key_here ``` 之后,在代码运行前加载这些配置项即可实现安全访问。 --- #### 编写调用逻辑 以下是基于两种方法的具体实现案例。 ##### 方法 1: 使用 QianFan SDK 这是由百度官方维护的一个多功能 SDK,能够简化与文心一言交互的过程。下面是一个简单的例子展示如何发送请求并获取响应数据。 ```python from qianfan import Model # 初始化模型实例 model = Model("ernie-bot") # 设置参数字典 params = { "prompt": "你好呀", } # 发起预测请求 response = model.call(**params) print(response['result']) ``` 此段脚本会向指定的服务端点发出 HTTP 请求并将返回的结果打印出来。 --- ##### 方法 2: 利用 Pipelines Nodes 组件 对于偏好灵活性较高的开发者来说,可能更倾向于采用第二种途径——借助于 PaddlePipelines 库中的节点类对象来进行定制化处理。 示例如下所示: ```python from pipelines.nodes import ErnieBot # 创建ErnieBot实例时传入个人专属密钥 ernie_bot = ErnieBot( api_key="your_apply_key", secret_key="your_apply_secret_key" ) # 执行查询动作 res = ernie_bot.predict('请问您是哪位?') # 展示最终答复内容 print(res) ``` 上述代码片段展示了另一个可行的技术路线图[^4]。 需要注意的是,无论是哪种方案都涉及到费用支出情况,请务必提前了解清楚收费标准后再做决定[^2]。 --- #### 注意事项 - **API 密钥保护**: 不要随意泄露自己的 API Key 及 Secret Key ,以免造成经济损失或其他不良后果。 - **服务选型考量**: 根据具体应用场景需求挑选合适类型的模型本;比如速度较快但精度稍低一点的 Turbo 本适合实时聊天场景应用等。 - **错误排查手段**: 如果遇到问题无法正常连接服务器或者解析失败等情况发生的话,可以查看官方文档寻求帮助或是联系技术支持团队解决疑惑之处。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值