百度文心一言测试版接口分析

本文介绍了如何使用Python编写一个类BDWX,通过requests库调用文心一言的API接口,解析返回的数据,支持文本和图片内容的获取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# !/usr/bin/env python3
# -*- coding: UTF-8 -*-
"""
@author  : v_jiaohaicheng@baidu.com
@des     :

"""
import requests
import json
import re


class BDWX():
    """
    文心一言接口解析
    """
    def __init__(self):
        self.headers = {
            "Content-Type": "application/json",
            "Referer": "https://yiyan.baidu.com/",
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36",
        }
        # 换成自己的 BDUSS
        self.cookies = {
            "BDUSS": "I3TTZCM3gxLTVzZm44dmlnLWN-Q2ZQNmRScm5MR3REcENERVFrZEc0Wmlwd3RsRVFBQUFBJCQAAAAAAAAAAAEAAAAQdrtY0fS54rXE37nfud-537kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGIa5GRiGuRkZk"
        }

        self.base_url = "https://yiyan.baidu.com/eb/chat/conversation/v2"

    def get_data(self, query):
        """
        请求数据
        :param query:
        :return:
        """
        data = {
            "text": "{}".format(query),
            "timestamp": 1692670879294,
        }
        data = json.dumps(data, separators=(',', ':'))
        response = requests.post(
            self.base_url,
            headers=self.headers,
            cookies=self.cookies,
            data=data)
        return response.text

    def anlise_data(self, data,query):
        """
        解析数据
        :param data:
        :return:
        """
        res = re.findall("event:message\ndata:(.*)", data)
        for i in res:
            content = json.loads(i)["data"]["content"]
            if query.startswith("画"):
                img_url = re.findall('<img src="(.*)" /><br>', content)[0]
                yield img_url
            else:
                yield content


    def process(self,query):
        """
        处理逻辑 没加异常捕获(正常情况基本不会有异常)
        :param query:
        :return:
        """
        data = self.get_data(query)
        for content in self.anlise_data(data,query):
            print(content,end="")



if __name__ == '__main__':
    bdwx = BDWX()
    while True:
        bdwx.process("你能做什么")
        print()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值