我的编程空间,编程开发者的网络收藏夹
学习永远不晚

星火认知大模型API接入Python教程,中文回答效果非常友好

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

星火认知大模型API接入Python教程,中文回答效果非常友好

申请

地址大概是这个:

https://console.xfyun.cn/app/myapp

自己创建一个应用:
在这里插入图片描述
进入控制台:
在这里插入图片描述
注意:我已经申请好了,如果你需要使用,需要提交一个申请,一般第二天通过。

Python接入完整示例

我们可以看到右侧有三个参数:APPID、APISecret、APIKey,填入下方代码的main中即可:

import _thread as threadimport base64import datetimeimport hashlibimport hmacimport jsonfrom urllib.parse import urlparseimport sslfrom datetime import datetimefrom time import mktimefrom urllib.parse import urlencodefrom wsgiref.handlers import format_date_time# websocket-clientimport websocketclass Ws_Param(object):    # 初始化    def __init__(self, APPID, APIKey, APISecret, gpt_url):        self.APPID = APPID        self.APIKey = APIKey        self.APISecret = APISecret        self.host = urlparse(gpt_url).netloc        self.path = urlparse(gpt_url).path        self.gpt_url = gpt_url    # 生成url    def create_url(self):        # 生成RFC1123格式的时间戳        now = datetime.now()        date = format_date_time(mktime(now.timetuple()))        # 拼接字符串        signature_origin = "host: " + self.host + "\n"        signature_origin += "date: " + date + "\n"        signature_origin += "GET " + self.path + " HTTP/1.1"        # 进行hmac-sha256进行加密        signature_sha = hmac.new(self.APISecret.encode('utf-8'), signature_origin.encode('utf-8'),     digestmod=hashlib.sha256).digest()        signature_sha_base64 = base64.b64encode(signature_sha).decode(encoding='utf-8')        authorization_origin = f'api_key="{self.APIKey}", algorithm="hmac-sha256", headers="host date request-line", signature="{signature_sha_base64}"'        authorization = base64.b64encode(authorization_origin.encode('utf-8')).decode(encoding='utf-8')        # 将请求的鉴权参数组合为字典        v = {            "authorization": authorization,            "date": date,            "host": self.host        }        # 拼接鉴权参数,生成url        url = self.gpt_url + '?' + urlencode(v)        # 此处打印出建立连接时候的url,参考本demo的时候可取消上方打印的注释,比对相同参数时生成的url与自己代码生成的url是否一致        return url# 收到websocket错误的处理def on_error(ws, error):    print("### error:", error)# 收到websocket关闭的处理def on_close(ws, status_code, reason):    print("")# 收到websocket连接建立的处理def on_open(ws):    thread.start_new_thread(run, (ws,))def run(ws, *args):    data = json.dumps(gen_params(appid=ws.appid, question=ws.question))    ws.send(data)# 收到websocket消息的处理def on_message(ws, message):    # print(message)    data = json.loads(message)    code = data['header']['code']    if code != 0:        print(f'请求错误: {code}, {data}')        ws.close()    else:        choices = data["payload"]["choices"]        status = choices["status"]        content = choices["text"][0]["content"]        print(content, end='')        if status == 2:            ws.close()def gen_params(appid, question):    """    通过appid和用户的提问来生成请参数    """    data = {        "header": {            "app_id": appid,            "uid": "1234"        },        "parameter": {            "chat": {                "domain": "general",                "random_threshold": 0.5,                "max_tokens": 2048,                "auditing": "default"            }        },        "payload": {            "message": {                "text": [                    {"role": "user", "content": question}                ]            }        }    }    return datadef main(appid, api_key, api_secret, gpt_url, question):    wsParam = Ws_Param(appid, api_key, api_secret, gpt_url)    websocket.enableTrace(False)    wsUrl = wsParam.create_url()    ws = websocket.WebSocketApp(wsUrl, on_message=on_message, on_error=on_error, on_close=on_close, on_open=on_open)    ws.appid = appid    ws.question = question    ws.run_forever(sslopt={"cert_reqs": ssl.CERT_NONE})if __name__ == "__main__":    # 测试时候在此处正确填写相关信息即可运行    main(appid="",         api_secret="",         api_key="",         gpt_url="ws://spark-api.xf-yun.com/v1.1/chat",         question="鲁迅和周树人是同一个人吗?")

运行如下:
在这里插入图片描述
似乎看起来跟GPT4.0回答差不多?总体效果还很好

来源地址:https://blog.csdn.net/weixin_46211269/article/details/131720896

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

星火认知大模型API接入Python教程,中文回答效果非常友好

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录